回答
它可以。根据您的随机数的定义:
在大多数应用中,你从一个随机数发生器所期望的是产生的均匀分布数字序列。垃圾值不提供此特性。
是否可以创建一个真随机数?
如果您将“真正随机”定义为不可预测,那么问题是“什么不可预测的?”。
有cryptographically secure (pseudo-)random number generators试图从用户级代码隐藏随机数生成器的状态,也就是说,理想情况下,只有内核模式的代码可以切实预测下一个随机数。然而,孤立的计算机系统(没有任何外部输入)是确定性的有限状态机。也就是说,通过了解机器的当前状态,您可以预测下一个状态,即总是。所以,如果你的意思是一般软件系统“不可预知”,否则你不能使用确定性系统根据这个定义产生“真正的随机性”。
还有另一种更具哲理性的不可预测性。即使你依赖外部输入(如大气噪声或其他手段),他们真的不可预测吗?有人可能会争辩说,我们生活在一个确定性的世界中,就像数字计算机一样,一切都有决心要发生;所以,没有任何随机性。我没有答案。
但是,它可以用作某些时间段内种子的输入。比如,每x分钟播种一次垃圾。 – Dykam 2009-09-20 11:47:10
+1使用迪尔伯特澄清一点... – Smalltown2k 2009-09-20 11:55:39
他改变了颜色。 :O – shuckster 2009-09-20 12:02:16
垃圾值是不可预测的,你不能对它们做任何假设。如果你想要一个真正的随机数,你的算法将不得不涉及一些“现实世界”变量(例如,CPU温度,风扇速度,环境噪声......)。否则,你的“随机”值将是非常可预测的。
没有已知的“真实”随机数发生器(截至目前),但我们确实有伪随机数发生器,它们生成的数字可以作为“实际”目的的随机数。
你不能用软件来做,但采样热噪声或核衰变是随机的。所以我们有真正的硬件随机数发生器。 – 2009-09-20 11:56:16
除了伪随机数,肯定还有其他的随机数来源。对于密码学,你需要不随机的随机数。随机数的一个有趣的例子可以在http://www.lavarnd.org/找到。 – 2009-09-20 12:00:48
“一些物理现象,比如齐纳二极管中的热噪声似乎是真正随机的,可以作为硬件随机数发生器的基础,然而,许多机械现象具有不对称性和系统偏差,使得结果不是真正随机的。
我在看实际可行的东西.. :) –
2009-09-20 12:06:26
“垃圾值”我认为你的意思是未初始化的内存。你不会得到很好的发行版,更重要的是你会得到很多重复值序列。对于大多数需要随机数的应用程序来说,连续获取数千个相同的数字将毫无用处。
对于一个数字是一个“真正的随机数”,它必须是非确定性的。而且,由于几乎所有东西都(可能)是确定性的,所以真的没有像随机数那样的东西。大气噪声的混合可能是目前最接近的。
计算机是确定性的,只能生成伪随机数,除非它们依赖于一些外部随机过程。
伪随机数发生器形成一个序列,迟早会重复。
当然,非常长的序列实际上可能与'真正的随机'数字没有区别。
一个'垃圾值'可能被用来播种一个随机数发生器,但问题是'种子使用了什么样的数值范围?
它可能会引入可预测性,,因为我们知道一些伪随机数发生器产生相同的序列时,相同的种子。
- 1. 为什么我的随机数程序输出垃圾?
- 2. 为什么printf不打印垃圾值?
- 3. C#/为什么Get html会返回随机垃圾字符?
- 4. 为什么Serail.readBytes()读取垃圾值?
- 5. C++字符数组 - 为什么垃圾?
- 6. 使用垃圾值生成随机或伪随机数
- 7. ZMQ recv随机挑选垃圾数据是否有人知道为什么?
- 8. 为什么我只能在Ubuntu的G ++中获得垃圾值?
- 9. 为什么不随机()随机?
- 10. 为什么随机数值模式?
- 11. 为什么程序不断打印垃圾值?
- 12. 为什么不随机工作?
- 13. 为什么我会为C程序获取垃圾值?
- 14. 为什么在联合整数的垃圾值?
- 15. 为什么int在这里给出8位数的垃圾值?
- 16. 数组作为arguement传递到显示垃圾的功能值
- 17. PSEXEC返回垃圾结果。为什么?
- 18. 为什么这是垃圾收集
- 19. 为什么我的char []存储垃圾?
- 20. 为什么禁用垃圾回收器?
- 21. 为什么FastBitmap无法收集垃圾?
- 22. 这个fwrite为什么写垃圾?
- 23. Ofstream返回垃圾。 Cout的作品...为什么不流入?
- 24. 为变量赋值后得到垃圾值,看不出为什么
- 25. 为什么我的随机数字不那么随机?
- 26. 为什么我的最小值显示一些垃圾值?
- 27. 为什么数字不会随机?
- 28. 返回垃圾数量,我不知道为什么
- 29. 为什么我总是为数组获取垃圾?
- 30. 为什么我不能在循环中分配随机值?
你如何定义一个“真正的”随机数? – 2009-09-20 11:53:14
应该是不可预知的... – Xinus 2009-09-20 11:57:33
对于随机数生成器之外的所有事情都是不可预测的。 – Xinus 2009-09-20 12:14:35