PDA

View Full Version : سوال: چگونگي پخش اعداد در سوروكو



e_ghadimi
جمعه 12 مهر 1387, 13:26 عصر
چگونه مي توان يك سري اعداد را به صورت رندوم د ر يك جدول پخش كرد؟

SMRAH1
جمعه 12 مهر 1387, 15:40 عصر
این کد اصول کار رو مشخص می کنه:


static void Main(string[] args)
{
int [,] array = new int[5,5];
int i,j,k;
Random r = new Random();

for (i = 0; i < 25; i++)
{
if (i < 16)
{
array[i / 5, i % 5] = i+1;
}
else
{
array[i / 5, i % 5] = 0;
}
}

for ( i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
Console.Write("{0} ,\t", array[i, j]);
Console.WriteLine();
}

for (i = 0; i < 25; i++)
{
j = r.Next(1, 25);
k = array[i / 5, i % 5];
array[i / 5, i % 5] = array[j / 5, j % 5];
array[j / 5, j % 5] = k;
}

Console.WriteLine();
Console.WriteLine();
Console.WriteLine();

for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
Console.Write("{0} ,\t", array[i, j]);
Console.WriteLine();
}

Console.WriteLine();
}ابن کد می خواهد اعداد 1 تا 16 رو به شکل تصادفی در 25 خانه جدول پراکنده کنه.
در این کد ابتدا یک آرایه 5*5 معرفی میشه.بعد در 16 خونه اول این جدول اعداد 1 تا 16 قرارمی گیره و در بقیه خونه ها عدد 0 داده میشه.برای اینکه کاربر متوجه باشه این اعداد (به همان ترتیبی که ذخیره شده اند) رو به کاربر نمایش می ده.
در کد زیر قسمت اصلی انجام میشه.در این قسمت عملیات پراکنده گی انجام میشه:


for (i = 0; i < 25; i++)
{
j = r.Next(1, 25);
k = array[i / 5, i % 5];
array[i / 5, i % 5] = array[j / 5, j % 5];
array[j / 5, j % 5] = k;
}در این الگوریتم (توجه کنید که باید اعداد مورد نظر،در اینجا 1 تا 16، را به اولین خونه اختصاص داده باشید کاری که در مراحل قبل انجام شد)،تک تک خانه ها شمارش شده و به ازای هر خانه ،یک شماره تصادفی انتخاب و مقدار خانه جاری با مقدار خانه ای که بطور تصادفی انتخاب شده است،تعویض می شود.

در نهایت هم برنامه عملیات چاپ داده های پراکنده شده را انجام میده.

e_ghadimi
سه شنبه 16 مهر 1387, 18:36 عصر
Az shoma be khatere pasokhe daghighetun mamnunam.