Управляющее резюме
С учетом вводом 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 в стандартный вывод
- Выводит последовательность разбиений
1tonв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шаблону.