作者peter0726 (江 謝)
看板Perl
標題[問題] 從array中隨機取得n個不重複元素
時間Mon Nov 3 16:46:14 2014
各為版友大家好
小弟有個問題,如標題所述
現在想寫一個功能
大致上就是隨機從n個數字中取出m個不重複的數字
目前寫出來的可以正確執行
可是當數字大的時候就會執行頗久的
想請教各位有沒有更有效率的寫法0.0?
目前的程式碼如下
sub randpick {
my $max = shift;
my $need = shift;
my %pick;
my @picked = keys %pick;
while (@picked < $need) {
my $num = int(rand($max));
$pick{$num} = 1;
@picked = sort{$a <=> $b} (keys %pick);
}
return %pick;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.150.166
※ 文章網址: http://webptt.com/m.aspx?n=bbs/Perl/M.1415004377.A.86D.html