|
Псевдослучайный генератор чисел, Нужен несложный алгоритм |
|
|
|
 |
Ответов
|
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), но будут встречаться подряд идущие одинаковые числа.
|
|
|
|
|
Nov 23 2008, 21:47
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Цитата(Petka @ Nov 23 2008, 16:54)  Заблуждение. Если абстрактно, то да. Но я опять же про этот самый регистр с парой отводов на xor, а для него однозначно не заблуждение. Цитата(SKov @ Nov 23 2008, 18:58)  Никто физически ничего не проверяет. Есть такая наука, называется теория конечных полей. Аха, еще есть такая наука математика. Только вот далеко не все в ней сильны...как папа у Васи. Большинству проще и быстрее, до определенных границ, прогнать алгоритм брутфорсом нежели пытаться въехать в несколько специализированных книжек на конкретную тему.
|
|
|
|
|
Nov 24 2008, 08:45
|
Знающий
   
Группа: Свой
Сообщений: 812
Регистрация: 22-01-05
Из: SPb
Пользователь №: 2 119

|
Цитата(Огурцов @ Nov 24 2008, 00:47)  Аха, еще есть такая наука математика. Только вот далеко не все в ней сильны...как папа у Васи. Так для этого как раз и существуют такие форумы как этот. Каждый силен в своей области. А вместе мы составляем коллективный разум очень широкого диапазона знаний. Большую теорему Ферма вам тут, наверное, не раскажут, как доказывать, а что-нибудь чуть по-проще - легко. Спрашивайте - всегда помогут.
|
|
|
|
Сообщений в этой теме
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 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
|
|
|