Генератор случайных чисел в Pascal ABC.NET

Добрый день!

Прежде всего спасибо за столько удобный и шустрый IDE, для человека, который профессионально не занимается программирование это просто находка. К сожалению, слишком мало доступной информации об элементах синтаксиса, но я надеюсь со временем справка увеличится. Из-за недостатка информации и возник вопрос

Как работает функция

function Random: real; Возвращает случайное вещественное в диапазоне [0…1)

С появление новых версии все, что добавилось в описании это появление таких функций, как Random2 и Random3.

Но, вот, что интересует: 1 Это псевдослучайные числа, судя по наличию процедуры Randomize(seed: integer)? 2 Для простого моделирования нормально распределенных величин, нам нужен датчик с диапазоном [0…1], как пользователи преодолевают это затруднение? Просто умалчивают о потери строгости? 3 Согласно п.1 это псевдослучайные числа, какой метод используется для их получения? Линейный конгруэнтный метод? Каков период получаемой последовательности?

Если у кого-то есть какая-либо информация по поводу механизмов работы данной функции, пожалуйста, поделитесь.

На самом деле это формальные строгости. Максимальное значение с плавающей точкой, возвращаемое этим ДСЧ, равно 0.99999999999999978. Это с машинной точностью единица без младшего бита в двоичной мантиссе.

Резюме: Вы даже не заметите разницы между [0;1) и [0;1]

Естественно. Все, что синтезирует ЭВМ на основе математических выкладок, псевдослучайное. Истинно случайные числа были, когда источником служил тепловой шум от электронных ламп в ЭВМ первого поколения.

Всё что реализует паскаль это более удобное представление(хоть и часто с потерей функционала) общих функций для .Net(то есть и C++ и т.п.), а их можно найти на msdn, надо просто посмотреть в реализацию функций паскаля, в данном случае используется тип System.Random - вот вам и справка, и описание каждого метода с максимальной подробностью. Так же можно использовать его на прямую, там больше методов но надо будет отдельно разобраться.

Я слышал все. Сейчас, кстати, чаще чем когда-либо используются генераторы гсч совместно с гпсч. Ну а про строгость вы правы, я так и сделал - забил, но не умолчал и спокоен не буду.

К сожалению, прочитав simple, double, next и еще несколько страниц так и не нашел ответа на свой вопрос. Вам знакомы еще какие-либо ресурсы об этом?

читайте внимательнее :wink: основная страница, раздел Комментарии(обычно там больше и, что важнее, более практичная информация, то есть примеры и то что важно):

The current implementation of the Random class is based on a modified version of Donald E. Knuth’s subtractive random number generator algorithm. For more information, see D. E. Knuth.The Art of Computer Programming, Volume 2: Seminumerical Algorithms. Addison-Wesley, Reading, MA, third edition, 1997.

А теперь забивайте в википедию или куда хотите.

И ещё, если на msdn нету сухой информации как точное описании функции или авторство какой то идеи - остаётся повеситься))

*имеется в виду то что связано с Windows и .Net