永发信息网

求高手指教,怎么用c语言 编写一个16807随机数产生器?

答案:4  悬赏:70  手机版
解决时间 2021-01-20 22:13
  • 提问者网友:那叫心脏的地方装的都是你
  • 2021-01-20 14:35
求高手指教,怎么用c语言 编写一个16807随机数产生器?
最佳答案
  • 五星知识达人网友:青灯有味
  • 2021-01-20 16:01
int z = 123;                     // z 为种子,需提前设置(GetTickCount())
 
int schrage_next()
{
    const int a = 16807;         // 16807 法
    const int b = 0;
    const int m = 2147483647;    // MAX_INT
    const int q = m / a;         // q = m / a;
    const int r = m % a;         // r = m % a;
    int _z = a * (z % q) - r * (int)(z / q) + b; // 计算 mod
    if(_z < 0)
        _z += m;             // 将结果调整到 0 ~ m
    return z = _z;
}
全部回答
  • 1楼网友:玩世
  • 2021-01-20 18:36
16807是啥意思?
  • 2楼网友:舊物识亽
  • 2021-01-20 17:38
是产生16807这五个数字当中的一个的随机数程序?
  • 3楼网友:旧脸谱
  • 2021-01-20 17:11
百度“random”
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯