2009年7月2日星期四

[PerlChina] Re: 请教perl如何随机排列数组项?

sub fisher_yates_shuffle {
    my $array = shift;
    my $i;
    for ($i = @$array; --$i; ) {
        my $j = int rand ($i+1);
        next if $i == $j;
        @$array[$i,$j] = @$array[$j,$i];
    }
}

搜到的。传一个 array ref 进去,最好加一个数组是不是空的判断。

2009/7/3 purl lamp <lamp.purl@gmail.com>
sort { rand 1 > 0.5 } (1..10)

2009/7/3 imxae <imx365ster@gmail.com>
用这个是不是太复杂了?







--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

没有评论: