读书人

关于dalmeeme的洗牌算法,该如何处理

发布时间: 2012-04-12 15:46:35 作者: rapoo

关于dalmeeme的洗牌算法

C# code
 int[] numbers = new int[100];        for (int i = 0; i < 100; i++)            numbers[i] = i;        Random rd = new Random();        int index, realLength = numbers.Length, temp;        for (int i = 0; i < 100; i++)        {            index = rd.Next(realLength);            Response.Write(numbers[index] + "<br/>");            temp = numbers[index];            numbers[index] = numbers[realLength - 1];            numbers[realLength - 1] = temp;            realLength--;        }


经过网友Arcan的提醒,我看了下他的算法实质是 for i:=1 to n do swap(a[i], a[random(i,n)]);
而并非for i:=1 to n do swap(a[i], a[random(1,n)]),只不过是倒着换的。
我没有看清楚算法就误认为他的解法有误,在此对他表示抱歉。

[解决办法]
嗯,是这样的。
[解决办法]
没事,他会理解的
[解决办法]
我接受楼主的道歉。这次冲突我也有过错,在这里也为向楼主道歉。

读书人网 >C#

热点推荐