想法:一种产生真正随机数的方法

众所周知,现在编程语言中产生随机数的函数其实是利用了一个预先编排好的“准随机”数列产生了看似随机的数字,并不是真正的随机。
 
虽然真随机数的产生的硬件早已经具备,但如何在不添加新的硬件的基础上产生真随机数呢?我今天在整理照片的时候看到了这么一张照片:

这张照片是前阵子我用自己的手机对着漆黑的天空拍摄的,由于光线太弱,手机的相机企图增加曝光时间和提高ISO值来增加总体曝光量,从而导致了噪点剧增,噪点就是上面那些五彩斑斓的点,它们并不是现实世界中存在的光点,而是产生于传感器(CMOS)电路中的“噪音”,电路中噪音的产生完全是随机的(当然了,如何证明它是完全随机的,这个超出本人的专业领域了),我们要使用随机数的时候,只需要生成一张这样的噪点图,然后利用现有的随机数从中取到噪点的值,再经过一定的转换即可。

考虑到相机是现在大部分电脑/手机都拥有的现成设备,可认为不需要添加新硬件,是一种简单易行的方法。

posted @ 2022-10-05 11:12  guogangj  阅读(312)  评论(4编辑  收藏  举报