背景:我正在为基于微控制器的嵌入式系统编写一个外部 SRAM 测试仪。没有安全性,不涉及密码学。为了可重现地访问“尽可能不连续”的内存位置,我正在寻找一个实现
y = shuffle(x)
,取并返回一个介于 0 和固定 N = 2^16 - 1 之间的整数
它本身可能不会使用大量的 RAM,例如一个简单的随机地址数组。从好的方面来说,它可以变慢。对非连续没有严格的定义——它是关于上下颠簸地址线,寻找印刷电路板的焊接和其他故障。建议?
到目前为止,我发现Knuth shuffle aka Fisher-Yates shuffle。
后期编辑:我想我正在寻找最大化汉明距离。“反格雷码”?