Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获得ruby1.9.3中的真实随机数?_Ruby_Random_Gem - Fatal编程技术网

如何获得ruby1.9.3中的真实随机数?

如何获得ruby1.9.3中的真实随机数?,ruby,random,gem,Ruby,Random,Gem,问题在标题中。有什么宝石可以做这件事吗?尝试过RealRand,但似乎对我不起作用。也许我做错了什么?我在 简言之,它规定“真实”随机数不能由计算机和算法生成,只能由自然生成。我知道一些理论认为自然界只是一堆算法,所以我认为这是超出我水平的争论的食物。在任何情况下,该网站都会提供一些网站,这些网站会根据“连接到计算机的盖革-米勒管检测到的连续两对放射性衰变的计时”等内容生成随机数 我感兴趣的是这会产生什么样的注释和答案,一个来自我的+1。Ruby 1.9引入了一个名为的类,它基于一个名为Mers

问题在标题中。有什么宝石可以做这件事吗?尝试过RealRand,但似乎对我不起作用。也许我做错了什么?

我在 简言之,它规定“真实”随机数不能由计算机和算法生成,只能由自然生成。我知道一些理论认为自然界只是一堆算法,所以我认为这是超出我水平的争论的食物。在任何情况下,该网站都会提供一些网站,这些网站会根据“连接到计算机的盖革-米勒管检测到的连续两对放射性衰变的计时”等内容生成随机数


我感兴趣的是这会产生什么样的注释和答案,一个来自我的+1。

Ruby 1.9引入了一个名为的类,它基于一个名为Mersene Twister的算法生成伪随机数。对于个人层面的实际应用,这可能就足够了。

彼得是对的。然而,我们可以通过openssl和

代码:


我想你可能需要对你的问题多考虑一下。在0和1之间有更多的实数,然后在负无穷大和无穷大之间有整数。给维基百科上关于实数基数的文章一个例子

但是,您可以轻松地在一定范围和精度内生成真正的随机数。假设您想要生成一个介于0和1之间、精度为16位的实随机数

r = Random.new
r.rand
=> 0.7182182166496581 
您可以调整此解决方案以生成-10到10之间的实数

 r.rand(-10.0..10.0)
 => 7.00152804654363 

查看并获取更多信息。

操作系统?如果可以,请阅读:/dev/random您能给出一个范围吗?在0和1之间有无数个无限数。你试过什么?没有你写的代码样本,我们只是在暗中猜测你可能做错了什么。或者,是你什么都没写,你在找人帮你写吗?我想回答这个问题的人对你的“真实”一词有两种不同的理解。(a) 彼得、我和副总裁都认为这是假的。(b) Sunny Jenuja认为它与理性、复杂等相对。我认为你可能需要对你的答案多考虑一点。在数字计算中,数字表示为浮点数,由有限的二进制数字组合而成。实数首先是不能处理的。OP很可能不是你所理解的“真实”的意思。您的代码没有给出正确分布于实数之上的随机数(“实数”在您的意义上)。顺便说一下,我不明白你为什么要提到基数,但是闭区间[0,1]的基数与所有实数的基数相同。无论你指定一个范围都没有区别。我从未声称基数大于[0,1]上的整实数或R的任何子集。我提出基数的原因是,正如你所说的,不可能像我认为作者希望的那样,从无穷大和无穷大创建一个实随机数。虽然,我明白你的观点,代码不能在R上的整个分布上提供真正的随机性。我将修改我的答案,说它在设定的精度上提供真正的随机数。我们甚至可以创建无理数吗?他们不需要无限的存储空间吗?-1这根本不是OP要求的?我知道伪随机发生器是(T,e)-与随机发生器无法区分的,但是忽略这个问题而不作解释似乎是不合理的。
 r.rand(-10.0..10.0)
 => 7.00152804654363