Alexey Veselkin
Гуру
(4385)
17 лет назад
о-ё. Помнится на VB всегда писал Randomize Timer, чтобы рандомизировать по случайному отрезку времени (эээ, кажется) =) Также помню, что БЕЗ него после нового запуска програмы random выдавал одни и те_же значения, т.е. после перезапуска - теже чила (повторюсь, без Randomize Timer).
50 на 50 не получится - на то он и рандом. Есть теория вероятности, ее проходят в вузах =)) (школах?) Может быть источником для размышлений.
Al T
Просветленный
(21429)
17 лет назад
Random без параметров возвращает дробь от 0 до 1, с параметром - целое от 0 до параметра-1. Так в паскале, по крайней мере. Вообще эту функцию уже тестировали, она не совсем случайные числа возвращает (так писали, я не проверял). Слабо написать свой генератор?
Питерский
Гуру
(4078)
17 лет назад
Генератор не отдает случайные числа. Все возвращаемые им числа - закономерны. Чтоб на выходе числа выглядели случайными, нужно привязать каждую генерацию ко времени. Так проще.
Ошибка в алгоритме боя исключена, т.к. трассировка десятки раз доказывает обратное. Получается, что в 5 из 10 боев одна сторона в среднем должна брать верх. Экспериментов было уже за тысячу, компьютер не переставал решать эту задачу полтора месяца подряд. Но 50 на 50 не получается, получается 40 на 60.
А весь вопрос заключается в том, как работает генератор случайных чисел (ГСЧ) Т.е. не как он используется, в языках программирования, а каким образом компьютер может выбрать случайное число, на основании каких условий? Понятно, что функция random(X) возращает значение в диапазоне [0..Х-1], но по каким критериям она выбирает Х, кто-нибудь знает?