» Открытый Клуб » Опыты с рандомом
Автор | Тема: Опыты с рандомом | AlienManHunt
|
1 |
39 | написано: 19.12.2008 20:06:10 |
Вижу, многих будоражит тема рандома, но так же хватает людей, которые в него не
верят, а верят в "тайные махинации админов", "особую систему подсчета для
выигрыша в рулетку", даже вплоть до "переменной, от которой зависит рандом,
меняющейся каждый день". Решил провести небольшой эксперимент :)
srand((double) microtime()*1000000);
for($a=1;$a<=100;$a++)$m[]=rand(0,9);
for($a=0;$a<=9;$a++)echo $a." - ".count(array_keys($m,$a))."%<br>";
Дальнейшие изыскания привели к таким вот например результатам:
(1)
0 - 11%
1 - 8%
2 - 13%
3 - 10%
4 - 8%
5 - 12%
6 - 11%
7 - 10%
8 - 8%
9 - 9%
---
(2)
0 - 8%
1 - 7%
2 - 15%
3 - 11%
4 - 9%
5 - 12%
6 - 9%
7 - 9%
8 - 11%
9 - 9%
---
(3)
0 - 15%
1 - 9%
2 - 9%
3 - 9%
4 - 5%
5 - 10%
6 - 15%
7 - 10%
8 - 9%
9 - 9%
---
(4)
0 - 7%
1 - 12%
2 - 5%
3 - 10%
4 - 9%
5 - 11%
6 - 13%
7 - 15%
8 - 6%
9 - 12%
---
Итак, любители находить систему во всем беспорядочном, все вы видели, что тут
чистейшей воды рандом, и ни от каких времен дня он не зависит. Ответьте на пару
вопросов:
1) Почему например число 9 аж в 75% выпадало ровно 9 раз?
2) Почему девятка, бывало, фигурировала в чуть ли не в половине чисел?
3) Почему у некоторых чисел оставался разброс не очень большой, а у других -
бешеный довольно таки?
Таких вопросов может быть много. На них один ответ: дело случая и чистейшая
случайность!
И на последок, после 6 беспорядочных перезапусков выдало:
0 - 10%
1 - 14%
2 - 15%
3 - 10%
4 - 11%
5 - 13%
6 - 10%
7 - 6%
8 - 5%
9 - 6%
1) Десятка красиво стоит через два числа. После неё через число стоит шестерка.
Причем кроме 6 и 10 повторяющихся чисел нет, между десятками числа стоят в
порядке увеличения. Мистика? Ответ неверен. ЧИСТАЯ СЛУЧАЙНОСТЬ.
Надеюсь, я помог вам немного развеять ваше странное отношение к рандому как к
мистике. Вы все увидели, что тут фигурирует чистейшей воды случайность, но
вопреки этому происходят необъяснимые с виду вещи, на которые довольно простой
ответ: РАН-ДОМ.
P.S.
И прекратите уже пытаться вычислить систему рулетки и прочего, я уверен, что в
просчете выстрелов используется такой же рандом с добавлением влияния статов и
прочих умелок =)
А по поводу пулеметов в последнее время - думаю, что Илья попросту чуть
подправил формулу. Он ведь уже говорил, что по поводу мелких исправлений не
пишет. Если поменял - значит так надо. Если окажется слишком плохо - вернет все
обратно, не будет же он портить систему игры.
Источник: http://gwoffline.ucoz.ru/news/2008-12-19-6 |
| AfftoriTet
|
2 |
-14 | написано: 19.12.2008 20:10:55 |
sgorela provodka
Nikogda formuly ne interesovali, eto vseo ego velichestvo "Sluchai" |
| Арахноид
|
3 |
7 | написано: 19.12.2008 20:11:37 |
если бы цифр было бы побольше, а букв поменьше, то было бы пять. да. |
| Матис
|
4 |
5 | написано: 19.12.2008 20:13:28 |
| AlienManHunt
|
5 |
3 | написано: 19.12.2008 20:14:23 |
*3
Могу конечно накидать цифр =) но по скрипту в начале статейки можно самому
получить хоть десять мегабайт цифр =)
Или я не о тех подумал? |
| SandroBah
|
6 |
7 | написано: 19.12.2008 20:14:37 |
1. Для точного анализа рандомных чисел надо делать выборку, которая содержит
больше 10000 чисел
2. Компьютерный рандом - это псевдослучайные числа, которые от каких-то
параметров, но зависят.
Исходя из первого пункта - надо проанализировать 10000 боёв с пуликом, что
практически нереально. И причем при одинаковых условиях - видимость не должна
влиять на результаты численного опыта. Вот после такого анализа можно и
приходить в ОК.
Но пулики всё равно чувствуется подкрутили((( |
| Samuel Clemens
|
7 |
0 | написано: 19.12.2008 20:16:35 |
любая программа - алгоритм, т.е. заданная последовательность действий
как программа может выдумать что-либо случайное, если она может действовать
только по заложенному в нее алгоритму? |
| AlienManHunt
|
8 |
| написано: 19.12.2008 20:17:26 |
*6
насчет пункта 2 - srand((double) microtime()*1000000); на то и поставлено =)
может и зависит, от количества прошедших секунд с 197какогото года, но они
постоянно меняются, и их тоже можно назвать рандомом своеобразным =)
могу конечно запустить скрипт на 10000 рассчетов с последующим анализом в более
компактный вид, но не думаю, что что-то сильно изменится =) |
| Арахноид
|
9 |
1 | написано: 19.12.2008 20:18:28 |
5
да я про то, что большая часть топиков про рандом в рулетке, боях, лотерее и
прочем создается по типу "я вот тут заметил", "я вот тут прикинул", "мне
уже пятый бой..", "да вообще нифига не".. А ваш подход наоборот таки радует.
Только бесполезно. Всё равно основные громкоорущие не поймут. И поэтому не
поверят. Или поймут, но именно поэтому и не поверят. ) |
| Бешеный Джек
|
10 |
4 | написано: 19.12.2008 20:20:03 |
бес ста грамм не разбересси |
| Pefon
|
11 |
| написано: 19.12.2008 20:21:15 |
7 алгоритм тоже имеет свой рандом,например он может начать выполнять операции не
с начала(как обычно)а например с конца,с серидины,каждый раз через раз и т.д |
| Alk
|
12 |
| написано: 19.12.2008 20:23:04 |
srand((double) microtime()*1000000);
это совсем не дает случайность )
Вообще, математическое ожидание, имхо, не будет отличаться при использовании
srand()
Кроме того, с чего ты взял что идет привзяка ко времени?
И почему именно такая привязка? |
| drova
|
13 |
| написано: 19.12.2008 20:23:06 |
автор,почему у тебя ,такого умного,отрицательная статистика в казино,люди
,которые ставят на абум ,чаще в плюсе |
| AlienManHunt
|
14 |
| написано: 19.12.2008 20:23:49 |
*7
поверь, алгоритм генерации числа более чем хорошо с этим справляется. если
заинтересовался - почитай что-нибудь вроде
http://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D1%8B%D0%B9_%D
0%BA%D0%BE%D0%BD%D0%B3%D1%80%D1%83%D1%8D%D0%BD%D1%82%D0%BD%D1%8B%D0%B9_%D0%BC%D0
%B5%D1%82%D0%BE%D0%B4 :)
а если по простому, то берешь количество секунд например прошедших с прошлоой
недели, если делится на количество секунд прошедших с пятницы без остатка - то
умножаешь на количество с четверга по сейчашний час -1, потом делишь на 0.х, где
Х - четвертый символ числа(если сейчас четный день недели), либо шестой
символ(если нечетный), делишь пока не получится число меньше 10, откидываешь
дробь - и вуаля =) алгоритм чистейшей воды, основанный на случайности времени
вплоть до микросекунд =) он громоздкий, но демонстрирует случайность в
алгоритмах. |
| Шпунька
|
15 |
3 | написано: 19.12.2008 20:25:24 |
| asterix201
|
16 |
5 | написано: 19.12.2008 20:26:32 |
11
Никакой детерминированный алгоритм не может генерировать полностью случайные
числа.
псевдослучайные - да, но абсолютная случайность не может быть получена
арифметическими методами) |
| AlienManHunt
|
17 |
| написано: 19.12.2008 20:33:02 |
*9
Ну может кто-нибудь да поймет =)
то же наблюдение в конце - можно сказать что "я тут заметил", но на самом деле
ведь случайно выпало
*10
50 грамм коньячку и вперед ))
*12
1) этого рандома хватает. Или ты хочешь сказать, что все же не хватает и как-то
влияет на расчет урона? :)
2) Насчет привязки ко времени - наоборот отрицал, просто видел что ктото
упоминал про это и предположения такие двигал
*13
Ответ - случайность :) А есть такая штука - азарт. А вдруг поставлю и повезет? И
кому-то(случайно) везет, и он становится богатым. Мне же - не везло, и даже от
моих знаний, что все это рандом - я не стану выигрывать. Я не ищу систему во
всем этом, просто наслаждаюсь случаем )
Не будет же админ, увидев что я это знаю, вводить в код игры специально для
моего перса вариант "бОльшего проигрыша" :) |
| AlienManHunt
|
18 |
| написано: 19.12.2008 20:34:29 |
*15
зачет )))
*16
Да и неарифметическими тоже =) Тот же бросок монетки - какая там случайность,
когда выпадает либо решка либо орел? Ведь заранее известно что выпадет либо то,
либо то. Логика та же =) |
| asterix201
|
19 |
| написано: 19.12.2008 20:43:32 |
18
ну на самом деле не совсем так :)
ты же не можешь с точностью предсказать что выпадет орел или решка) вероятность
- да, можно посчитать, но это другое понятие :))
//я не против автора и его выводов, т.к. рандом - наш бох), просто прицепился к
выражению "чистая случайность" поболтать :) |
| AlienManHunt
|
20 |
| написано: 19.12.2008 20:45:21 |
*19
ну тогда предскажи с точностью, что выпадет в таком случае:
$moneta = array('1' => 'орел', '2' => 'решка');
echo $moneta[rand(1,2)];
нууус? 8))) |
|
К списку тем
|