wrestТут вопрос в том, чьи попугаи лучше подходят для оценки эффективности решения исходной задачи.
Вот же был вопрос:
Если мы говорим про эффективность использования ресурсов, то в знаменателе - затраты, собственно, потраченные ресурсы.
А в числителе что?
В знаменателе единицы времени, как это традиционно принято для скорости. Например, часы.
А в числителе, очевидно, количество найденных искомых цепочек.
А если ни одной не найдено? Тогда мат. ожидание количества искомых цепочек.
А как убедиться что это мат. ожидание посчитано правильно? Вопрос непростой и решать его надо не торопясь.
Вполне можно пока зайти с другой стороны — ответить на вопрос об эффективности для более коротких, более простых в поиске цепочек. То бишь о той самой скорости, которая указана у меня в последнем столбце.
Вот этим я пока и занимался, спустился не только до D(96, 13), но и до D(96, 6). Вроде более короткие смотреть уже не надо. Затем предлагаю постепенно подниматься — считать D(96, 7), D(96, 8) и так далее, смотреть на различные параметры, коих набралось уже немало. Я далеко не все указал.
Вот здесь показано как ставятся подпорки, то бишь простые в первой степени:
Код:
0-0-2-1-3-2! 0-0-2-1-3-2! 0-0-2-1-3-2! 0-0-2-1-3-2! 0-0-2-1-3-2! 0-0-2-1-3-2!
+3-3 +3-3 +3-3 +3-3 +3-3 +3-3
+1-1 +2-2 +3-3 +4-4 +4-4 +4-4
+1-1 +1-1
+1-1
____________ ____________ ____________ ____________ ____________ ____________
0-0-3-3-0-2! 0-0-4-2-0-2! 0-0-5-1-0-2! 0-0-6-0-0-2! 0-1-5-0-0-2! 1-0-5-0-0-2!
Как видно, исходная серия в данных случах одна и та же. Квадраты простых тоже расставляются и, чтобы не забывать об этом, справа указано количество их расстановок — 2!
А вот сводная статистика по эффективности для этих 6 серий:
Код:
Серия 2^ Комплектов Счёт Найдено Время Скорость
посчитано от 0 до D(96,6) секунд D(96,6)/час
0-0-3-3-0-2! 12 3! * 1! 6 1e21 662 1002 2378
0-0-3-3-0-2! 13 3! * 1! 6 1e21 662 946 2519 best
0-0-3-3-0-2! 14 3! * 1! 6 1e21 662 984 2422
0-0-4-2-0-2! 13 3! * 2! 12 1e22 1084 887 4400
0-0-4-2-0-2! 14 3! * 2! 12 1e22 1084 871 4480 best
0-0-4-2-0-2! 15 3! * 2! 12 1e22 1084 945 4130
0-0-5-1-0-2! 13 3! * 3! 6 1e23 407 188 7794
0-0-5-1-0-2! 14 3! * 3! 6 1e23 407 175 8373 best
0-0-5-1-0-2! 15 3! * 3! 6 1e23 407 183 8007
0-0-6-0-0-2! 14 3! * 3! 12 1e24 473 134 12707
0-0-6-0-0-2! 15 3! * 3! 12 1e24 473 122 13957 best
0-0-6-0-0-2! 16 3! * 3! 12 1e24 473 134 12707
0-1-5-0-0-2! 14 3!*4!*1 24 1e25 292 58 18124
0-1-5-0-0-2! 15 3!*4!*1 24 1e25 292 57 18442 best
0-1-5-0-0-2! 16 3!*4!*1 24 1e25 292 59 17817
1-0-5-0-0-2! 14 3!*4!*1*1 48 1e27 496 128 13950
1-0-5-0-0-2! 15 3!*4!*1*1 48 1e27 496 124 14400 best
1-0-5-0-0-2! 16 3!*4!*1*1 48 1e27 496 133 13426
96 делителей очень интересны. Здесь хорошо видно, что при переходе от одной серии к другой приходится увеличивать интервал поиска. Но, не смотря на это, скорость всё равно росла. За исключением последнего перехода. Обычно увеличивал на порядок, но вот в самом конце, для надёжности результатов измерения скорости, пока увеличил на два порядка.
Возможно, самый последний вариант стоит ещё покопать. Подъём на один порядок внимательнее посмотреть. На всякий случай. Это та самая, так называемая серия с одним простым. Уже писал что для нахождения цепочек по ней надо изменять программу, добавляя почти в самое начало ещё две фильтрации.
Да, не упомянул. Это всё был счёт именно в одном потоке.
wrest, у вас другое мнение о том как надо считать эффективность? Как понимаю, Вы считаете количество проверенных цепочек, причём по одному единтсвенному паттерну. Но что это говорит об успехе в исходном поиске? Вот я пока нашёл 292 цепочки за 57 секунд. Сколько цепочек и за какое время найдёте вы?