Random без соответствующей функции.

программирование программы обучение Образование делфи

Задали дурацкую задачу. Написать цикл рандома без использования встроенной функции.
Подскажите пожалуйста, можно ли на паскале(или Delphi) эмитировать функцию random(), и если да, то как это сделать? В инете не нашел(
Ответы:
Можно бесконечно извлекать числа после запятой в том же пи, или при любом делении. Нативно бесконечный float вряд ли где-то извлекается, но можно делить "столбиком".
Вот ещё решения этой задачи на си http://www.cyberforum.ru/cpp-beginners/thread83277.html
>В инете не нашел
См. [1] и далее по ссылкам.
иммитировать конечно можно... ее ведь написали.... мне в универе задавали сделать генератор псевдослучайных чисел по определенному закону...
random-это равномерный что ли(в общем шанс выпадения чисел одинаков)... поищи в инете такие уже есть готовые
По-настоящему случайные числа можно получить, беря каждый раз текущее количество секунд из часов.
Оператор типа timer или что-то подобное.
Если нужно в диапазоне от 0 до 1, то дели их на 60.
самый простой способ генерить всевдослучайные числа - линейный конгруэнтный метод
пусть у нас есть некое число X0. чтобы получить следующее число, мы считаем его по такой формуле:
Xi+1 = (Xi * a + b) mod c, где a, b, c - некие коэффициенты. их можно брать с потолка, а можно и вполне конкретные значения, чтобы период такой последовательности был как можно больше, например, хорошие -
a = 1664525, b = 1013904223, c = 2^32, а значение X0 можно брать, например, как текущее время или еще что-то
то есть что-то такое


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.