|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Pavel Ammosov 2:5020/52 22 Jul 2001 04:27:14 To : Serguei Trouchelle Subject : Re: случайная выбоpка хэша --------------------------------------------------------------------------------
ST>Есть хэш.
ST>Hеобходимо случайным обpазом выбpать из него несколько элементов.
ST>Каким обpазом это лучше всего pеализовать?
Я бы применил fisher_yates_shuffle из Cookbook 4.17 по keys %hash,
но может оказаться и какое-нибудь более эффективное решение.
# fisher_yates_shuffle( \@array ) : generate a random permutation
# of @array in place
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];
}
}
--
Pavel Ammosov O \
apavel@aha.ru __ )
http://isabase.philol.msu.ru/~apavel/ )
wget -O - isabase.philol.msu.ru/~apavel/key.asc|pgp -fka O /
--- FIDOGATE 4.4.0-snp10
* Origin: Zenon N.S.P. news server (2:5020/52.0)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/291182d13e107.html, оценка из 5, голосов 10
|