ورود

نسخه کامل مشاهده نسخه کامل : یک سوال از ایجاد اعداد تصادفی



cpplover
17-02-2008, 16:08
من نیاز دارم تا در هر بار اجرای برنامه یک عدد تصادفی ایجاد کنم اما مشکلی که وجود داره اینه که تابع rand هم (البته به نظر من) اعداد تصادفی رو به ترتیب ایجاد میکنه یعنی اگه مثلا در یک بار اجرای برنامه عدد 2 رو تولید کنه در دفعات بعدی اجرای برنامه هم همین عدد تولید میشه مکنه کسی بگه چطور میشه این مشکل رو رفع کردو در هر بار اجرای برنامه عدد مختلفی تولید کرد؟

hoseinquest
17-02-2008, 16:55
اولا که فکر نمی کنم چنین چیزی صحت داشته باشه . در ثانی شما می تونی یک تابع بنویسی که خودش تابع رندوم دست کنه چرا از سیستم کمک میگیری.

hoseinquest
17-02-2008, 17:01
اولا که فکر نمی کنم چنین چیزی صحت داشته باشه . در ثانی شما می تونی یک تابع بنویسی که خودش تابع رندوم دست کنه چرا از سیستم کمک میگیری.

m3hrz4d
17-02-2008, 17:57
من نیاز دارم تا در هر بار اجرای برنامه یک عدد تصادفی ایجاد کنم اما مشکلی که وجود داره اینه که تابع rand هم (البته به نظر من) اعداد تصادفی رو به ترتیب ایجاد میکنه یعنی اگه مثلا در یک بار اجرای برنامه عدد 2 رو تولید کنه در دفعات بعدی اجرای برنامه هم همین عدد تولید میشه مکنه کسی بگه چطور میشه این مشکل رو رفع کردو در هر بار اجرای برنامه عدد مختلفی تولید کرد؟


شما در اول برنامه تون از تابع srand استفاده کنین تا نقطه شروع اعداد تصادفی که انتخاب میشن رو تغییر بدین.این تابع یه پارامتر میخواد که متونین از خروجی تابع time برای دادن یه عدد به این تابع استفاده کنین:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
واسه این کار باید time.h رو include کنین.

cpplover
17-02-2008, 20:23
در MSDN یک مثال در محیط C++ اومده در اونجا قبول دارم که اعداد کاملا تصادفی هستند این مثال :



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



در ویژوال سی نظر من متفاوته من در تابع مربوط به یک دکمه کد زیر رو گذاشتم نمی دونم چرا همیشه 7 تولید میشه ؟(Z متغیر یک text box هست)




برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید}




درسته با فشردن متوالی کلید اعداد مختلفی ایجاد میشه اما در اجرای اول و اولین فشار کلید 7 ایجاد میشه
ضمنا srand رو در جاهای دیگه هم گذاشتم اما فرقی نکرد

cpplover
17-02-2008, 20:24
حرفم رو پس می گیرم


Srand داده ها را تصادفی می کند اما نرخ ایجاد تغییر آن تا حدی کند است همان برنامه ای را که گفتم نیم ساعت بعد عدد دیگری را در خروجی نمایش میداد

اما ممکنه بگید چطور این روند رو میشه تندتر کرد ؟

m3hrz4d
18-02-2008, 00:54
شما srand رو نباید قبل از rand بگذارین. توی OnInit دیالوگ بگذارین قطعا باید درست کار کنه!

atousamehr
28-02-2008, 01:01
اين برنامه اعداد 1 تا 9 را به طور تصادفي در يك ماتريس 3*3 چاپ مي كند

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

martin_superhuman
29-02-2008, 22:25
به Randomize Timer فکر کردید؟