Непонятно.
Ну это в среднем. Я немного накосячил с оценкой худшего случая. Прочитайте вот это, пожалуйста. Сейчас напишу алгоритм, который его считает, а он, как я проверил, показывает возрастание количества белых столбиков с ростом
.
Пусть
все рассматриваемые простые числа. Будем оценивать худший случай для каждой строки, начиная с нижней.
Для этого допустим, что мы на строке
. Строки под ней образуют подтаблицу, последовательность столбцов которой повторяется раз в
. Посчитаем количество таких промежутков:
.
Далее посчитаем, сколько белых столбцов на каждом промежутке (худший случай). Мы знаем общее количество белых столбцов на
шаге. Оно равно
.
Давайте будем считать так. Для шагов
не будем округлять полученное значение, т.к. там слишком много промежутков, а соответственно на каждом мало столбцов. Таким образом целевое значение равно:
для
и
для остальных. Это не повлияет на оценку.
Далее заметим, что мы можем "закрыть" максимум столбцов на
ом шаге, если на первом и втором промежутке закроем по два столбца (это самый худший случай). Если мы на первом и втором промежутке закрываем по два столбца, то следующие два столбца мы можем "закрыть" только через
интервала (ну понятно, потому что последовательность столбцов в каждом интервале одинкова, а меняется только значения
ой строки, а они повторяются раз в
интервалов). Поэтому легко составляем формулу для оценки оставшихся белых столбцов на
ом шаге:
На самом первом шаге
Вот код:
https://pastebin.com/4sfXdDBXЕсли запустить, то с ростом
растет и количество белых столбцов.
У меня получилась вот такая оценка этой функции:
https://www.desmos.com/calculator/0kn1nikdkf .Я здесь начал сразу с шага, где
, чтобы избавиться от проверок на отрицательность, а также вместо пола и потолка вычитал и прибавлял единицу соответственно. Здесь
сумма ряда обратных праймориалов, а
- примерная доля белых столбцов для
. Вроде получилось очень даже ничего.
Как вам?