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ę.
Odpowiedzi:
CJam, -20
Wysyła n-ty element w sekwencji A010861 .
Usunięcie znaku ze słowa powoduje zupełnie inną sekwencję A010860 . Istnieje dość interesująca zależność między dwiema sekwencjami: przy każdym indeksie n
A010860(n)
jest chronione prawem autorskimA010861(n)
! Musi istnieć jakiś głęboki matematyczny powód.Wypróbuj tutaj .
źródło
CJam, -5
A010051 : drukuje
0
liczby zespolone i1
liczby pierwsze.Odwiecznie zajęło mi znalezienie czegoś, co zdobyłoby kilka punktów i złamałoby się przy usuwaniu jakiegokolwiek listu. Usunięcie czegokolwiek oprócz
m
zgłasza błąd, a usunięciem
zamienia program w funkcję tożsamości.Wypróbuj online.
źródło
05AB1E ,
-4-11Kod, drukuje A010869 (stała 30):
Poprzedni kod:
Wyjaśnienie:
Drukuje sekwencję A010879 .
źródło
MATL , −6
Wypróbuj online!
Produkuje sekwencja
1
,2
,3
, ... ( A000027 )Usunięcie dowolnej litery zmienia dane wyjściowe lub pozostawia program oczekujący drugiego wejścia, które nie istnieje, lub powoduje błąd.
Wyjaśnienie
Program po prostu wdycha pewną liczbę i po kilku zabawach wydycha ją bez zmian.
źródło
Pyth, 1
Wyjaśnienie?
1, 2, 3, 4, 5 ...
Sekwencja A000027
Wiadomości podprogowe? Nigdy.
Wypróbuj tutaj.
źródło
Japt, -6
Wyjścia A004453 : nimsum N i 12 (N XOR 12).Przetestuj online!
Uwaga: sekwencja OEIS ma indeks 0, więc wprowadzenie 0 spowoduje powstanie pierwszego elementu.
Jak to działa
źródło
Y
produkuje ten sam wynik? (chyba że robię coś złego)Zagłówki , wynik -4
Spowoduje to mapowanie do programu Brainfuck
,+-.
, który odczytuje pojedynczy znak i drukuje go, obliczając A000030 . Usunięcie jakiejkolwiek postaci z pewnością ją złamie.Istnieje również
marshal
(,-<>+-.
), który jest skuteczny,-.
, ale nie odpowiada żadnej sekwencji OEIS.źródło
kod maszynowy x86, wynik -4
Hexdump kodu:
Lub na stronie kodowej 437 :
Kod zestawu:
Funkcja, która dodaje 1 do argumentu .
Usuwanie
A
zamienia go w funkcję tożsamości. Usunięcie wszystkich innych bajtów zakłóca stos, powodując awarię lub nieprawidłowe działanie funkcji wywołującej.Jestem prawie pewien, że można poprawić wynik, ale może to zależeć od interpretacji wymagań. Na przykład użycie słowa
SQUEAMIShness
daje program, który zwiększa, a następnie zmniejszaebp
rejestr. Czy usunięcie któregokolwiek z nich powoduje awarię? Najprostszy program testowy nie używaebp
rejestru, więc może nie ... Aby uniknąć tej wątpliwości, użyłem krótszego słowa.źródło
Ruby, ocena 3
Oblicza to sekwencję tożsamości A000027 . Dane wyjściowe są otoczone białymi znakami; Mam nadzieję, że to w porządku.
źródło
Matematyka ++, wynik -2
Implementuje A000004 .
źródło