C语言中求随机数的问题
来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/07/22 22:02:52
C语言中求随机数的问题
产生一个0-n的随机数
(n*rand()/(RAND_MAX+1.0))
rand函数生成一个随机数 但是除以最大值加1 怎么会生成一个0-n的随机数呢?
产生一个0-n的随机数
(n*rand()/(RAND_MAX+1.0))
rand函数生成一个随机数 但是除以最大值加1 怎么会生成一个0-n的随机数呢?
![C语言中求随机数的问题](/uploads/image/z/7707687-15-7.jpg?t=C%E8%AF%AD%E8%A8%80%E4%B8%AD%E6%B1%82%E9%9A%8F%E6%9C%BA%E6%95%B0%E7%9A%84%E9%97%AE%E9%A2%98)
不用这么麻烦啊~. rand()生成的是0~RAND_MAX的伪随机数, 而0~n-1的伪随机数则是用mod, 即:
v1 = rand() % 100; /* v1 在0~99之间 */
v2 = rand() % 100+1; /* v1 在1~100之间 */
因此0~n之间的伪随机数:
v3 = rand() % (n+1);
v1 = rand() % 100; /* v1 在0~99之间 */
v2 = rand() % 100+1; /* v1 在1~100之间 */
因此0~n之间的伪随机数:
v3 = rand() % (n+1);