|
Псевдослучайный генератор чисел, Нужен несложный алгоритм |
|
|
|
 |
Ответов
|
Nov 23 2008, 13:30
|
Участник
  
Группа: Свой
Сообщений: 462
Регистрация: 2-04-07
Из: Иркутск
Пользователь №: 26 695

|
Цитата(Juras Pr. @ Nov 23 2008, 08:27)  ... Важно, чтобы числа не повторялись 2 раза вподряд. Можно сделать простой генератор ПСП по формуле x=(a*x+b)mod c Вот пример для a=5, b=77, c=256 Код .equ rnd=R15 .equ tmp=R16
mov tmp, rnd lsl rnd lsl rnd add rnd, tmp ldi tmp, 77 add rnd, tmp mov tmp, rnd Так как нужно число до 32, то оставляем только 5 бит Код andi tmp, 0b00011111 Двух подряд одинаковых чисел точно не будет, но длина последовательности будет только 32. Начиная с 33 позиции серия будет повторятся. Если взять старшие пять бит: Код lsr tmp lsr tmp lsr tmp То последовательность будет более случайная (длина серии 256), но будут встречаться подряд идущие одинаковые числа.
|
|
|
|
Сообщений в этой теме
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 Juras Pr. Я попробовал сдвигать влево один байт, перед сдвиг... Nov 22 2008, 21:00 Огурцов Когда-то экспериментировал, только проверьте: длин... Nov 23 2008, 00:20  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    Огурцов Цитата(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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|