Генератор случайных чисел - это просто
Только что рассуждая о судьбах мира меня посетила простая идея, как можно создать генератор случайных чисел. Сразу оговорюсь, что алгоритм генератора случайных чисел абстрактный, а реализация приведена для языка web-программирования PHP. Кому надо, сможет повторить все на любом другом языке.
Конечно, можно воспользоваться стандартной функцией rand. Но мне было интересно создать генератор чисел самому. Основное условие - это генерация при каждом запуске программы именно уникального числа, без так называемой псевдослучайной последовательности. Я считаю, что избавиться от псевдослучайных чисел можно используя в качестве основы для генерации числового ряда время в микросекундах.
Выдавать на выходе генератор должен число в формате 0.xxx
Для генерации случайных счисел я воспользоватлся следующим алгоритмом:
function random()
{
return ((int)substr(eregi_replace("[^0-9] ","",md5(getmicrotime().time())),0,3))/1000;
}
function getmicrotime()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec (float)$sec);
}
Результат работы программы можно увидеть на странице с примером генератора случайных чисел.
Как видно, я использовал расчет md5 от полученого уникального числа микросекунд и времени в секундах с последующим выделением первой тройки цифр и составления из них случайного числа с точностью до тысячных.
Функцию random еще можно доработать, что бы она выдавала числа заданной точности после запятой и не выдавала одинаковых результатов при запусе в одну и ту же микросекунду. Но для бытовых нужд такой генератор случайных чисел более чем достаточен.
Автор: Alexus
Комментариев: 2 » | Просмотров: 10447 | Рекомендаций у статьи 8. рекомендовать
Постоянная ссылка на статью: http://alexusblog.com/post/the-random-number-generator-is-simply.html
Следующая статья: Новая рубрика, посвященная AdSense
Предыдущая статья: Google Picasa - программа для организации фотографий
Все статьи в разделе оглавление