我正在寻找一个输入为 0, 1, 2, 3....N 的函数。其结果应该是相同的输入数组,只是“随机”排列。结果必须是唯一的,因此所有结果都会生成。现在,我知道/不介意对于 0, 1, .... N 的所有列表,将输出相同的结果。这是预期的并且很好,我只是希望结果是输入的洗牌。
我发现这个功能:
function perm( x )
{
return x * 833 % N;
}
Run Code Online (Sandbox Code Playgroud)
其中 833 可以是任何较大的素数。这会产生不错的结果,但它们总是具有重复的模式。参见 N = 16: 0 3 6 9 12 15 2 5 8 11 14 1 4 7 10 13
想象一下它看起来像 3 个鱼翅。基本上我的问题是,如何制作一个函数来执行我所描述的功能,但进行更混乱的洗牌?
| 归档时间: |
|
| 查看次数: |
2410 次 |
| 最近记录: |