Управляющее резюме
С учетом вводом k
, найти разбиение чисел 1
на n
в k
свободных от сумм , подмножеств крупнейшего n
вы можете в течение 10 минут.
Фон: числа Шура
Множество A
является свободным от суммы, если его самосумма A + A = { x + y | x, y in A}
не имеет общих с ним элементов.
Для каждого положительного целого числа k
существует наибольшее целое число S(k)
, так что набор {1, 2, ..., S(k)}
может быть разбит на k
подмножества без суммы. Это число называется к - й номер Щур (OEIS A045652 ).
Например, S(2) = 4
. Мы можем разделить {1, 2, 3, 4}
как {1, 4}, {2, 3}
, и это уникальное разделение на два подмножества без суммы, но мы не можем теперь добавить ни 5
к одной из частей.
Вызов
Напишите детерминированную программу, которая выполняет следующее:
- Возьмите положительное целое число в
k
качестве входных данных - Записать текущую метку времени Unix в стандартный вывод
- Выводит последовательность разбиений
1
ton
вk
подмножества без суммы для увеличенияn
, следуя каждой последовательности с текущей временной меткой Unix.
Победителем станет программа, которая распечатает самый большой раздел в n
течение 10 минут на моем компьютере при наличии ввода 5
. Связи будут разорваны в самое быстрое время, чтобы найти раздел для самого большого n
, усредненного за три запуска: поэтому выходные данные должны включать временные метки.
Важные детали:
- У меня Ubuntu Precise, поэтому, если ваш язык не поддерживается, я не смогу его оценить.
- У меня есть процессор Intel Core2 Quad, поэтому, если вы хотите использовать многопоточность, нет смысла использовать более 4 потоков.
- Если вы хотите, чтобы я использовал какие-либо конкретные флаги или реализацию компилятора, запишите это в своем ответе.
- Вы не должны использовать специальный код для обработки ввода
5
. - Вы не обязаны выводить каждое улучшение, которое найдете. Например, для ввода
2
вы можете вывести только разделn = 4
. Тем не менее, если вы ничего не выводите в первые 10 минут, я оцениваю это какn = 0
.
n=59
, а сортировка по наибольшему количеству разрешенных чисел меньше, чемnextN
даетn=64
. Сортировка по длине списка запрещенных номеров (который может иметь повторы) очень быстро приводит к элегантномуn=30
шаблону.