Прежде всего спасибо за столько удобный и шустрый 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 и еще несколько страниц так и не нашел ответа на свой вопрос. Вам знакомы еще какие-либо ресурсы об этом?
читайте внимательнее
основная страница, раздел Комментарии(обычно там больше и, что важнее, более практичная информация, то есть примеры и то что важно):
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 нету сухой информации как точное описании функции или авторство какой то идеи - остаётся повеситься))