реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Псевдослучайный генератор чисел, Нужен несложный алгоритм
Огурцов
сообщение Nov 23 2008, 16:31
Сообщение #16


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(777777 @ Nov 23 2008, 13:43) *
В случайной последовательности идущие подряд одинаковые числа не только могут, но и должны встречаться с вероятностью, вычисляемой теоретически.

Да, но для _псевдо_случайной последовательности это будет означать, что ряд закончился и далее начнется сначала (или откуда-то со середины).
Go to the top of the page
 
+Quote Post
Petka
сообщение Nov 23 2008, 16:54
Сообщение #17


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(Огурцов @ Nov 23 2008, 19:31) *
Да, но для _псевдо_случайной последовательности это будет означать, что ряд закончился и далее начнется сначала (или откуда-то со середины).

Заблуждение.
Обычно генератор псевдослучайной последовательности у себя в потрохах имеет static переменную, про которую ваше утверждение верно (если значение этой переменной со временем повторится, то и значения на выходе генератора тоже начнут повторяться). Однако опять-таки обычно на выход генератора эта переменная выводится не "как есть" а через некоторый "перемалыватель". В итоге генератор ПСП может выдавать одинаковые подряд идущие значения, и это вовсе не обозначает что "последовательность зациклилась". Могу порекомендовать воспользоваться гуглом. Например весьма толково описано тут: http://algolist.manual.ru/maths/generator/
Go to the top of the page
 
+Quote Post
ARV
сообщение Nov 23 2008, 17:18
Сообщение #18


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



предлагаю чрезвычайно простой, но в определенных случаях вполне подходящий метод.
при помощи Excel строится таблица случайных чисел нужной длины (т.е. период повторения последовательности). Эта таблица загоняется в память на свободное место. Если свободного места много - можно сделать таблицу с огромным периодом повторения ПСП. ну, далее понятно: LPM r0, Z+ - и все дела. если программа занимает бОльшую часть памяти - то можно в качестве псевдослучайных чисел использовать собственно коды программы, заполнив эксельным "мусором" только незанятое место (чтобы не было больших участков 0xFF или чего-то одинакового).


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
Juras Pr.
сообщение Nov 23 2008, 18:09
Сообщение #19


Участник
*

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



Цитата(ARV @ Nov 23 2008, 19:18) *
...использовать собственно коды программы, заполнив эксельным "мусором" только незанятое место (чтобы не было больших участков 0xFF или чего-то одинакового).

И как бонус, более затрудненное дизассемблирование smile.gif. Табличный метод в данном случае возможно подойдёт, надо лишь ограничить область адресов сверху, так как там много нулей.
Go to the top of the page
 
+Quote Post
galjoen
сообщение Nov 23 2008, 18:16
Сообщение #20


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



2 Juras Pr.
А почему-бы просто не вычислять CRC от своего-же програмного кода побайтно (или побитно)? От CRC только 5 бит брать, младших или старших - без разницы. А в начале в CRC-аккумулятор случайное число, полученное от кнопки, нажимаемой пользователем, заносить. А наличие в коде FF-ов подряд ничего не испортит. Для CRC32 100 FF-ов ерунда.
P.S. То, что вы предлагаете, очень на вычисление CRC похоже. Только производящий многочлен у вас не самый лучший...
Go to the top of the page
 
+Quote Post
SKov
сообщение Nov 23 2008, 18:58
Сообщение #21


Знающий
****

Группа: Свой
Сообщений: 812
Регистрация: 22-01-05
Из: SPb
Пользователь №: 2 119



Цитата(Огурцов @ Nov 23 2008, 16:22) *
Конечно, при условии, что есть возможность физически проверить всю последовательность.

Никто физически ничего не проверяет. Есть такая наука, называется теория конечных полей. Она занимается теоремами и доказательствами и не использует "физических" проверок wink.gif
Есть таблицы примитивных элементов, которые уже "проверили". Если не ошибаюсь,
в книжке Лиддла и Нидеррайтера есть таблицы, которые можно использовать для создания регистров сдвига длиной до 160, которые будут гарантированно генерировать последовательность бит с периодом 2^160. Если будет свободное время, попробуйте проверить этот период "физически." smile.gif
Кажется, это число сильно больше, чем число атомов в видимой части Вселенной smile.gif
Go to the top of the page
 
+Quote Post
andran25
сообщение Nov 23 2008, 20:12
Сообщение #22


Участник
*

Группа: Новичок
Сообщений: 15
Регистрация: 23-11-08
Пользователь №: 41 896



Вычислял когда-то. Вот тут можно взять:

http://andyplekhanov.narod.ru/science/galua.htm
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Nov 23 2008, 21:47
Сообщение #23


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(Petka @ Nov 23 2008, 16:54) *
Заблуждение.

Если абстрактно, то да. Но я опять же про этот самый регистр с парой отводов на xor, а для него однозначно не заблуждение.


Цитата(SKov @ Nov 23 2008, 18:58) *
Никто физически ничего не проверяет. Есть такая наука, называется теория конечных полей.

Аха, еще есть такая наука математика. Только вот далеко не все в ней сильны...как папа у Васи. Большинству проще и быстрее, до определенных границ, прогнать алгоритм брутфорсом нежели пытаться въехать в несколько специализированных книжек на конкретную тему.
Go to the top of the page
 
+Quote Post
Juras Pr.
сообщение Nov 23 2008, 22:24
Сообщение #24


Участник
*

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



andran25,
спасибо, а также всем, кто подсказывал и помогал. smile.gif
Go to the top of the page
 
+Quote Post
SKov
сообщение Nov 24 2008, 08:45
Сообщение #25


Знающий
****

Группа: Свой
Сообщений: 812
Регистрация: 22-01-05
Из: SPb
Пользователь №: 2 119



Цитата(Огурцов @ Nov 24 2008, 00:47) *
Аха, еще есть такая наука математика. Только вот далеко не все в ней сильны...как папа у Васи.

Так для этого как раз и существуют такие форумы как этот.
Каждый силен в своей области. А вместе мы составляем коллективный разум очень широкого диапазона знаний. Большую теорему Ферма вам тут, наверное, не раскажут, как доказывать,
а что-нибудь чуть по-проще - легко.
Спрашивайте - всегда помогут. smile.gif
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 14:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.01406 секунд с 7
ELECTRONIX ©2004-2016