![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Я самый любопытный
Участник клуба
Регистрация: 24.07.2012
Сообщений: 1,949
|
![]()
Решил написать статью о том, как работает генератор случайных чисел. С помощью функции Random можно узнать какое "случайное" число выдаст программа.
1. Как работает процедура Randomize? Процедура Randomize инициализирует генератор случайных чисел, задавая значение переменной RandSeed, вычисленное с помощью системных часов. Код:
Рассмотрим работу функции для целых чисел. Код:
Еще одна особенность заключается в том, что переменная RandSeed всегда изменяется при вызове функции Random, т.е. устанавливает генератор случайного числа на следующее значение. Напишем эту функцию на ассемблере. Код:
Код:
Код:
Коды получены с помощью Delphi Последний раз редактировалось newerow1989; 06.03.2017 в 08:22. |
![]() |
![]() |
![]() |
#2 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
![]()
newerow1989
Я бы всё по другому сделал. Меньше чисел больше теории. Откуда взялось число $8088405? Каким образом оно получается? Слово случайный тут лишнее, набор уже неслучайный. Наверно лучше рассказать как это можно использовать в космических игрушках для генерации случайных планет которые будут разными на разных картах и одинаковые при каждом запуске игры.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
![]() |
![]() |
![]() |
#3 |
Я самый любопытный
Участник клуба
Регистрация: 24.07.2012
Сообщений: 1,949
|
![]()
Взялось из Delphi. Это константа.
Безымянный.png |
![]() |
![]() |
![]() |
#4 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
![]()
Константа ПГСЧ подбирается так что-бы последовательность чисел не повторялась по кругу как можно дольше. Процесс подбора и альтернативные варианты описаны у Кнута в книге "Искусство программирования".
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
![]() |
![]() |
![]() |
#5 |
Участник клуба
Регистрация: 17.05.2011
Сообщений: 1,660
|
![]()
Тогда уж ГПСЧ (Генератор псевдослучайных чисел)
|
![]() |
![]() |
![]() |
#6 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,637
|
![]()
Статья опубликована на сайте клуба: Генератор псевдо-случайных чисел (ПСЧ). Как образуются случайные числа?
E-Mail: arigato.freelance@gmail.com
|
![]() |
![]() |
![]() |
#7 |
Я самый любопытный
Участник клуба
Регистрация: 24.07.2012
Сообщений: 1,949
|
![]()
Здесь тоже кто-то опубликовал: https://newscentral.exsees.com/item/...ff89bdaa5f51bf
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
генератор случайных чисел с++ | Сергей.Ш | Общие вопросы C/C++ | 18 | 25.07.2015 22:09 |
генератор случайных чисел | Nicolas_46 | Microsoft Office Excel | 9 | 03.12.2012 14:35 |
C++ как сделать что бы генератор случайных чисел генерировал, но выводил только одно число | RBIT | Помощь студентам | 3 | 15.10.2012 22:13 |
Генератор случайных чисел | remont_it, | C++ Builder | 1 | 12.05.2012 21:11 |
Генератор случайных чисел | psychopat | Общие вопросы Delphi | 11 | 18.02.2009 10:39 |