ورود

View Full Version : توليد عدد تصادفی



hamid67fathi
جمعه 29 خرداد 1388, 01:34 صبح
سلام چطور ميشه يک عدد تصادفی در يک رنج مشخص توليد کرد ؟

tdkhakpur
جمعه 29 خرداد 1388, 15:56 عصر
سلام
ببینید برای این کار فقط الگوریتم کار را برای شما توضیح میدم.
شما به بیتهای موجود در یک متغییر مثلا دو بایتی آشنایید و میدانید که تغییر اخرین بیت یعنی بیت15 بعث منفی و مثبت بودن عدد میشود لذا
1- با توجه به این بیت بازه منفی و مثبت بودن عدد را تشخیص میدید.
2- حال برای کنترل بازه مقدار میتوانید از اندیکس بیتها استفاده کنید مثلا از بیت شماره 7 تا 0 عدد بین 65535 حاصل میشود و شما با تغییر در این بازه بصورت زیر میتوانید random یا عدد تصادفی را در این بازه ایجاد کنید.


num dw 1875
xor num, 10

در فوق با استفاده از xor های متوالی در زمانهای مختلف میتوانید به نحوی اعداد تصادفی را ایجاد کنید.
برای اعداد بطور خودکار به جای عدد 10 در فوق از ساعت سیستم میتواندی کمک بگیرید.
البته این به مقداری الگوریتم شما هم بستگی دارد.
موفق باشید.

hamid67fathi
جمعه 29 خرداد 1388, 22:46 عصر
ممنون !!
مرجعی برای کار با ساعت سيستم داريد ؟

tdkhakpur
جمعه 29 خرداد 1388, 23:00 عصر
سلام
فکر کنم وقفه 1ch برای کار با زمان سنج هست یک نگاهی به این وقفه بندازید.