Wprowadzenie
Pareidolia : From Ancient Greek; παρα ( para , „concurrent, alongside”) + εἴδωλον ( eídōlon , „image”). Tendencja do interpretowania niejasnego bodźca jako czegoś znanego obserwatorowi, takiego jak interpretowanie znaków na Marsie jako kanałów, widzenie kształtów w chmurach lub słyszenie ukrytych wiadomości w muzyce. Źródło: Wikisłownik .
Na przykład:
Paralogia : od starożytnej Grecji; παρα ( para , „concurrent, alongside”) + λόγος ( lógos , „mowa, oracja, słowo, ...”). Tendencja do postrzegania słów w dowolnych sekwencjach znaków, na przykład w programach golfowych. Źródło: tak, wymyśliłem to (tak naprawdę słowo to oznacza coś innego , jak wskazał @Martin).
Na przykład:
df4$/H)hEy_^p2\
jtK2$)look|x1$
Wyzwanie
Napisz program, który przyjmuje dodatnią liczbę całkowitą jako dane wejściowe, tworzy liczbę całkowitą jako dane wyjściowe i zawiera angielskie słowo jako część kodu. Relacja wejścia-wyjścia musi odpowiadać sekwencji liczb całkowitych, którą można znaleźć w OEIS .
Zasady
- Dozwolone są tylko słowa z tej listy . Jest to wprawdzie arbitralne, ale istotne jest, abyśmy wszyscy uzgodnili, które słowa są akceptowane; i pod tym względem lista ta jest prawdopodobnie równie dobra jak każda inna.
- Słowa muszą zostać utworzone przez połączenie co najmniej dwóch nazw funkcji lub instrukcji. Jeśli na przykład Twój język ma funkcję o nazwie,
correlation
nie można jej używać w takiej postaci, w jakiej jest. Łączenie musi być ścisłe: między częściami słowa nie powinny pojawiać się żadne inne symbole. Na przykładbro~ken
nie liczy się jako słowo. - Sprawa ma znaczenia: zarówno
valid
ivaLiD
są dopuszczalne. - Słowa w łańcuchach nie liczą się. Litery, które składają się na to słowo, muszą być funkcjami lub instrukcjami w wybranym języku, czyli w rzeczywistości wykonywanym . Na przykład następujący kod nie byłby dozwolony:
'deoxyribonucleic'~1
gdzie, gdzie'...'
jest ciąg znaków,~
odrzuca poprzednią zawartość i1
po prostu drukuje liczbę1
. - Każda litera słowa powinna być niezbędna . Oznacza to, że usunięcie jednej litery ze słowa powinno zmienić relację wejścia-wyjścia. Obejmuje to wyprowadzenie innej sekwencji lub wyprowadzenie jakiejkolwiek innej rzeczy, lub nie wytworzenie żadnego wyniku lub spowodowanie błędu.
- Każda dodatnia liczba całkowita powinna być akceptowalna jako dane wejściowe i powinna generować dane wyjściowe, z wyjątkiem ograniczeń typu danych lub ograniczeń pamięci.
- Wyjścia do wejść odpowiadających im
1
,2
,3
... powinna odpowiadać sekwencji znajdującej się w OEIS . Nie należy wytwarzać żadnej innej produkcji; tylko liczba całkowita, prawdopodobnie z końcowymi lub wiodącymi białymi spacjami. - Dane wejściowe i wyjściowe mogą być argumentami funkcyjnymi lub stdin / stdout.
Wynik
Wynik jest obliczany jako całkowita długość kodu minus dwukrotność najdłuższego słowa w znakach. Lub równoważnie, liczba niezbyt długich znaków minus długość najdłuższego słowa.
Najniższy wynik wygrywa.
Przykłady
Rozważ wyimaginowany język Postfiksa, który ma następujące funkcje c
:: wprowadź liczbę; At
: obliczyć kwadrat; $
: dodaj 1.
cAt
będzie poprawny programu (odpowiada jego wyjścia do sekwencji 1
, 4
, 9
, ..., które jest A000290 ), i że ma wynik -3.
cAt$
byłoby również zastosowanie (sekwencja 2
, 5
, 10
, ..., które jest A002522 ), o średniej -2.
c$At
nie byłby prawidłowy, ponieważ jedynym tutaj słowem jest „At” i jest ono tworzone przez pojedynczą funkcję lub instrukcję.