【发布时间】:2013-07-16 02:50:32
【问题描述】:
我使用此代码创建 0 到 1 之间的随机数。
randnumber = (double)((double)rand() / (double)RAND_MAX);
这行代码经常给我像 0.650434、0.302340 和 0.906789 这样的数字,这对我来说是个大数字。问题是我需要更小的范围数,比如这些数字:0.000200、0.000100、0.000400、0.000600 等等。 如何修改这行代码以获得我的结果?
【问题讨论】:
-
你能不能只是从 1-100 随机数然后将每个数字除以 10000? (或者你需要的任何比例因子)?我认为不需要在随机函数中进行除法。
-
你用的是C还是C++?
-
除以十为范围 [0 0.1]
-
你的施法过度了,只考虑
randnumber = (double)rand()/RAND_MAX(由于运算符优先级相当于randnumber = ((double)rand())/RAND_MAX,这相当于你因variables promotion而得到的)。