- 1
- 2
- 3
- 4
- 5
int prev, next;
// next should not be equal to prev;
next = radnom(MAX);
if (next = prev)
next = random(MAX);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+125
int prev, next;
// next should not be equal to prev;
next = radnom(MAX);
if (next = prev)
next = random(MAX);
Просто передаю концепцию на общеславянском.
Будет интересно посчитать насколько всё-таки это говно уменьшает вероятность совпадения при разных MAX.
someone 21.08.2013 10:43 # −3
Fixed?
Stallman 21.08.2013 11:09 # +6
Lure Of Chaos 22.08.2013 20:31 # −1
kegdan 21.08.2013 11:16 # 0
Другое дело, что так делать нельзя)
zasedanie 21.08.2013 11:17 # +2
При любом рандоме (кроме каноничного result = 3;) на небольших MAX условие будет отрабатывать систематически.
vistefan 21.08.2013 11:26 # 0
CapCoffee 21.08.2013 11:48 # −1
vistefan 21.08.2013 11:52 # 0
CapCoffee 21.08.2013 20:10 # 0
kegdan 21.08.2013 11:49 # 0
vistefan 21.08.2013 11:54 # 0
kegdan 21.08.2013 11:55 # −1
vistefan 21.08.2013 11:56 # +2
roman-kashitsyn 21.08.2013 13:01 # +1
roman-kashitsyn 21.08.2013 13:09 # 0
guest 03.09.2013 20:51 # −2
roman-kashitsyn 21.08.2013 11:59 # +1
vistefan 21.08.2013 12:07 # 0
roman-kashitsyn 21.08.2013 12:51 # 0
Ну а вероятность выпадения двух одинаковых значений подряд легко посчитать теоретически: p = 1 / MAX.
vistefan 21.08.2013 13:03 # 0
roman-kashitsyn 21.08.2013 13:07 # 0
> код почти наверняка будет работать верно
> Вопрос не в устройстве генератора
Ну я какбэ и говорю, что от качества рандома мало что зависит, нет?
kegdan 21.08.2013 13:21 # +1
если рандом трушный - он выдает любое число с одинаковой вероятностью. А программировании, строго говоря, это не совсем так. Чем ближе выдаваемая выборка к равномерному распределению - тем лучше рандом.
roman-kashitsyn 21.08.2013 13:23 # −1
roman-kashitsyn 21.08.2013 13:26 # +2
kegdan 21.08.2013 13:34 # 0
гоню, все правильно 1/(MAX^2).
Если матожидание ярко выражено, то шанс попадания в одно и тоже число увеличивается. Хотя врятли в рардом будут засовывать нормальное распределение вместо равномерного. Но исключать такое развитие событий не следует)
vistefan 21.08.2013 14:34 # 0
defecate-plusplus 21.08.2013 12:08 # +6
раскусил, да?
kegdan 21.08.2013 12:13 # 0
vistefan 21.08.2013 12:22 # 0
roman-kashitsyn 21.08.2013 13:28 # +2
Lure Of Chaos 22.08.2013 20:33 # 0
defecate-plusplus 21.08.2013 13:10 # 0
знание, что после одного псевдослучайного числа обязано сгенерироваться отличное от него, снижает стойкость
vistefan 21.08.2013 13:32 # 0