Лінійки Голомба - це набори невід’ємних цілих чисел, такі, що жодна дві пари цілих чисел у множині не знаходяться однаково між собою.
Наприклад, [0, 1, 4, 6]
лінійка Голомба, оскільки всі відстані між двома цілими числами в цьому наборі є унікальними:
0, 1 -> distance 1
0, 4 -> distance 4
0, 6 -> distance 6
1, 4 -> distance 3
1, 6 -> distance 5
4, 6 -> distance 2
Для простоти в цьому виклику (а оскільки переклад є тривіальним), ми нав'язуємо, що лінійка Голомба завжди містить число0
(що і попередній приклад).
Оскільки цей набір має довжину 4
, ми говоримо, що це Голомський володар порядку 4
. Найбільша відстань у цьому наборі (або елементі, оскільки 0
завжди є в наборі) 6
, тому ми говоримо, що це лінійка довжини Голомба 6
.
Ваше завдання
Знайти Голомб правитель порядку 50
до 100
(включно) , які мають як малі довжини , як ви можете знайти. Лінійки, які ви знайдете, не повинні бути оптимальними (див. Нижче).
Оптимальність
Лінійка порядку Голоба N
, як кажуть, є оптимальною, якщо немає іншого правителя Голомба порядку, N
який має меншу довжину.
Оптимальні лінійки Golomb відомі для замовлень менше 28 , хоча знайти та довести оптимальність складніше і складніше, оскільки порядок збільшується.
Таким чином, не очікується , що ви знайдете оптимальне Голомба лінійку для будь-якого з замовлень між 50
і 100
(і навіть менше очікується , що ви можете довести , що вони є оптимальними).
У виконанні вашої програми немає часових обмежень.
Базова лінія
У списку нижче наведено список довжини Голомб правителів від 50
до 100
(в порядку убування) оцінював за допомогою наївною стратегії пошуку (завдяки @PeterTaylor для цього списку):
[4850 5122 5242 5297 5750 5997 6373 6800 6924 7459 7546 7788 8219 8502 8729 8941 9881 10199 10586 10897 11288 11613 11875 12033 12930 13393 14046 14533 14900 15165 15687 15971 16618 17354 17931 18844 19070 19630 19669 20721 21947 22525 23290 23563 23880 24595 24767 25630 26036 26254 27218]
Сума всіх цих довжин є 734078
.
Оцінка балів
Ваша оцінка буде сумою довжин всіх ваших Голомб правителів між 50
і 100
, діленими на сумі довжин Голомб правителів між 50
і 100
в базовій лінії: 734078
.
Якщо ви не знайшли лінійку Golomb для конкретного порядку, ви повинні обчислити свій результат таким же чином, використовуючи вдвічі довжину в базовій лінії для цього конкретного порядку.
Відповідь з найменшим балом виграє.
У випадку зрівноваження порівнюються довжини найбільшого порядку, де дві відповіді відрізняються, і виграє найкоротший. Якщо обидві відповіді мають однакову тривалість для всіх замовлень, тоді перша відповідь буде виграна.
n
є n(n-1)/2
, оскільки стільки позитивних відмінностей існує. Тому найменший можливий бал у цьому виклику 147050/734078 > 0.2003193
.