Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

"Случайная" сортировка хэша (John)
Author Message
John
Заглянувший



Joined: 23 May 2006
Posts: 5
Карма: 0
   поощрить/наказать


PostPosted: Tue May 23, 2006 10:23 am (написано за 4 минуты 35 секунд)
   Post subject: "Случайная" сортировка хэша
Reply with quote

Доброго времени суток, подскажите, как можно "заставить" foreach выводить случайным образом содержимое хэша (ключи или значения), т.е. при каждом новом проходе цикл выдает последовательность ключей или значений отличную от предыдущей. Спсб.
Back to top
View user's profile Send private message
Ant
Сотрудник «Лаборатории»



Joined: 17 Jun 2003
Posts: 6840
Карма: 129
   поощрить/наказать


PostPosted: Wed May 24, 2006 9:47 pm (спустя 1 день 11 часов 23 минуты; написано за 44 секунды)
   Post subject:
Reply with quote

Первый способ, который мне пришёл в голову, таков:
Code (perl): скопировать код в буфер обмена
my %h = ( 'qwe' => 123111, 'asd' => 4560, 'zxc' => 789, 'qaz' => 12 );

for ( sort (www.perldoc.com/perl5.6/pod/func/sort.html) func keys (www.perldoc.com/perl5.6/pod/func/keys.html) %h ) {
        print (www.perldoc.com/perl5.6/pod/func/print.html) $h{$_}."\n"
}

sub func {
        rand (www.perldoc.com/perl5.6/pod/func/rand.html)( length (www.perldoc.com/perl5.6/pod/func/length.html) $a ) > rand (www.perldoc.com/perl5.6/pod/func/rand.html)( length (www.perldoc.com/perl5.6/pod/func/length.html) $b )
}
Back to top
View user's profile Send private message Send e-mail
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 412
   поощрить/наказать


PostPosted: Sun Jun 04, 2006 9:19 am (спустя 10 дней 11 часов 31 минуту; написано за 3 секунды)
   Post subject:
Reply with quote

www.rocketaware.com/perl/perlfaq4/How_do_I_shuffle_an_array_random.htm
Back to top
View user's profile Send private message Send e-mail
Ant
Сотрудник «Лаборатории»



Joined: 17 Jun 2003
Posts: 6840
Карма: 129
   поощрить/наказать


PostPosted: Sun Jun 04, 2006 8:30 pm (спустя 11 часов 11 минут; написано за 15 секунд)
   Post subject:
Reply with quote

Дмитрий Котеров, какое-то некрасивое там решение...
Back to top
View user's profile Send private message Send e-mail
John
Заглянувший



Joined: 23 May 2006
Posts: 5
Карма: 0
   поощрить/наказать


PostPosted: Mon Jun 05, 2006 10:06 am (спустя 13 часов 35 минут; написано за 2 минуты 19 секунд)
   Post subject:
Reply with quote

Всем большое спасибо, решение нашел в замечательной книге "Perl Cookbook".

Вопрос решен, тему можно закрыть.
Back to top
View user's profile Send private message
Ant
Сотрудник «Лаборатории»



Joined: 17 Jun 2003
Posts: 6840
Карма: 129
   поощрить/наказать


PostPosted: Mon Jun 05, 2006 3:44 pm (спустя 5 часов 38 минут)
   Post subject:
Reply with quote


М

Тема закрыта.
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   This topic is locked: you cannot edit posts or make replies. All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You cannot download files in this forum.
XML