نمایش نتایج 1 تا 5 از 5

نام تاپیک: توضبح برنامه ‌چند وزیر n-queen به روش بازگشتی

  1. #1

    Question توضبح برنامه ‌چند وزیر n-queen به روش بازگشتی

    سلام
    یک برنامه به روش بازگشتی به زبان c در ویکیپدیا پیدا کردم
    ولی یکم برام گنگه
    و نیاز به توضیح دارم
    که چطوری کار میکنه
    void queens ( index i)
    {
    index j;
    if ( promising(i))
    if ( i == n)
    cout << col [1] through col [n];
    else
    for ( j = 1 ; j ? n ; j++ ) {

    col [ i +1 ] = j;
    queens ( i + 1);
    }
    }
    bool promising ( index i )
    {
    index k ;
    bool switch;
    k = 1;
    switch = true ;
    while ( k < i && switch ) {
    if (col [i] == col[k] || abs(col[i] – col[k] == i-k)
    switch = false;
    k++;
    }
    return switch;
    }

  2. #2
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    اردیبهشت 1391
    پست
    29

    نقل قول: توضبح برنامه ‌چند وزیر n-queen به روش بازگشتی

    سلام

    nQueen میاد بررسی میکنه تو یه صفحه شطرنج n*n ، تو چه حالتهایی میتونیم n تا وزیر رو بچینیم => void queens ( index i)

    i شماره وزیر هست که میاد تو صفحه

    امید بخش بودن اون وزیر رو بررسی میکنیم if ( promising(i))
    اگه این شماره وزیر n امین وزیر باشه -> هرچی شماره ستون تا اینجا جمع شده که وزیرای شماره 1 تا اینجا نشستن رو بیا چاپ کن :if ( i == n)cout << col [1] through col [n];
    درغیراینصورت به بررسی برای وزیرا ادامه بده

    bool promising ( index i ) هم امید بخش بودن وزیر یعنی قابل قبول بودنش توی صفحه ( به بقیه کیش نده) رو بررسی میکنه که قاعدتا یعنی با وزیرهای قبلی نباید تو یه ستون : col [i] == col[k] یا حالت قطری ماتریسی یعنی حرکت فیلی : abs(col[i] – col[k] == i-k باشه

  3. #3

    نقل قول: توضبح برنامه ‌چند وزیر n-queen به روش بازگشتی

    main باید چه شکلی باشه؟
    حلقه 64 تایی میخواد برای queens ( index i) ؟

  4. #4
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    اردیبهشت 1391
    پست
    29

    نقل قول: توضبح برنامه ‌چند وزیر n-queen به روش بازگشتی

    این در اصل شبه کد هست که باهاش الگوریتم رو میگن
    واسه main فکرکنم به تعداد n بهش بدی کافی باشه
    حالا باز چک کنید...
    آخرین ویرایش به وسیله Negin.cs : جمعه 09 تیر 1391 در 23:52 عصر

  5. #5

    نقل قول: توضبح برنامه ‌چند وزیر n-queen به روش بازگشتی

    عموما الگوریتم هایی که بروش عقبگرد (BackTrack) حل میشن ، یه تابعی شبیه promising دارن که میاد شرط درستی جهت حل مساله
    رو در نظر می گیره . مثلا در مورد مساله 8 وزیر ، میاد بررسی میکنه که دو وزیر کی میتونن همدیگه رو تهدید کنن :

    1. سطری 2. ستونی 3. قطری

    البته این تابع میتونه بروش های متفاوتی پیاده سازی بشه .

    یه روش حل ساده واسه n وزیر اینه که : (البته کمی order الگوریتم بالاست)

    شما بیای واسه 8 وزیر همون تعداد حالات ترکیب 8 عدد یعنی !8 (هشت فاکتوریل) رو در نظری بگیری منهای

    حالات غیر قابل قبول که بالا گفتم .

    موفق باشید ./






تاپیک های مشابه

  1. نیاز به سورس برنامه هشت وزیر در vb.net
    نوشته شده توسط azarsoft در بخش برنامه نویسی در 6 VB
    پاسخ: 2
    آخرین پست: جمعه 08 اردیبهشت 1385, 22:48 عصر
  2. بنظر شما یه برنامه چند زبونه رو چطور بنویسیم بهتره؟
    نوشته شده توسط Bithiah در بخش برنامه نویسی در 6 VB
    پاسخ: 10
    آخرین پست: سه شنبه 01 آذر 1384, 08:07 صبح
  3. برنامه : چند تا برنامه برای Encrypt & Decrypt
    نوشته شده توسط vbprogramer در بخش برنامه نویسی در 6 VB
    پاسخ: 0
    آخرین پست: یک شنبه 13 دی 1383, 11:59 صبح
  4. چگونگی دسترسی به متغییرها در یک برنامه چند فرمی؟
    نوشته شده توسط saeed_programer در بخش C#‎‎
    پاسخ: 7
    آخرین پست: شنبه 14 آذر 1383, 02:25 صبح
  5. لطفا" نظر بدهید (برنامه چند تکه ای)
    نوشته شده توسط aliasghar در بخش برنامه نویسی در Delphi
    پاسخ: 4
    آخرین پست: چهارشنبه 18 شهریور 1383, 14:24 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •