| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Алгоритмы > Алгоритмы генерации псевдослучайных чисел |
| Автор: absoluteclock 8.11.2015, 09:47 |
| Уже не первый год интересуюсь вопросами простых (но эффективных) алгоритмов генерации псевдослучайных чисел, которые возможно применять в "легких" пользовательских приложениях. В итоге разработал три простеньких собственных алгоритма (дошел до них самостоятельно, но не утверждаю, что я первый, возможно эти алгоритмы или их аналоги известны). На их основе я создал ранее несколько программ из области криптографии данных или генерации паролей. Также эти алгоритмы применялись в нескольких криптографических продуктах, совместной работы... Конечно, речь не идет о коммерческих приложениях, но как бы там ни было, решил поделится с народом своими алгоритмами, возможно кому-то пригодится. В публикации есть примеры на Microsoft® Visual Basic® .NET. Ссылка: https://yadi.sk/i/G4SaPZRQkJUXW (пытался прикрепить файл к теме - но безрезультатно) Сильно прошу не пинать 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, 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 |