我想生成0和1之间的随机数(包括0和1),但小数点后只有3个分数,如下所示:如何生成[0,1]和3分数之间的随机数
0.000, 0.214, 0.523, 0.451, 0.102, 1.000
小数点后三位的目的不适用于打印。我想实施蒙特卡罗技术来获得PI的价值。所以这是为if
声明。因此,我希望将随机值分配给一个变量是这样的:
double x = 0.241;
我想生成0和1之间的随机数(包括0和1),但小数点后只有3个分数,如下所示:如何生成[0,1]和3分数之间的随机数
0.000, 0.214, 0.523, 0.451, 0.102, 1.000
小数点后三位的目的不适用于打印。我想实施蒙特卡罗技术来获得PI的价值。所以这是为if
声明。因此,我希望将随机值分配给一个变量是这样的:
double x = 0.241;
使用随机函数来calculare 0和1000之间的随机数,然后将其划分为1000 注意的是,当你使用时间功能来生成随机数,你会得到相同的数,直到PC时钟有同样的v ALUE 例如:
11:20:20 PM > generate random number: 10
11:20:20 PM > generate random number: 10
11:20:20 PM > generate random number: 10
11:20:21 PM > generate random number: 989
所以,每秒产生一个数字或者找一些黑客(你可以用谷歌轻松找到它,一个地段上计算器的答案已经给出)
他们是否有均匀分散式?简单地说,你可以使用rand()来产生100和999之间的随机数,并除以1000.取决于这个(差)的随机性对你来说是否足够。 – 2014-10-18 22:18:21
被警告'double'不能*只存储* 3个小数的所有分数。为什么不使用整数并避免你似乎试图解决的问题? (因为它提示[XY问题](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。) – usr2564301 2014-10-18 22:34:43
您可以将限制设置为0 ... 1000 ,然后将结果除以1000得到0.000到1.000的范围 – user3629249 2014-10-18 23:16:40