Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Anatolij Kupriyanov                  2:5050/69.1    16 Apr 2001  08:15:54
 To : Alexander Babanov
 Subject : Perl:10% из массива
 -------------------------------------------------------------------------------- 
 
 
  Я совершенно случайно заметил, что в Воскресенье Апрель 15 2001 11:20, 
 Alexander Babanov писал Pavel Reich:
 
  AB> ЮІ±° Quoted soap from Pavel Reich to All Юґullo Pavel!
 
  PR>> Есть список и нужно получить список в 10 раз меньше. То есть получить
  PR>> 10% _случайных_ элементов списка. Если без случайности, это понятно -
  PR>> отрезаешь и все. А вот со случайностью? Да так, чтобы не повторялись?
  PR>> Hапример из списка (1..100) получаем 5 15 21 33 40 47 51 58 70 89
  PR>> И как это сделать наиболее рационально...
 
  AB> Хорошую эффективность (по памяти и времени) при больших N должно дать
  AB> использование хеша для проверки повторений. Либо, что еще лучше, но будет
  AB> портить массив, прописывание какого-нибудь ключа на место выбранного 
  AB> элемента.
 
  AB> Во втором случае:
 
  AB> @a = (10001..20000);
  AB> for (1..1000) {
  AB>   $i = int rand 10000;
  AB>   if(defined $a[$i]) {
  AB>     push @b, $a[$i];
  AB>     undef $a[$i];
  AB>   }
  AB>   else {
  AB>     $r++;
  AB>     redo;
  AB>   }
  AB> }
  AB> print "$r\n";
  AB> Дает 40-70 перезапусков на тысячу элементов.
 
 И pастёт линейно. :(
 Для 1_000_000 я не смог дождаться, когда он закончит (а ждал я несколько
 минут).
 Вот такая штука pаботает  за 12 секунд:
 
 $с=1000000;
 @a=sort {$a <=> $b} (sort {1-int rand 3} (1..$с))[0..$с/10];
                 C уважением, Anatolij Kupriyanov.
 [МФ УдГУ] [(Microsoft!=SUXX)&&(LINUX!=RULEZ)] [Two Beer or not to be]
 ш ты говоришь: "Куда же ты отсюда?" Ты знаешь,главное - прочь, а там все равно
 ... еще 50 грамм инвестиций - и я недвижимость...
 --- ifmail v.2.15
  * Origin: kan@scb.udsu.ru (2:5050/69.1)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Perl:10% из массива   Pavel Reich   15 Apr 2001 22:09:48 
 Re: Perl:10% из массива   Alexander Babanov   15 Apr 2001 12:20:27 
 Re: Perl:10% из массива   Ruslan Bondarev   15 Apr 2001 22:22:53 
 Re: Perl:10% из массива   Alexander Babanov   15 Apr 2001 16:32:12 
 Re: Perl:10% из массива   Ruslan Bondarev   16 Apr 2001 13:46:41 
 Perl:10% из массива   Anatolij Kupriyanov   16 Apr 2001 08:15:54 
 Re: Perl:10% из массива   Alexander Babanov   17 Apr 2001 00:50:28 
 Re: Perl:10% из массива   Ruslan Bondarev   17 Apr 2001 22:35:08 
 Re: Perl:10% из массива   Alexander Babanov   17 Apr 2001 22:37:30 
 Re: Perl:10% из массива   Konstantin Stupnik   18 Apr 2001 11:29:18 
 Re: Perl:10% из массива   Alexander Babanov   18 Apr 2001 09:47:18 
 Re: Perl:10% из массива   Artem Chuprina   18 Apr 2001 14:15:15 
 Re: Perl:10% из массива   Alexander Babanov   18 Apr 2001 09:31:00 
 Re: Perl:10% из массива   Artem Chuprina   18 Apr 2001 19:31:52 
 Re: Perl:10% из массива   Sergej Tarasov   19 Apr 2001 09:24:22 
 Re: Perl:10% из массива   Artem Chuprina   19 Apr 2001 10:57:40 
 Re: Perl:10% из массива   Tarasov Sergej   20 Apr 2001 11:44:49 
 Re: Perl:10% из массива   Artem Chuprina   20 Apr 2001 12:15:18 
 Re: Perl:10% из массива   Ruslan Bondarev   18 Apr 2001 22:47:01 
 Re: Perl:10% из массива   Alexander Babanov   19 Apr 2001 03:42:45 
 Re: Perl:10% из массива   Artem Chuprina   19 Apr 2001 17:14:19 
 Re: Perl:10% из массива   Alexander Babanov   19 Apr 2001 12:47:43 
 Re: Perl:10% из массива   Ruslan Bondarev   19 Apr 2001 23:36:14 
 Re: Perl:10% из массива   Artem Chuprina   20 Apr 2001 12:13:17 
 Re: Perl:10% из массива   Alexander Babanov   20 Apr 2001 07:38:39 
 Re: Perl:10% из массива   Artem Chuprina   20 Apr 2001 18:14:31 
 Hа: Perl:10% из массива   Vitali Brusentsev   26 Apr 2001 16:46:59 
 Re: Perl:10% из массива   Ruslan Bondarev   19 Apr 2001 23:14:36 
 Re: Perl:10% из массива   Alexander Babanov   19 Apr 2001 21:45:51 
 Re: Perl:10% из массива   Ruslan Bondarev   20 Apr 2001 09:59:51 
 Re: Perl:10% из массива   Artem Chuprina   20 Apr 2001 15:32:00 
 Re: Perl:10% из массива   Ruslan Bondarev   20 Apr 2001 17:27:31 
 Re: Perl:10% из массива   Artem Chuprina   21 Apr 2001 12:33:23 
 Re: Perl:10% из массива   Ruslan Bondarev   22 Apr 2001 10:27:13 
 Re: Perl:10% из массива   Yuriy Kaminskiy   20 Apr 2001 15:17:01 
 Re: Perl:10% из массива   Alexander Babanov   22 Apr 2001 20:19:06 
 Re: Perl:10% из массива   Yuriy Kaminskiy   24 Apr 2001 03:21:50 
 Re: Perl:10% из массива   Alexander Babanov   24 Apr 2001 18:54:37 
 Re: Perl:10% из массива   Ruslan Bondarev   18 Apr 2001 07:36:10 
 Re: Perl:10% из массива   Alexander Babanov   18 Apr 2001 02:03:50 
 Re: Perl:10% из массива   Ruslan Bondarev   18 Apr 2001 22:45:33 
 Re: Perl:10% из массива   Artem Chuprina   19 Apr 2001 11:01:45 
 Re: Perl:10% из массива   Ruslan Bondarev   19 Apr 2001 23:07:20 
 Re: Perl:10% из массива   Artem Chuprina   20 Apr 2001 12:15:20 
 Re: Perl:10% из массива   Ruslan Bondarev   20 Apr 2001 17:12:48 
 Re: Perl:10% из массива   Artem Chuprina   21 Apr 2001 12:35:25 
 Re: Perl:10% из массива   Ruslan Bondarev   22 Apr 2001 10:30:12 
 Re: Perl:10% из массива   Alexander Babanov   22 Apr 2001 08:11:37 
 Re: Perl:10% из массива   Ruslan Bondarev   23 Apr 2001 21:31:56 
 Re: Perl:10% из массива   Alexander Babanov   24 Apr 2001 00:22:58 
 Re: Perl:10% из массива   Ruslan Bondarev   24 Apr 2001 19:42:06 
 Re: Perl:10% из массива   Yuriy Kaminskiy   22 Apr 2001 02:20:33 
 Re: Perl:10% из массива   Ruslan Bondarev   23 Apr 2001 21:45:27 
 Re: Perl:10% из массива   Alexander Babanov   19 Apr 2001 03:39:23 
 Re: Perl:10% из массива   Ruslan Bondarev   19 Apr 2001 23:09:25 
 Re: Perl:10% из массива   Artem Chuprina   18 Apr 2001 14:13:13 
 Re: Perl:10% из массива   Ruslan Bondarev   18 Apr 2001 22:47:06 
 Re: Perl:10% из массива   Artem Chuprina   16 Apr 2001 14:13:40 
Архивное /ru.perl/27803ada74b8.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional