怎样获得在一定范围内的随机数?
来源:互联网 发布:英语听力在线听软件 编辑:程序博客网 时间:2024/04/30 05:31
怎样获得在一定范围内的随机数?
直接的方法是rand() % N /* 不好 */
试图返回从0 到N − 1 的数字。但这个方法不好, 因为许多随机数发生器的低位比特并不随机, 参见问题13.16。一个较好的方法是:
(int)((double)rand() / ((double)RAND_MAX + 1) * N)
如果你不希望使用浮点, 另一个方法是:
rand() / (RAND_MAX / N + 1)
两种方法都需要知道RAND MAX, 而且假设N 要远远小于RAND MAX。
RAND MAX 在ANSI 里#define 在<stdlib.h>。
顺便提一下, RAND MAX 是个常数, 它告诉你C 库函数rand() 的固定范围。你不可以设RAND MAX 为其它的值, 也没有办法要求rand() 返回其它范围的值。
如果你用的随机数发生器返回的是0 到1 的浮点值, 要取得范围在0 到N − 1内的整数, 只要将随机数乘以N 就可以了。
0 0
- 怎样获得在一定范围内的随机数?
- 怎样在一定范围内获得理想的随机数
- 在一定范围内生成随机数
- 如何生成在一定范围内的double型的真正随机数?
- 读取在一定范围内的数字
- 黑马程序员——C#怎么在一定范围内生成不重复的随机数
- C++在一定范围内生成不重复随机数序列
- 一个获得随机数的类
- LS 获得随机数的方法
- 获得某个范围内的随机数
- java获得随机数的方法
- 获得指定范围的随机数
- 获得随机数
- 获得随机数
- 获得随机数
- 获得随机数
- 怎样获得cpu的序列号
- 怎样获得文件的扩展名
- Android AIDL的使用
- Jquery 批量删除
- python 匿名函数lambda
- cannot find -lnl
- 从字符串中找到第一个只出现一次的字符
- 怎样获得在一定范围内的随机数?
- [LeetCode]Count and Say
- java ajax文件上传
- Android:Google Map API
- 黑马程序员---java基础加强---基本数据类型的自动拆装箱
- android jni debug native code with eclipse
- 初识swift
- 每次执行程序, rand() 都返回相同顺序的数字。
- 风投围猎移动互联网:初现估值泡沫与马太效应