Резюме
З урахуванням введенням k, знайти розбиття чисел 1на nв kвільних від сум , підмножин найбільшого nви можете в протягом 10 хвилин.
Передумови: номери Шура
Набір Aбез суми, якщо його сума-сума A + A = { x + y | x, y in A}не має спільних з ним елементів.
На кожне додатне ціле число kіснує найбільше ціле число, S(k)таке, що набір {1, 2, ..., S(k)}можна розділити на kбезмножинні підмножини. Це число називається k- м номером Шура (OEIS A045652 ).
Наприклад, S(2) = 4. Ми можемо розділити {1, 2, 3, 4}як {1, 4}, {2, 3}, і це унікальний розділ на два безмножинні підмножини, але тепер ми не можемо додати 5до жодної частини.
Виклик
Напишіть детерміновану програму, яка робить наступне:
- Візьміть натуральне число
kяк вхідне - Напишіть поточну мітку Unix для stdout
- Виходи послідовності розбиттів
1доnInto ,kвільні від сум підмножин для збільшенняn, після кожної послідовності з поточної тимчасової міткою Unix.
Переможцем стане програма, яка надрукує розділ для найбільшого nпротягом 10 хвилин на моєму комп’ютері при даному введенні 5. Зв'язки будуть порушені в найшвидший час, щоб знайти розділ для найбільшого n, усередненого за три запуски: тому висновок повинен включати часові позначки.
Важливі деталі:
- У мене є Ubuntu Precision, тому якщо ваша мова не підтримується, я не зможу її оцінити.
- У мене є процесор Intel Core2 Quad Quad, тому якщо ви хочете використовувати багатопотоковість, немає сенсу використовувати більше 4 потоків.
- Якщо ви хочете, щоб я використовував якісь конкретні прапори компілятора чи реалізацію, документуйте це чітко у своїй відповіді.
- Ви не маєте особливого обліку свого коду для обробки даних
5. - Від вас не вимагається виводити кожне покращення, яке ви знайдете. Наприклад, для введення
2ви можете вивести тільки розділn = 4. Однак, якщо ви нічого не виведете за перші 10 хвилин, то я зарахую це якn = 0.
n=59та сортування за найбільшою кількістю дозволених чисел, меншою, ніжnextNдаєn=64. Сортування за довжиною списку заборонених чисел (яке може мати повтори) дуже швидко призводить до елегантногоn=30малюнка.