Самореференційна формула Тіппера (скопійовано з Вікіпедії)
Самореференційна формула Тіппера - це формула, визначена Джеффом Тюппером, яка, схопившись на два виміри в дуже конкретному місці в площині, може бути «запрограмована» для візуального відтворення самої формули. Він використовується в різних курсах з математики та інформатики як вправа в графічних формулах.
Де функція підлоги.
Нехай це k
буде наступний 543-значний номер:
960939379918958884971672962127852754715004339660129306651505519271702802395266424689642842174350718121267153782770623355993237280874144307891325963941337723487857735749823926629715517173716995165232890538221612403238855866184013235585136048828693337902491454229288667081096184496091705183454067827731551705405381627380967602565625016981482083418783163849115590225610003652351370343874461848378737238198224849863465033159410054974700593138339226497249461751545728366702369745461014655997933798537483143786841806593422227898388722980000748404719
Якщо один графік містить набір точок (x, y)
у 0 <= x < 106
та k <= y < k + 17
задовольняє наведену вище нерівність, то отриманий графік виглядає приблизно так (зауважте, що осі на цій ділянці були перевернуті, інакше малюнок виходить догори дном):
І що?
Цікавим у цій формулі є те, що за її допомогою можна графікувати будь-яке можливе чорно-біле зображення 106х17. Тепер насправді пошук за допомогою пошуку був би вкрай стомлюючим, тому існує спосіб визначити значення k, де відображається ваше зображення. Процес досить простий:
- Почніть з нижнього пікселя першого стовпця вашого зображення.
- Якщо піксель білий, до значення k додається 0. Якщо він чорний, додайте 1.
- Перемістіть стовпчик вгору, повторивши крок 2.
- Опинившись в кінці стовпця, перейдіть до наступного стовпчика і починайте знизу, дотримуючись того самого процесу.
- Після аналізу кожного пікселя перетворіть цей двійковий рядок у десятковий і помножте на 17, щоб отримати k-значення.
Яка моя робота?
Ваше завдання - створити програму, яка може приймати будь-яке зображення 106x17, і виводити її відповідне k-значення. Можна зробити наступні припущення:
- Усі зображення будуть рівно 106x17
- Усі зображення містять лише чорні (# 000000) або білі (#FFFFFF) пікселі, між ними нічого немає.
Існує також кілька правил:
- Вихід - це просто k-значення. Він повинен бути в належній базі, але може бути в будь-якому форматі.
- Зображення потрібно читати з PNG або PPM.
- Немає стандартних лазівки
Тестові зображення
[ ] має виробляти ~ 1,4946x10 542
[ ] має виробляти ~ 7.2355x10 159
[ ] має дати 2 1801 * 17
[ ] має виробляти (2 1802 -1) * 17
Ознайомтеся з цією історією щодо точного рішення
Це код-гольф , тому виграє найменше кількість байтів.
Корисні Посилання
quine
десь побачу це слово .