这个项目是在Obj-C for iphone。我在这里使用sfmt的双浮点版本:http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/#dSFMT
用当前时间播种dsmft后,我正在呼叫:
r = dsfmt_gv_genrand_close_open()
生成0到1之间的随机浮点数。还有另外两个选项,即:
r = dsfmt_gv_genrand_open_close()
r = dsfmt_gv_genrand_open_open()
我从文件中知道区别在于0或1侧是打开还是关闭,并以数学方式显示:[0,1),(0,1)或(0,1)。
但我不知道这意味着什么,或者用于满足我的需求。我只想要在0和1之间分布最均匀的浮点数。
答案 0 :(得分:0)
[0,1]表示生成的float可能为0,但从不为1(左侧为封闭区间,右侧为打开区间)
(0,1)表示生成的float可能为1,但从不为0(右侧为关闭区间,左侧为打开区间)
(0,1)表示生成的数字不能为0。
选择哪一个?我假设库编写得很好,所以这三个函数都应该返回一个均匀分布的数字。选择的确切功能完全取决于您要完成的任务。
答案 1 :(得分:0)
谢谢H2CO3。我还为查找此问题的人找到了更多信息:
http://en.wikipedia.org/wiki/Interval_(mathematics)
括号表示排除端点,方括号表示包含。
所以,如果我想排除零,但包括1:(0< r< = 1)
我用:
r = dsfmt_gv_genrand_open_close()
是(0,1)