Найдовший день у році - ось на що витрачати зайвий час ...
Огляд
Зауважте, що це не конкурс на популярність, а не виклик для графічного виведення - вам потрібно лише вивести рядок з 65 536 нулів і одиниць. Фрагмент стека внизу питання відображатиме це як чорно-біле зображення розміром 256 на 256 та обчислює ваш офіційний бал. Потім ви можете зберегти зображення та завантажити його у свою відповідь поряд із кодом (оскільки рядок виводу не вміститься у відповідь на обмін стеком 30 000 символів).
Оцінка балів
Оцінка зображення - це сума балів окремих його пікселів. Оцінка окремого пікселя - це сума підскорень для кожного з неортогональних , пікселів простих відстаней, які мають протилежне забарвлення пікселю. Піднижка для кожного такого пікселя - це місце, 1/p
де p
просте відстань.
У контексті цього питання терміни мають такі визначення:
Неортогональний: піксель не ортогональний тому, що набраний піксель, якщо він не знаходиться в одному рядку і не знаходиться в тому ж стовпці.
Основна відстань: піксель знаходиться на простій відстані від набраного пікселя, якщо вони розділені на евклідову відстань, яка є точно простим числом. Зокрема, відстань - це мінімальна відстань, виміряна тороїдально - верхній лівий піксель - це відстань
sqrt(2)
від правого нижнього пікселя (усі чотири краї обгортання).Протилежний колір: піксель має протилежний колір, ніж набраний піксель, якщо їх значення дорівнюють 1. Тобто, перший дорівнює 0, а другий - 1, або перший - 1, а другий - 0.
Фрагмент стека включає приклад коду, який показує, як оцінити зображення, але не включає оптимізації чи ефективного підходу, просто виправити код, щоб підсумкове зображення можна було робити послідовно.
Якщо щось у коді невірно, будь ласка, повідомте мене або в коментарях, або в чаті .
JavaScript не обов'язково може бути найкращою мовою для відповіді на цей конкретний виклик. Зауважте, що код фрагменту свідомо не дає підказки щодо швидшого наближення. Буде запроваджено лише ефективність, що вже було продемонстровано у відповіді.
Візуалізація
Оцінка пікселів
Для інтуїтивного відчуття розподілу пікселів підрахунку тут (у фіолетовому кольорі) є неортогональні прості пікселі для пікселів (128, 128) зображення 256 на 256:
Випадкове зображення
Це випадково генероване зображення з прикладу відповіді Python 3. Він має оцінку 138 267,64 і дає вам щось перемогти.
Вхідні дані
Код не потребує введення.
Вихідні дані
Код повинен виводити рядок 65,536 нулів і одиниць, що представляють пікселі чорно-білого зображення 256 на 256. Цифри повинні бути суцільним рядком, без роздільників. Ви можете скопіювати та скопіювати, якщо ви виведете у файл, але це залежить від вас.
Ваш код може також виводити іншу інформацію, яка вам здається корисною, доки рядок можна скопіювати та вставити у фрагмент стека. Наприклад, ви можете побажати виводити найкращий ще рядок у файл та найкращий показник STDOUT через регулярні проміжки часу, що дозволяє користувачеві обирати, коли зупинити пошук.
Фрагмент стека
Як вказувало Sp3000 , для обчислення балів у фрагмента знадобилося 10 хвилин, що є занадто повільним, навіть для навмисно неефективного виконання еталонного завдання. Я редагував у запропонованому Sp3000 поліпшенні попереднього обчислення зсуву пікселів для підрахунку балів, і зараз потрібно кілька секунд, щоб обчислити бал.
Якщо ви використовуєте вихідний чи код іншої відповіді в якості вихідної точки для власного коду, будь ласка, не забудьте вказати кредит та посилання на підтримку відповіді. У відповідях на це запитання не потрібно зараховувати приклад відповіді чи код у питанні.