|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Sergey Averichev 2:5000/26.79 19 Dec 2000 00:17:38 To : Maxim Y Zinyakov Subject : Cards mixing -------------------------------------------------------------------------------- Monday December 18 2000 16:42, you wrote to me: SA>> @randlist=(1..52); SA>> foreach $count(0..51) SA>> { SA>> $rnd=int(rand(@randlist)); SA>> $x[$count]=$randlist[$rnd]; SA>> splice (@randlist,$rnd,1); SA>> } SA>> Может кто покороче сделает? Самому интересно. MZ> @a=1..52; MZ> while(@a){@arr=(@arr, splice(@a,int(rand($#a+1)),1))}; MZ> В итоге, массив @arr содержит в себе перемешанные карты. MZ> есть "более другой" и очень короткий способ, но случайность в нем MZ> очень маленькая и предсказуемая: Спасибо, поучительно... MZ> for(1..52){%hash{$_}++};@arr=keys %hash; А можно как-то отследить порядок выдачи keys у хэша? Каким законам оно подчиняется? CULater, Seraver. [Team СТАРОПОЙHТЫ] ... Хочется жить не вмеру, а вволю. --- Две крайности - +0 и -0. * Origin: Hyperbola Station: "Powered by ТЭЦ-3" (2:5000/26.79) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/33953a3e9b72.html, оценка из 5, голосов 10
|