Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Алгоритмы генерации псевдослучайных чисел


Автор: absoluteclock 8.11.2015, 09:47
Уже не первый год интересуюсь вопросами простых (но эффективных) алгоритмов генерации псевдослучайных чисел, которые возможно применять в "легких" пользовательских приложениях. В итоге разработал три простеньких собственных алгоритма (дошел до них самостоятельно, но не утверждаю, что я первый, возможно эти алгоритмы или их аналоги известны).  

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

В публикации есть примеры на Microsoft® Visual Basic® .NET.

Ссылка: https://yadi.sk/i/G4SaPZRQkJUXW (пытался прикрепить файл к теме - но  безрезультатно)

Сильно прошу не пинать smile 

P.S.: если такой формат понравится, то могу выложить модификацию алгоритма Беллмана–Форда по нахождению кротчайшего пути...

Автор: Romikgy 8.11.2015, 11:28
ИМХО функции cos и log и тем более возведение в степень - это не сильно простые функции ... и алгоритмы получаются, довольно тяжелые в реализации... было интересно посмотреть сравнительные характеристики данных с ваших алгоритмов и тех которые давно известны и используются... что бы понять насколько ваш алгоритм лучше или хуже...

Автор: absoluteclock 8.11.2015, 13:13
Согласен с вами, хотя особый сравнительный анализ я не проводил с существующими алгоритмами, но на плотность энтропии итогового результата проверял в свое время (поищу данные, если сохранил).

 Дело в том, что конечно, эти алгоритмы не претендуют на коммерческий проект или что-то такое, однако на их примере я стремился показать, как можно при помощи несложных телодвижения получить "хорошее" псевдослучайное число не прибегая к встроенным в среду разработки механизмам.

Автор: Romikgy 8.11.2015, 14:04
Цитата(absoluteclock @  8.11.2015,  12:13 Найти цитируемый пост)
 "хорошее" псевдослучайное число

вот вопрос и заключается , насколько оно "хорошее" чем существующие?

Автор: absoluteclock 8.11.2015, 14:24
Ну в таком случае нужно определится, что мы будем понимать под существующим числом)

А так, для всех алгоритмов я привел исходники на VB.NET. Любой желающий может по ним создать простенькую утилиту и исследовать результат. К примеру, мне самому будет очень интересно узнать результаты первого алгоритма (выборка по системному таймеру). В свое время я испытывал его на разных машинах при разном уровне загрузки системы различными процессами и получал очень любопытные результаты.

Цель же моей публикации и вообще данной работы не заключалась в том, чтобы создать алгоритм генерации лучше существующих, а показать на примере как можно реализовать механизм получения псевдослучайного числа, кроме существующих способов, но в тоже время простыми в реализации средствами (пока опустим тему последнего алгоритма с логарифмами).

Если кому здесь будет интересно, можем провести исследовательскую работу, допустим пока по первому алгоритму?

Автор: Sajtran 9.11.2015, 12:20
в модуле HEP проекта geant4 лаборатории CERN есть хорошие реализации алгоритмов генерации случайных чисел
http://geant4.cern.ch/support/download.shtml
правда для криптографии они не очень, они для задач моделирования преназначены

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Algoritmy-generatsii-psevdosluchaynykh-chisel-id563ef024ae201592388b4567#findElement_E7045_56406545ae201591118b461f_0

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)