Для зображення N на N знайдіть набір пікселів таким чином, що відстань розділення немає більше одного разу. Тобто, якщо два пікселі розділені на відстань d , то вони є єдиними двома пікселями, які розділені рівно d (використовуючи відстань Евкліда ). Зауважте, що d не повинно бути цілим числом.
Завдання полягає в тому, щоб знайти такий більший набір, ніж будь-хто інший.
Специфікація
Введення даних не потрібно - для цього конкурсу N буде встановлено на рівні 619.
(Оскільки люди продовжують запитувати - немає нічого особливого щодо числа 619. Вибрано його досить великим, щоб зробити оптимальне рішення малоймовірним, і достатньо малим, щоб зображення N за N відображалося без того, щоб Stack Exchange автоматично зменшував його. Зображення можуть бути відображався в повному розмірі до 630 до 630, і я вирішив піти з найбільшою праймером, яка не перевищує цього.)
Вихід - це розділений пробілом список цілих чисел.
Кожне ціле число у висновку представляє один з пікселів, пронумерований англійською мовою читання від 0. Наприклад, для N = 3, місця розташування пронумеруються в цьому порядку:
0 1 2
3 4 5
6 7 8
Якщо ви хочете, ви можете виводити інформацію про прогрес під час запуску, доки підсумковий результат балів буде легко доступний. Ви можете вивести STDOUT або файл або що-небудь найлегше для вставки у суджений фрагмент стека нижче.
Приклад
N = 3
Обрані координати:
(0,0)
(1,0)
(2,1)
Вихід:
0 1 5
Перемога
Оцінка - кількість локацій у висновку. З тих обгрунтованих відповідей, які мають найвищий бал, виграє найраніший, хто опублікував результати з цим балом.
Ваш код не повинен бути детермінованим. Ви можете розмістити свої найкращі результати.
Суміжні області для досліджень
(Спасибі Абулафії за посилання на Голомб)
Хоча жодна з цих ситуацій не збігається з цією проблемою, вони обидва схожі за концепцією і можуть дати вам ідеї, як підходити до цього:
- Лінійка Голомба : 1-мірний корпус.
- Прямокутник Голомба : двовимірне розширення лінійки Голамба. Варіант випадку NxN (квадрат), відомий як масив Костаса , вирішено для всіх N.
Зауважте, що точки, необхідні для цього питання, не пред'являються тими ж вимогами, що і прямокутник Голомба. Прямокутник Голомба простягається від одновимірного випадку, вимагаючи, щоб вектор від кожної точки один до одного був унікальним. Це означає, що можуть бути дві точки, розділені на відстань 2 горизонтально, а також дві точки, розділені на відстань 2 по вертикалі.
Для цього питання скалярна відстань повинна бути унікальною, тому не може бути як горизонтального, так і вертикального поділу 2. Кожне рішення цього питання буде прямокутником Голомба, але не кожен прямокутник Голомба буде вагомим рішенням це питання.
Верхні межі
Денніс з користю зазначив у чаті, що 487 є верхньою межею рахунку, і дав доказ:
Згідно з моїм кодом CJam (
619,2m*{2f#:+}%_&,
), існує 118800 унікальних чисел, які можна записати як суму квадратів двох цілих чисел між 0 і 618 (обидва включно). n пікселів вимагає n (n-1) / 2 унікальних відстаней між собою. Для n = 488, це дає 118828.
Таким чином, існує 118 800 можливих різної довжини між усіма потенційними пікселями на зображенні, а розміщення 488 чорних пікселів призведе до довжини 118 828, що робить неможливим їх унікальність.
Мені було б дуже цікаво почути, якщо хтось має доказ нижньої верхньої межі, ніж цей.
Таблиця лідерів
(Найкраща відповідь кожного користувача)