洗牌算法

对于给定的 n 个元素,生成的那个排列,每一个元素都能等概率地出现在每一个位置。

代码:for(int i = n - 1; i >= 0 ; i – )
swap(arr[i], arr[rand(0, i)]) // rand(0, i) 生成 [0, i] 之间的随机整数
因为每次选择后下次选择就可少一个随意可以构成分母分子相消的情况最后概率都为1/n


版权声明:本文为qq_37995717原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。