برنامه تولید عدد رندم بزبان سی
// C random number generator for microcontrollers//
unsigned int rn = 0; //random number variable and SEED
unsigned char rand(void) // random number generator function
{
rn = (209 * rn + 119) % 128 ; // the formula, generate new one
return rn; // return value between 0-127
}
گاهی در برنامه های با میکروکنترلرها نیاز به تولید اعداد تصادفی هست
و نیاز به یک برنامه ساده و سریع داریم تا این کار را انجام دهد
در اینجا یک برنامه کوچک ارائه میشود تا برای کارهای ساده برنامه نویسی بتواند این نیاز را رفع کند
این برنامه خیلی ساده بوده و سرعت خیلی بالایی دارد
برای شروع میتوانید از بذرهای شروع (seed) دیگری استفاده کنید
خروجی در محدوده ی 0 تا 127 هست
این اعداد را خودم در آوردم و تست کردم اما با اعداد دیگری هم میتوانید انجام دهید
تنها نکته این که اعداد کمی میتوان یافت تا خروجی قابل قبول ارائه دهند
در اجرای این برنامه هیچ عددی تکرار نمیشود و بعد از 128 اجرا دوباره سیکل انجام میگردد
پس این رشته کاملن رندم نیست بعبارت دیگر شبه رندم (pseudo random ) هستند
برای اینکه این اعداد کاملن تصادفی گردند اگر آیسی ساعت در مدارتان هست میتوان با انتخاب زمان ثانیه بعنوان seed و تغییرات دیگر در زمان اجرا این کار را انجام داد.
البته در بیشتر کاربردها نیازی به برنامه رندم واقعی نداریم و همین برنامه بخوبی کار را انجام میدهد
بقیه دوستان هم میتوانند نتیجه ی تست هاشون را در اینجا قرار دهند
(در متن برنامه آکولادها رو نتونستم درست بنویسم و برعکس شد!)
// C random number generator for microcontrollers//
unsigned int rn = 0; //random number variable and SEED
unsigned char rand(void) // random number generator function
{
rn = (209 * rn + 119) % 128 ; // the formula, generate new one
return rn; // return value between 0-127
}
گاهی در برنامه های با میکروکنترلرها نیاز به تولید اعداد تصادفی هست
و نیاز به یک برنامه ساده و سریع داریم تا این کار را انجام دهد
در اینجا یک برنامه کوچک ارائه میشود تا برای کارهای ساده برنامه نویسی بتواند این نیاز را رفع کند
این برنامه خیلی ساده بوده و سرعت خیلی بالایی دارد
برای شروع میتوانید از بذرهای شروع (seed) دیگری استفاده کنید
خروجی در محدوده ی 0 تا 127 هست
این اعداد را خودم در آوردم و تست کردم اما با اعداد دیگری هم میتوانید انجام دهید
تنها نکته این که اعداد کمی میتوان یافت تا خروجی قابل قبول ارائه دهند
در اجرای این برنامه هیچ عددی تکرار نمیشود و بعد از 128 اجرا دوباره سیکل انجام میگردد
پس این رشته کاملن رندم نیست بعبارت دیگر شبه رندم (pseudo random ) هستند
برای اینکه این اعداد کاملن تصادفی گردند اگر آیسی ساعت در مدارتان هست میتوان با انتخاب زمان ثانیه بعنوان seed و تغییرات دیگر در زمان اجرا این کار را انجام داد.
البته در بیشتر کاربردها نیازی به برنامه رندم واقعی نداریم و همین برنامه بخوبی کار را انجام میدهد
بقیه دوستان هم میتوانند نتیجه ی تست هاشون را در اینجا قرار دهند
(در متن برنامه آکولادها رو نتونستم درست بنویسم و برعکس شد!)