爱问知识人 爱问教育 医院库

rnd函数是如何生成随机数的?

首页

rnd函数是如何生成随机数的?

请不要复制函数说明给我..

我想知道的是这个函数体是怎么写的...

比如rnd(-1)=0.224007 我想知道是通过什么表达式产生0.224007这个值的.

提交回答
好评回答
  • 2019-02-06 18:59:19
    随机数每次调用的结果并不一样,你在同一个环境里你会发现第一次运行rnd(X),第二次
    运行虽然每次结果不一样,但是每个参数的某次结果都是固定的。比如你那个rnd(-1),
    每次第一次调用它结果都是固定的。这个算法(你所说的表达式)因编译器/解释器而异,
    一般为了真实达到随机效果都要开启计数,也就是在算法里加上时钟的值这个参数。用法
    也是不同的。GCC编译器和微软的编译器采用的就是不同的表达式。 
    至于负数,谁知道你手头那个编译器是怎么算的。

    姜***

    2019-02-06 18:59:19

其他答案

    2019-02-06 19:10:59
  • 随机数是一个学问 

    l***

    2019-02-06 19:10:59

  • 2019-02-06 19:06:30
  • 在内存中随便抓一个地址,当然这个地址是唯一确定的,但这个地址中的值却是不确定的,因此便产生了随机数
    在不同的语言中这个地址是不同的。
    你可以去看专业书籍,以看更详细的理解。

    习***

    2019-02-06 19:06:30

  • 2019-02-06 18:41:34
  • 记得是操作系统原来还是哪本书上关于随机书的产生有专门的论述,里面有很多种方法

    陈***

    2019-02-06 18:41:34

  • 2019-02-06 18:39:03
  •    unsigned long int next = 1;
     
       /* rand:  return pseudo-random integer on 0..32767 */
       int rand(void)
       {
           next = next * 1103515245 + 12345;
           return (unsigned int)(next/65536) % 32768;
       }
     
       /* srand:  set seed for rand() */
       void srand(unsigned int seed)
       {
           next = seed;
       }
     
     
    这是c标准库的实现,vb也差不多,都用的是线性同余算法
     

    朱***

    2019-02-06 18:39:03

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 174-193
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):