[問題] 從array中隨機取得n個不重複元素

作者: peter0726 (江 謝)   2014-11-03 16:46:14
各為版友大家好
小弟有個問題,如標題所述
現在想寫一個功能
大致上就是隨機從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;
}

Links booklink

Contact Us: admin [ a t ] ucptt.com