تالار گفتمان مانشت
الگوریتم بازگشتی محاسبه تمام جایگشت های مجموعه n عنصری - نسخه‌ی قابل چاپ

الگوریتم بازگشتی محاسبه تمام جایگشت های مجموعه n عنصری - mary1234 - 07 مهر ۱۳۹۲ ۰۸:۱۷ ب.ظ

سلام
اگه کسی الگوریتم بازگشتی محاسبه تمام جایگشت های مجموعه n عنصری رو بلده میشه اینجا بذاره ؟؟؟؟؟؟؟؟
خیلی لازمش دارم اگه بلدین تروخدا بذارین!HuhHuh
ممنونHuhHuhHuh
ConfusedBlush

RE: الگوریتم بازگشتی محاسبه تمام جایگشت های مجموعه n عنصری - mary1234 - 08 مهر ۱۳۹۲ ۰۴:۴۴ ب.ظ

ممنون
یه الگوریتمی سید جوادی گفته در حد ۵-۴ خطه فکر کنم... اونم بلدین ؟؟؟ گفت تو کتاب ساختمان داده پارسه صفحه ۴-۵ توضیح داده شده..... ولی کتاب من واسه ۳ ساله پیشه چنین چیزی نداره !!! گفت کتاب هورویتز هم اینو گفته!! وبلی من پیداش نکردم Undecided !!

RE: الگوریتم بازگشتی محاسبه تمام جایگشت های مجموعه n عنصری - nazaninIT - 24 بهمن ۱۳۹۳ ۱۲:۳۵ ق.ظ

این یه کد پایتونه که تمام جایگشت های بدون تکرار n رقمی رو حساب میکنه و در یه آرایه به نام solve میریزه. فقط همه رو پشت سر هم میریزه تو یه آرایه و باید موقع خوندن، خودت جداشون کنی. جداکردنشم آسونه، به تعداد n ازش میخونیم و میریم جلو. که اونم نوشتم پایینش:
کد:
selected = [-1,-1,-1]
solve = []
digits = 3
def jaygasht(level):
    global selected,solve
    if level == 3:
        if -1 not in selected:
            solve = solve+selected
        return         
    for i  in range(digits):
        if i not in selected:            
            selected[level] = i    
            jaygasht(level+1)
            selected[level]=-1
def fact(n):
    i = 1
    f = 1
    while i<=n:
        f = f*i
        i+=1
    return f
print (fact(3))
def show_solve():
    i = 0
    j = 1
    print()
    cnt = fact(digits)
    while j<= cnt:
        print(solve[i:i+digits])
        i=i+3
        j+=1
jaygasht(0)
show_solve()