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

نام تاپیک: مشکل در سورس برنامه

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #5
    کاربر تازه وارد آواتار khaste_007
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    تهران
    پست
    98

    نقل قول: مشکل در سورس برنامه

    سورس شما رو چک کردم مشکل در خط
    while ((Queense[q] < 8) && (!safepos))
    ایجاد میشه که q مقدار 8 رو گرفته که آخرین اندیس آرایه شما 7 هست و خطا میدهد آرایه رو بزرگ کردم ولی الگوریتم جواب نمی دهد پس احتمالا اشکالات بیشتری در پیاده سازی شما از لحاظ مفهومی وجود دارد که من الگوریتمی که شما از اون استفاده کردید رو نمی دونم در اینجا یک پیاده سازی از الگوریتم ان وزیر براتون میزارم که از روی الگوریتم کتاب طراحی الگوریتم ترجمه جعفر نژاد پیاده سازی کردم

    using System;

    public class nqueens
    {
    int count = 0;
    static int n;
    static int[] col;

    public void queens(int i)
    {
    int j;
    if (promising(i))
    if (i == n)
    {
    count++;
    Console.WriteLine("hale{0}:",count);
    for (int c = 1; c <= n; C++‎)
    {
    Console.WriteLine("satre {0} ,sotone {1}", c, col[c]);
    }
    Console.WriteLine("");
    }
    else

    for (j = 1; j <= n; j++)//see if queen in (i+1)st row
    { //can be positioned in each of the n columns
    col[i + 1] = j;
    queens(i + 1);
    }
    }

    private bool promising(int i)
    {
    int k = 1;
    bool flag = true;//check if any queen threatens
    while (k < i && flag)//queen in the ith row
    {
    if (col[i] == col[k] || Math.Abs(col[i] - col[k]) == i - k)
    flag = false;
    k++;
    }
    return flag;
    }

    public static void Main(string[] args)
    {
    n = 8;
    col = new int[n + 1];
    nqueens MyClass = new nqueens();
    MyClass.queens(0);
    Console.ReadLine();
    }
    }
    برای تغییر در تعداد وزیر متغییر n را در تابع Main مقدار دهید.
    آخرین ویرایش به وسیله khaste_007 : دوشنبه 31 فروردین 1388 در 21:38 عصر

برچسب های این تاپیک

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

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