|
99 / 52 / 27
Регистрация: 21.05.2012
Сообщений: 1,170
|
||||||||||||||||||||||||||||||||||||||
Генератор псевдо-случайных чисел, как хэш-функция28.05.2017, 21:29. Показов 13942. Ответов 50
Анализируя генератор псевдослучайных чисел
Я пришел к выводу, что (Учитывая что RAND_MAX = 32767) придумал сам, но может где то подобное писалось (просто я не искал)
Такое же число NewT может появиться только через ~ 48 дней Оно способно давать псевдослучайное число каждую ~ миллисекунду Такое же случайное число может получиться через ~32,768 секунд чем обычное
способно давать псевдослучайное число - каждую секунду Такое же случайное число может получиться через ~9 часов 6 минут
Кликните здесь для просмотра всего текста
<127> Count RAND(min, max) = [65536, 65536]
<255> Count RAND(min, max) = [131072, 131072] Press ENTER to continue... Получается что в некоторых точках функция равномерная (т.е. равномерно распределяется значения) что есть хорошо) в конечном результате, как видно получается R[i] = 131072 (каждое) Если кто уже делал подобное изучение генерации псевдо-случайных чисел, скинуть где прочитать) (читал, но что то подобных не находил) Добавлено через 6 минут Можно конечно использовать:
такое же равномерное распределения как и (сдвиг влево на 10)/(маска 0x03ff) Хотя, для каждого конкретного случая, лучше подбирать свой способ Добавлено через 9 минут Например если встряхивается только один раз, то логичнее писать:
Добавлено через 1 час 11 минут Теоретическое время выполнения вот такой проги (9 дней) нужно как нить ускорить хочу увидеть когда наблюдается равное распределение
Ускорил алгоритм:
Получается что равномерно распределить значения можно только в двух диапазонах: [0x00000000..0x7fffffff] и [0x00000000..0xffffffff] и и эти диапазоны он трансформирует в [0x0000..0x7fff] Добавлено через 3 минуты Получается подобным методом можно шифровать данные! Правда размер файла итоговый будет в два раза больше
0
|
||||||||||||||||||||||||||||||||||||||
| 28.05.2017, 21:29 | |
|
Ответы с готовыми решениями:
50
Генератор псевдо случайных чисел повторяет значения Псевдо генератор случаных чисел Как использовать генератор случайных чисел? |
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
||||
| 29.05.2017, 18:20 | ||||
|
0
|
||||
|
99 / 52 / 27
Регистрация: 21.05.2012
Сообщений: 1,170
|
||||||||||||
| 29.05.2017, 18:32 [ТС] | ||||||||||||
|
Короче убрав коменты, запустил проги сам
Вот ещё пару скриншотов, для того что бы ты понял Первый скриншот показывает при каких выполняется тождество X - любое число из первого скриншота
т.е. выполняется тождество (T - любое число со второго скрина):
0
|
||||||||||||
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
||
| 29.05.2017, 18:45 | ||
|
Раз ты рассматриваешь только один вызов rand, то пусть будет функция rand(x), где x - это семя. Смотри: у нас есть функция i=rand(x) что равносильно rand(x)-i=0. Ты зафиксировал i, а затем перебрал все x в некотором диапазоне. С помощью этого ты нашел некоторые корни вышеприведенного уравнения. А точнее нашел какую-то периодичность, с которой повторяются эти корни. Зачем? А хрен знает. С ГПСЧ это пока никак не связано.
0
|
||
|
99 / 52 / 27
Регистрация: 21.05.2012
Сообщений: 1,170
|
||||
| 29.05.2017, 18:52 [ТС] | ||||
|
Меру случайности использую за основу разность между двумя соседними семенами (не читал ни где, сам придумал) при которых первое генерируемое число одинаковое Добавлено через 2 минуты Добавлено через 3 минуты разве это нормально? или таким образом они сделали, что множества не пересекаются?
0
|
||||
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
|||
| 29.05.2017, 19:13 | |||
|
Самопридуманный генератор, самопридуманный метод оценки последовательности, с таким подходом можно выиграть что угодно у кого угодно со сколько угодно большим отрывом.
0
|
|||
|
99 / 52 / 27
Регистрация: 21.05.2012
Сообщений: 1,170
|
||||||||
| 30.05.2017, 14:19 [ТС] | ||||||||
|
Функция имеет период:
Иными словами, последний 31 бит семени ни на что не влияет Добавлено через 1 час 16 минут
0
|
||||||||
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
|
| 30.05.2017, 14:27 | |
|
eXPonent, только стоит учесть, что период конгруэнтного генератора, и период, который нашел ты - это совершенно разные вещи. При этом никто не обязует, что внутри функции rand будет именно конгруэнтный генератор, там может быть все, что душе угодно. Тем более в каждом компиляторе скорее всего какая-то своя реализация этой функции.
0
|
|
|
99 / 52 / 27
Регистрация: 21.05.2012
Сообщений: 1,170
|
||||||||||||
| 31.05.2017, 16:01 [ТС] | ||||||||||||
комментируют так:
Спасибо админам за спойлер, а то я что то не догадался ![]() Добавлено через 57 минут Мда уж ![]() Добавлено через 20 часов 31 минуту Этот код проверяет, есть ли одинаковая генерация
CMD
0xc21ba41; <0x7ffd, 0x7ffd, 010111110011000>
0xc603284; <0x7ffd, 0x7ffe, 000110001001111> 0x105049bc; <0x7fff, 0x7ffe, 001011100000100> 0x108ec1ff; <0x7fff, 0x7fff, 011001110111011> 0x1de3c81e; <0x7ffd, 0x7ffd, 001111111100011> 0x21d3df56; <0x7fff, 0x7ffd, 010101010011000> 0x22125799; <0x7fff, 0x7ffe, 000011101001111> 0x3395ed33; <0x7fff, 0x7ffd, 001101011100001> 0x33d46576; <0x7ffe, 0x7fff, 011011110010111> 0x4557fb10; <0x7ffe, 0x7ffd, 000101100101011> 0x45967353; <0x7ffe, 0x7fff, 010011111100000> 0x571a08ed; <0x7ffe, 0x7ffe, 011101101110100> 0x57588130; <0x7ffd, 0x7fff, 001100000101010> 0x68dc16ca; <0x7ffe, 0x7ffe, 010101110111100> 0x691a8f0d; <0x7ffd, 0x7fff, 000100001110011> 0x6d0aa645; <0x7fff, 0x7fff, 001001100101000> 0x7a5fac64; <0x7ffe, 0x7ffd, 011111101010000> 0x7a9e24a7; <0x7ffd, 0x7ffe, 001110000000111> 0x7eccb422; <0x7fff, 0x7fff, 000001101110011> 0x7fffffff <1, 0x7, 0x0> Dup.size = 0x0 Count[RAND[a][b]&3] correct ![]() THE END Добавлено через 30 минут Собственно: Dup.size = 0x0 означает, что такой комбинации нет
0
|
||||||||||||
|
99 / 52 / 27
Регистрация: 21.05.2012
Сообщений: 1,170
|
||
| 03.06.2017, 17:23 [ТС] | ||
|
На одном из форумов, нашел статью:
Случайное число, Вопрос чайника И там сказано:
0
|
||
|
99 / 52 / 27
Регистрация: 21.05.2012
Сообщений: 1,170
|
||
| 05.06.2017, 02:36 [ТС] | ||
|
Ребят, можете мне объяснить зачем в этой формуле:
0
|
||
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
||
| 05.06.2017, 09:44 | ||
|
Добавлено через 2 минуты Наверно последний бит показывает не самые лучшие статистические свойства, вот от него и избавились. А еще 32767 - это минимальное значение, требуемое стандартом от функции rand.
0
|
||
| 05.06.2017, 09:44 | |
|
Как сделать генератор случайных чисел?
Как создать генератор случайных чисел
Как создать генератор случайных чисел ? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|