PDA

View Full Version : سوال: ایجاد اعداد Random



alidehghani
سه شنبه 24 خرداد 1390, 23:15 عصر
اگه با دستورات ++C بخوام یه عدد Random مثلا 8رقمی تولید کنم باید چی کار کنم؟

code_baz
چهارشنبه 25 خرداد 1390, 10:19 صبح
به این لینک نگاه بنداز
http://www.cplusplus.com/reference/clibrary/cstdlib/rand/

برای اینکه 8 رقمی دربیاد:
همونطور که توی صفحه بالا میبینی عدد رندوم بزرگتر از RAND_MAX نخواهد شد.
برای این کار پیشنهاد من اینه که اول اطمینان پیدا میکنی که عددت از مثلا 1000 کوچیکتره بعد عدد رو در هر چی که خواستی ضرب میکنی که 8رقمی بشه.
برای اینکه عددت از 1000 کوچکتر بشه کافیه باقیمانده اون رو با 1000 بدست بیاری:
n=n%1000;

quiet_programmer
چهارشنبه 25 خرداد 1390, 10:43 صبح
با سلام. شما میتونین دوتا عدد 4 رقمی تولید کنید و با تبدیل این دو عدد چهار رقمی بدست اومده رو به نوع string کست کنید و الحاق کنید.

mehdi.mousavi
چهارشنبه 25 خرداد 1390, 14:01 عصر
اگه با دستورات ++C بخوام یه عدد Random مثلا 8رقمی تولید کنم باید چی کار کنم؟

سلام.
در صورتیکه در Windows قراره اینکارو انجام بدید و قصد دارید تا از این عدد تولید شده بعنوان کلید، Nonce یا Password استفاده کنید، هرگز نباید از rand استفاده کنید. در این حالت، باید از تابع CryptGenRandom (http://msdn.microsoft.com/en-us/library/aa379942%28VS.85%29.aspx) استفاده کنید (مثال کامل از نحوه استفاده از این تابع در انتهای همون لینک ذکر شده). اگر چه این تابع رو می تونید بدون Call کردن API مورد نظر (http://blogs.msdn.com/b/michael_howard/archive/2005/01/14/353379.aspx) نیز استفاده کنید. عدم استفاده از این API، در چنین شرایطی، یکی از گناهان نابخشودنی در امنیت نرم افزار (http://channel9.msdn.com/Forums/Coffeehouse/85615-The-19-Deadly-Sins-of-Software-Security) محسوب میشه.

موفق باشید.

code_baz
چهارشنبه 25 خرداد 1390, 15:46 عصر
تو لینوکس چی؟؟؟
dev/random یک فایل ویژه (در واقع یک اینترفیس) مرتبط با سیستم تولید اعداد تصادفی لینوکس هست.

http://linux.die.net/man/4/random

http://www.kernel.org/doc/man-pages/online/pages/man4/random.4.html

http://en.wikipedia.org/wiki//dev/random

mortezanear
دوشنبه 30 خرداد 1390, 01:22 صبح
با سلام می خواستم بپرسم چگونه میتوان در c++ یک عدد مثلا چهار رقمی رندوم بدون وجود رقم 0 و رقم تکراری ایجاد کرد؟
به نظر خودم باید از یک آرایه ی یک بعدی چهار تایی استفاده کرد که در هر خانه یک رقم رندوم از 1 تا 9 ایجاد کنه ولی نمیدونم چطوری این رقمها تکراری نشه ممنون میشم دوستان متخصص کمک کنند.