- 主题:问一个简单的数组问题 (转载)
【 以下文字转载自 NewExpress 讨论区 】
发信人: threebird (飞剑仙朱亮), 信区: NewExpress
标 题: 问一个简单的数组问题
发信站: 水木社区 (Sun Nov 13 22:54:20 2022), 站内
数组a=[1,2,3,4....100]
for i = 1 to 100
a[i]与 a[random(1,100)]交换
得到的是不是一个随机排列?
--
FROM 183.191.127.*
是
--
FROM 60.1.6.*
在数组长度N已知的情况下,建议用kd洗牌算法
for i=N-1,i>0,i--
swap a[i],a[RAND(0,i)]
其中RAND的范围0<=r<=i
【 在 threebird 的大作中提到: 】
: 【 以下文字转载自 NewExpress 讨论区 】
: 发信人: threebird (飞剑仙朱亮), 信区: NewExpress
: 标 题: 问一个简单的数组问题
: ................
--来自微微水木3.5.12
--
FROM 140.206.195.*
不错
【 在 KillnCov 的大作中提到: 】
: 在数组长度N已知的情况下,建议用kd洗牌算法
: for i=N-1,i>0,i--
: swap a[i],a[RAND(0,i)]
: ...................
--
FROM 110.176.186.*
随便找本算法导论看看,这个是课本严格证否的。
【 在 ZHMZFFL 的大作中提到: 】
: 是
--
FROM 222.129.50.*
嗯,没细看
不符合Knuth-Durstenfeld Shuffle
【 在 ble 的大作中提到: 】
: 随便找本算法导论看看,这个是课本严格证否的。
:
--
FROM 60.1.6.*