mshirzad68
چهارشنبه 18 خرداد 1390, 16:44 عصر
یه درخواست کمک ازتون داشتم
من دارم رو یه پروژه وب سایت آزمون اینترنتی کار میکنم .
وب سایتی که به بانک اطلاعاتی وصل میشه و از سوالات موجود تو بانک یک امتحان طرح میکنه و خودش هم امتحان رو تصحیح و نمره رو در بانک ثبت میکنه .
برای انتخاب سوالات آزمون ؛ برنمه عدد تصادفی بین 1 تا تعداد سوالات آزمون ایجاد میکنه و طبق اون اعداد تصادفی که در یک آرایه ذخیره میشن ؛ سوالات رو انتخاب میکنه و نمایش میده .
مشکل من اینجاست که ممکنه اعداد تصادفی تکراری تولید بشن . یعنی وقتی که یک عدد بین این اعداد انتخاب میشه ؛ برای انتخاب عدد دوم دیگه اون عدد بین اعداد اعداد انتخابی نباشه ..
میخواستم ببینم آیا الگوریتم خاصی برای این کار هست ؟
البته من خودم با بکار بردن سلول های خاکستری مغزم یه الگوریتم کوچولو نوشتم !
این الگوریتم اجرا میشه ولی جواب نمیده . یعنی عدد تکراری تولید میکنه .
الگوریتم خودم :
rndNUM[0] = rnd.Next(tedad);
//پیدا کردن عدد تصادفی و چک کردن اینکه آیا عدد پیدا شده تکراری است یا نه اگر تکراری بود دوباره انتخاب شود و اگر تکراری نبود در آرایه سوالات تصادفی ذخیره شود
for (int i = 1; i <= 9; i++)
{
temp = rnd.Next(10);
for (int j = 0; j <= i; j++)
if (temp == rndNUM[j])
{
Check = true;
temp = rnd.Next(10);
rndNUM[i] = temp;
}
else if (temp != rndNUM[j])
continue;
if (Check = false)
rndNUM[i] = temp;
else if (Check = true)
continue;
}
آیا شما برای حل این مشکل من پیشنهادی دارید ؟
در صورت امکان و داشتن وقت ممنون میشم کمکم کنید .
با سپاس . محسن شیرزاده .
من دارم رو یه پروژه وب سایت آزمون اینترنتی کار میکنم .
وب سایتی که به بانک اطلاعاتی وصل میشه و از سوالات موجود تو بانک یک امتحان طرح میکنه و خودش هم امتحان رو تصحیح و نمره رو در بانک ثبت میکنه .
برای انتخاب سوالات آزمون ؛ برنمه عدد تصادفی بین 1 تا تعداد سوالات آزمون ایجاد میکنه و طبق اون اعداد تصادفی که در یک آرایه ذخیره میشن ؛ سوالات رو انتخاب میکنه و نمایش میده .
مشکل من اینجاست که ممکنه اعداد تصادفی تکراری تولید بشن . یعنی وقتی که یک عدد بین این اعداد انتخاب میشه ؛ برای انتخاب عدد دوم دیگه اون عدد بین اعداد اعداد انتخابی نباشه ..
میخواستم ببینم آیا الگوریتم خاصی برای این کار هست ؟
البته من خودم با بکار بردن سلول های خاکستری مغزم یه الگوریتم کوچولو نوشتم !
این الگوریتم اجرا میشه ولی جواب نمیده . یعنی عدد تکراری تولید میکنه .
الگوریتم خودم :
rndNUM[0] = rnd.Next(tedad);
//پیدا کردن عدد تصادفی و چک کردن اینکه آیا عدد پیدا شده تکراری است یا نه اگر تکراری بود دوباره انتخاب شود و اگر تکراری نبود در آرایه سوالات تصادفی ذخیره شود
for (int i = 1; i <= 9; i++)
{
temp = rnd.Next(10);
for (int j = 0; j <= i; j++)
if (temp == rndNUM[j])
{
Check = true;
temp = rnd.Next(10);
rndNUM[i] = temp;
}
else if (temp != rndNUM[j])
continue;
if (Check = false)
rndNUM[i] = temp;
else if (Check = true)
continue;
}
آیا شما برای حل این مشکل من پیشنهادی دارید ؟
در صورت امکان و داشتن وقت ممنون میشم کمکم کنید .
با سپاس . محسن شیرزاده .