PDA

View Full Version : سوال: تولید عدد تصادفی زوج



sr2m72
دوشنبه 02 مرداد 1391, 19:58 عصر
سلام.
من یه برنامه میخوام که اعداد تصادفی زوج تولید کنه.(C++)
کسی میتونه کمکم کنه؟

#target
دوشنبه 02 مرداد 1391, 20:17 عصر
خوب راه ساده اینه که عدد رندوم درست کنی اگه فرد بود یکی بهش اضافه کنی !
#include <stdlib.h>

int R = rand();
if ((R % 2) == 1) R++;

Ananas
دوشنبه 02 مرداد 1391, 20:22 عصر
سلام.
یه راه دیگشم اینه که عدد تصادفی رو هر چی بود در 2 ضرب کنی.

مسعود اقدسی فام
سه شنبه 03 مرداد 1391, 20:33 عصر
خوب راه ساده اینه که عدد رندوم درست کنی اگه فرد بود یکی بهش اضافه کنی !
#include <stdlib.h>

int R = rand();
if ((R % 2) == 1) R++;

اینطوری هم می‌شه نوشت:




R -= ( R % 2 )

#target
چهارشنبه 04 مرداد 1391, 00:11 صبح
اگر باز هم بخواهیم بهینه تر کنیم این >
R = R & 4294967294;

مسعود اقدسی فام
چهارشنبه 04 مرداد 1391, 22:32 عصر
اگر باز هم بخواهیم بهینه تر کنیم این >
R = R & 4294967294;

آره روش جالبیه. اما متناسب با اینکه کامپایلر int رو چند بایتی در نظر گرفته و حداکثر عدد زوج چند می‌شه جای سوال می‌ذاره. یکی هم این که از لحاظ خوانایی مفهوم رو سریع نمی‌رسونه. یعنی وقتی یه نفر غریبه کد رو ببینه ممکنه متوجه عملکردش نشه همون اول. البته از یه طرفم حسنه، که می‌شه در صورت لزوم برای حفظ کلیت روش کار الگوریتم با همچین روشی کد رو مبهم و پیچیده کرد.

esmaeilwin
شنبه 07 مرداد 1391, 18:37 عصر
سلام.
من یه برنامه میخوام که اعداد تصادفی زوج تولید کنه.(C++‎)
کسی میتونه کمکم کنه؟



while(1)
}
m=rand();
if(m%2)
break;
{

#target
یک شنبه 08 مرداد 1391, 04:27 صبح
این کد تا زمانی که عدد داده شده توسط تابع رندوم زوج هست عمل گرفتن رو ادامه میده ولی به محض اینکه عدد فرد اومد حلقه شکسته میشه (در آخر عدد فرد داخل متغیر میمونه)