|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.09.2012, 12:43 | #1 |
Регистрация: 25.09.2012
Сообщений: 5
|
Непонятности с rand()
Почему в результате выполнения данного кода, s1 и s2 настолько сильно различаются? s1 равняется ~250000, а s2 ~450000.
В первом случае просто сравнивается случайно выбранная цифра от 1 до 4 с другой такой же. Если значения совпадают, то к s1 прибавляется 1. Во втором в массив из 4-х элементов, в случайный элемент записывается 1 (остальные нули). Затем случайный элемент массива проверяется на равенство единице и в случае положительного исхода, к s2 прибавляется 1. Код:
Последний раз редактировалось Ecclesiastes; 25.09.2012 в 12:49. |
25.09.2012, 12:50 | #2 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
Вероятность увеличения s2 больше, т.к. массив m вы обнуляете ТОЛЬКО если rand()%4 выдал номер ячейки с уже записанной единицей, а с каждой (не совсем с каждой, ну вы поняли) "безуспешной" итерацией цикла количество единиц в массиве возрастает.
Утверждение "в случайный элемент записывается 1 (остальные нули)" неверно. Код:
Код:
Благодарить в репутацию. Проклинать — туда же
Последний раз редактировалось Luuzuk; 25.09.2012 в 12:54. |
25.09.2012, 12:52 | #3 |
Регистрация: 25.09.2012
Сообщений: 5
|
Ах, точно! Спасибо!
Вопрос ичерпан. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
php+js непонятности с переменными | mrgrudge | PHP | 0 | 18.11.2010 15:28 |
rand | VAN32 | Общие вопросы C/C++ | 5 | 07.03.2010 21:38 |
Непонятности DSL-подключения | Web-Gangsta | Свободное общение | 6 | 20.02.2010 16:10 |
Непонятности в чужом коде | Filin86 | Общие вопросы Delphi | 1 | 18.02.2010 07:02 |
Cos, Sin и непонятности с ними =\\ | Zeraim | Общие вопросы Delphi | 3 | 25.07.2009 01:38 |