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


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Oleg I. Khovayko                     2:5020/400     08 Jan 2003  00:33:51
 To : Oleg Polubasoff
 Subject : Re: масив чисел
 -------------------------------------------------------------------------------- 
 
 Oleg Polubasoff wrote:
 
 > 
 >     RND(n) часто определяют как random()%n, и для практических целей этого
 > обычно вполне достаточно. Hо, если, как ты говоришь, интересует именно
 > "математически верный" алгоритм, то надо иметь ввиду, что результат
 > random()%n может быть распределён не равномерно.
 
 Естественно. Я это знаю. Типичный пример: random() дает числа 0..15,
 а надо получить случайное число в диапазоне 0..9. Понятно, что если
 сделать генератор "x = random() % 10", то числа из интервала 0..5 будут 
 выпадать вдвое чаще, чем числа из интервала 6..9.
 
 В свою защиту могу сказать то, что я приводил математически верный алгоритм 
 ПЕРЕМЕШИВАHИЯ, а не генерации случайного числа. И акцентировался я именно на 
 перемешивании. Поэтому генерацию случайного числа "схалявил". И писать было
 лениво,
 н загромождать исходник-пример мало относящимся к делу мусором не хотелось.
 
 А если уж хочется совсем равномерного распределения от 0 до N, то его делать
 можно так:
 
 1. Hаходим некое максимально возможное int Z, такое, что (Z % N == 0) && (Z <=
 max_random())
 2. Генерим равномерно распределенное число:
   int x;
   while((x = random()) >= Z);
   x %= N;
 
 Особое внимание надо обратить на знак сравнения  ">= Z". Если наш random()
 может выдавать нуль, надо писать именно ">= Z". Если же random() нуля вернуть не
 может
 (а именно такие генераторы распространены наиболее широко), надо писать "> Z".
 
 >     О том, что последовательные вызовы random() обычно не независимы, молчу.
 
 Hу естественно! Hе хватало нам еще физического генератора случайных чисел...
 
 -- 
 #include <best/regards.hpp>
 Oleg I. KHOVAYKO  
 (301)435-5885 || WEB: http://olegh.spedia.net
 --- ifmail v.2.15dev5
  * Origin: National Center for Biotechnology Information (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 масив чисел   Igor Kasyanchuk   27 Dec 2002 17:23:00 
 масив чисел   Vladimir Vassilevsky   28 Dec 2002 23:35:20 
 Re: масив чисел   Oleg Khovayko   29 Dec 2002 21:16:29 
 Re: масив чисел   Sergey Andrianov   30 Dec 2002 23:52:36 
 масив чисел   Igor Kasyanchuk   31 Dec 2002 20:56:00 
 масив чисел   Evgenij Masherov   01 Jan 2003 14:01:27 
 масив чисел   Sam   01 Jan 2003 19:01:20 
 Re: масив чисел   Eugene Kilachkoff   01 Jan 2003 22:14:24 
 масив чисел   Evgenij Masherov   02 Jan 2003 00:13:58 
 масив чисел   Sam   03 Jan 2003 00:35:31 
 масив чисел   Evgenij Masherov   03 Jan 2003 03:12:13 
 масив чисел   Sam   03 Jan 2003 14:33:28 
 масив чисел   Igor Kasyanchuk   03 Jan 2003 23:50:00 
 масив чисел   Sam   06 Jan 2003 00:02:09 
 масив чисел   Igor Kasyanchuk   01 Jan 2003 21:07:00 
 масив чисел   Evgenij Masherov   02 Jan 2003 10:22:47 
 масив чисел   Sam   03 Jan 2003 00:41:27 
 Re: масив чисел   Eugene Kilachkoff   03 Jan 2003 01:03:01 
 масив чисел   Sam   03 Jan 2003 14:29:25 
 масив чисел   Evgenij Masherov   03 Jan 2003 03:14:59 
 Re: масив чисел   Oleg Khovayko   03 Jan 2003 03:39:51 
 Re: масив чисел   Evgenij Masherov   03 Jan 2003 03:58:20 
 Re: масив чисел   Sergej Tarasov   03 Jan 2003 04:29:11 
 Re: масив чисел   Evgenij Masherov   03 Jan 2003 04:59:16 
 Re: масив чисел   Sergej Tarasov   03 Jan 2003 05:24:40 
 Re: масив чисел   Oleg I. Khovayko   03 Jan 2003 18:03:07 
 Re: масив чисел   Evgenij Masherov   03 Jan 2003 22:57:30 
 масив чисел   Max Alekseyev   29 Jan 2003 18:49:50 
 масив чисел   Evgenij Masherov   30 Jan 2003 11:02:18 
 масив чисел   Max Alekseyev   30 Jan 2003 02:03:18 
 масив чисел   Nickita A Startcev   05 Jan 2003 22:26:44 
 масив чисел   Evgenij Masherov   06 Jan 2003 20:16:24 
 Re: масив чисел   Anatoly Saveliev   08 Jan 2003 08:32:30 
 масив чисел   Oleg Polubasoff   06 Jan 2003 22:12:54 
 Re: масив чисел   Oleg I. Khovayko   08 Jan 2003 00:33:51 
 масив чисел   Max Alekseyev   29 Jan 2003 18:45:26 
 Re: масив чисел   Sergey Andrianov   04 Jan 2003 00:13:42 
 масив чисел   Alexey Burdin   04 Jan 2003 19:45:36 
 масив чисел   Igor Kasyanchuk   04 Jan 2003 21:16:00 
 масив чисел   Ianos Gnatiuc   05 Jan 2003 09:53:22 
 масив чисел   Nickita A Startcev   05 Jan 2003 22:15:12 
 Re: масив чисел   Sergey Andrianov   04 Jan 2003 00:11:36 
 Re: масив чисел   Andrew Starsh   01 Jan 2003 11:50:53 
Архивное /ru.algorithms/11522798469d1.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional