![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,863
|
![]()
Необходимо оценить, за сколько шагов программы возможно подобрать 10 -значное число методом тыка (рандомом).
Для начала реализовал код для 9-значного числа: Код:
Теперь переходим к 10-значному числу, код меняется не сильно: Код:
Так в чем же причина зацикливания? E-Mail: arigato.freelance@gmail.com
|
![]() |
![]() |
![]() |
#2 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]() Цитата:
Ответ лежит в недрах Random'а: Randomize генерирует не случайное число на основе процессорного такта gettickcount либо на основе QueryPerformanceCounter в RandSeed. Сам же Random имеет вид: Код:
В вашем случае это технически и через 24 часа не возможно будет. К слову, в Math есть более интересные варианты Random'a. Например RandomRange. Ещё бы попробовал в каждой итерации сбор статистики максимального приближения к желаемому результату(в %) в течении X времени. Последний раз редактировалось Человек_Борща; 29.04.2013 в 03:16. |
|
![]() |
![]() |
![]() |
#3 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,863
|
![]()
Я тоже примерно так думал, что дело в реализации генератора псевдослучайных чисел. Но ведь что интересно, R1 := Random (100000) есть и в первом варианте, он ведь прокатывает. Причем не важно, какое именно число мы хотим подобрать. Была идея, что комбинация 1234567890 вообще никогда не выпадает, но и любая другая комбинация из 10 цифр (2 по 5) не выпадает, а комбинации из 9 цифр (5 и 4) выпадают. Загадка!
E-Mail: arigato.freelance@gmail.com
|
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
Постоянные вещи так или иначе соприкасаются.
Не думаю что это загадочно. Перегрузите стандартный рандом своим, и делайте сдвиг вправо на случайное кол-во бит, а константу $08088405 так же сделайте случайной. Это наверняка уменьшит шанс выпадения Цитата:
|
|
![]() |
![]() |
![]() |
#5 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,863
|
![]()
Надо так полагать, что особенность реализации функции Random не позволяет выпасть 2 раза подряд заданной комбинации из 5 цифр. Некоторые комбинации все же выпадают, например:
A1 = 12345; A2 = 87142; И много других (их легко найти). Но, получается, что не все сочетания A1 и A2 могут совпасть, если они по 5 знаков, то есть такие значения, которые никогда не выпадают одно за другим. E-Mail: arigato.freelance@gmail.com
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
Я предположил, что это связано с константой и постоянным сдвигом на 32 бита.
Попробуйте написать свой аналог Random'а. |
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]() Цитата:
А в случае одного ДПСЧ почему Вы считаете, что последовательное выпадения двух фиксированных чисел в принципе возможно? |
|
![]() |
![]() |
![]() |
#8 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,863
|
![]()
Уже определил, что невозможно. Большинство комбинаций из двух чисел по 5 цифр не выпадут, некоторые выпадают. Комбинации из числа 5 цифр и числа 4 цифры у меня всегда выпадали (не факт, что нет такой, которая никогда не выпадет).
E-Mail: arigato.freelance@gmail.com
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]()
ДПСЧ имитирует лишь некоторые (наиболее востребованные на практике) свойства ДСЧ. В остальном - ведет себя принципиально иначе.
В Вашем случае - как раз этот второй случай. По сути в ДПСЧ есть период. Причем за каждым определенным числом следует вполне определенное (единственное!) другое. Отсутствие однозначности (за одним и тем же числом могут следовать разные) происходит лишь потому, что мы берем не сами случайные числа, а частное или остаток от деления. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Удаление информации из файлов .mb: почему не происходит? | Ruschel | БД в Delphi | 4 | 25.02.2010 09:22 |
Почему получается зацикливание?? | _Studentka_ | Общие вопросы по Java, Java SE, Kotlin | 1 | 09.12.2009 02:13 |
Почему происходит сброс переменной password? | NSvirus | PHP | 2 | 10.11.2009 16:07 |
Form Region-почему так происходит | Nester | Общие вопросы Delphi | 3 | 14.09.2009 21:16 |
Почему так происходит? | Zeraim | Общие вопросы Delphi | 1 | 05.05.2008 14:10 |