اطلاعیه

Collapse
No announcement yet.

تولید عدد رندم خیلی ساده بزبان C

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    تولید عدد رندم خیلی ساده بزبان C

    برنامه تولید عدد رندم بزبان سی

    // 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 و تغییرات دیگر در زمان اجرا این کار را انجام داد.
    البته در بیشتر کاربردها نیازی به برنامه رندم واقعی نداریم و همین برنامه بخوبی کار را انجام میدهد
    بقیه دوستان هم میتوانند نتیجه ی تست هاشون را در اینجا قرار دهند
    (در متن برنامه آکولادها رو نتونستم درست بنویسم و برعکس شد!)
لطفا صبر کنید...
X