我想要某种方法来创建一个相当长的随机数序列,可以前后翻转。就像带有“下一个”和“上一个”按钮的机器一样,这将为您提供随机数。
诸如10位分辨率(即,从0到1023的正整数)之类的东西就足够了,并且序列号大于100k。这是一个简单的游戏类型应用程序,不需要加密强度随机性或其他任何东西,但我希望它具有相当的随机性。我的可用内存有限,因此我不能只生成大量随机数据并进行处理。我需要在“互动时间”中获得数字-我可以轻松地花几毫秒来考虑下一个数字,但舒适度远不止于此。最终它将在某种微控制器上运行,可能只是一个Arduino。
我可以使用简单的线性同余生成器(LCG)来实现。前进很简单,要前进,我必须缓存最新的数字并间隔存储一些点,以便我可以从那里重新创建序列。
但是也许有一些伪随机生成器可以让您向前和向后前进?应该有可能将两个线性反馈移位寄存器(LFSR)连接起来,以朝不同的方向滚动,不是吗?
或者,也许我可以使用某种哈希函数来使索引号变乱呢?我将首先尝试。
还有其他想法吗?
噜噜哒