3 language-agnostic random algorithm
我正在寻找一种有效的方法来生成人类认为是随机的数字.基本上,我认为这避免了0或1位的长序列.我希望人类能够查看位模式,而非常低功耗的CPU应该能够计算出每秒近千个这样的数据.
我可以想到有两个不同的概念来做这件事,但我找不到找到一种有效的方法来完成它们.
生成具有固定数量的一位的随机数.对于32位随机数,使用Knuth选择算法需要多达31个随机数.是否有更有效的方法来生成一个具有一定数量的位的随机数?不幸的是,0000FFFF看起来不是很随机.
某种形式的"部分"密度似乎看起来更好 - 但我无法想出这样做的明确方法 - 我想象一下每个块,并计算它与理想的距离密度,并尝试增加下一个块的位密度.这听起来很复杂.
希望还有另一种算法,我没想过这个.在此先感谢您的帮助.
[编辑]我应该更清楚我的要求 -
(a)有没有一种有效的方法来生成随机数而不需要"长"运行一个位,其中"long"是一个可调参数?
(b)关于什么会使一个数字看起来不那么随意的其他建议?