随机函数rand()算法
生活随笔
收集整理的這篇文章主要介紹了
随机函数rand()算法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天學習了一下隨機函數rand的算法。
這個算法叫做線性同余算法(linear congruential generator (LCG))。
不同的編譯器取的常數不同,可以參考wiki:http://en.wikipedia.org/wiki/Linear_congruential_generator
以下程序可以輸出和系統一樣的隨機數。
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 5 #define _A 214013LL 6 #define _B 2531011LL 7 8 9 int a; 10 11 12 void mysrand(int x) 13 { 14 a = x; 15 } 16 17 18 int myrand() 19 { 20 return ((a = a * _A + _B)>>16) & 0x7fff; 21 } 22 23 24 int main() 25 { 26 mysrand(0); 27 srand(0); 28 while (1) 29 { 30 printf ("%d, %d\n", rand(), myrand()); 31 getchar(); 32 } 33 return 0; 34 }?
轉載于:https://www.cnblogs.com/lzsz1212/p/4132594.html
總結
以上是生活随笔為你收集整理的随机函数rand()算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [[UIScreen mainScree
- 下一篇: 如何将软件限制策略发挥大作用