|
Псевдослучайный генератор чисел, Нужен несложный алгоритм |
|
|
|
 |
Ответов
|
Nov 22 2008, 21:00
|

Участник

Группа: Участник
Сообщений: 61
Регистрация: 26-04-08
Из: BY/MN
Пользователь №: 37 111

|
Я попробовал сдвигать влево один байт, перед сдвигом беру 3-й и 6-й биты (с другими битами получается хуже), применяю к ним XOR и результат заношу после сдвига в 0-й бит байта. А в результат беру 5 младших битов. Перед запуском в этот регистр (байт) было занесено значение $55. После прогона алгоритма 3 раза (по 32 каждый) получилась такая диграмма распределения.
При увеличении числа прогонов диаграмма почти выравнивается. Да, пользователь будет иногда нажимать кнопку, а таймер работает с высокой частотой, поэтому его я попробую задействовать. Этот алгоритм я буду писать на ассемблере.
Сообщение отредактировал Juras Pr. - Nov 22 2008, 21:03
|
|
|
|
|
Nov 23 2008, 00:20
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Когда-то экспериментировал, только проверьте: длинну регистра нужно брать m = 2^n - 1, один бит крайний, второй может быть перед ним, либо самый первый, длиннна последовательности 2^m - 1, регистр инициализировать любым числом, отличным от нуля. Имхо, точно работает для 7, 15, 31 бит.
Сообщение отредактировал Огурцов - Nov 23 2008, 00:22
|
|
|
|
Сообщений в этой теме
Juras Pr. Псевдослучайный генератор чисел Nov 22 2008, 18:05 777777 Цитата(Juras Pr. @ Nov 22 2008, 21:05) По... Nov 22 2008, 18:45 Juras Pr. Спасибо, уже что-то есть. Идея понятна. А что если... Nov 22 2008, 18:54 777777 Цитата(Juras Pr. @ Nov 22 2008, 21:54) Сп... Nov 22 2008, 19:11 Tiny Я делал так:
В таймере, который выполняет свою фун... Nov 22 2008, 19:08 domowoj Можно сделать програмный сдвиговый регистр с обрат... Nov 22 2008, 19:13  SKov Цитата(Огурцов @ Nov 23 2008, 03:20) толь... Nov 23 2008, 12:05   Огурцов Цитата(SKov @ Nov 23 2008, 12:05) Длину р... Nov 23 2008, 13:22    SKov Цитата(Огурцов @ Nov 23 2008, 16:22) Коне... Nov 23 2008, 18:58 Juras Pr. Ближе всего мне 7-и битный вариант получается, буд... Nov 23 2008, 00:27 ae_ Цитата(Juras Pr. @ Nov 23 2008, 08:27) ..... Nov 23 2008, 13:30 777777 Цитата(ae_ @ Nov 23 2008, 16:30) Двух под... Nov 23 2008, 13:43  Огурцов Цитата(777777 @ Nov 23 2008, 13:43) В слу... Nov 23 2008, 16:31   Petka Цитата(Огурцов @ Nov 23 2008, 19:31) Да, ... Nov 23 2008, 16:54    Огурцов Цитата(Petka @ Nov 23 2008, 16:54) Заблуж... Nov 23 2008, 21:47     SKov Цитата(Огурцов @ Nov 24 2008, 00:47) Аха,... Nov 24 2008, 08:45 Juras Pr. Цитата(ae_ @ Nov 23 2008, 15:30) Если взя... Nov 23 2008, 13:43 spf Посмотри, может что-то из этого поможет
http://vrt... Nov 23 2008, 16:05 galjoen 2 Juras Pr.
А почему-бы просто не вычислять CRC от... Nov 23 2008, 18:16 ARV предлагаю чрезвычайно простой, но в определенных с... Nov 23 2008, 17:18 Juras Pr. Цитата(ARV @ Nov 23 2008, 19:18) ...испол... Nov 23 2008, 18:09 andran25 Вычислял когда-то. Вот тут можно взять:
http://an... Nov 23 2008, 20:12 Juras Pr. andran25,
спасибо, а также всем, кто подсказывал ... Nov 23 2008, 22:24
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|