Einführung
Pareidolia : Aus dem Altgriechischen; παρα ( para , "nebeneinander") + εἴδωλον ( eídōlon , "Bild"). Die Tendenz, einen vagen Reiz als etwas zu interpretieren, das dem Betrachter bekannt ist, z. B. Markierungen auf dem Mars als Kanäle zu interpretieren, Formen in Wolken zu sehen oder versteckte Botschaften in der Musik zu hören. Quelle: Wiktionary .
Beispielsweise:
Paralogia : Aus dem Altgriechischen; παρα ( para , "nebeneinander") + λόγος ( lógos , "Rede, Rede, Wort, ..."). Die Tendenz, Wörter in willkürlichen Folgen von Zeichen wahrzunehmen, beispielsweise in Code-Golf-Programmen. Quelle: Ja, das habe ich erfunden (eigentlich bedeutet das Wort etwas anderes erfunden , wie von @Martin hervorgehoben).
Beispielsweise:
df4$/H)hEy_^p2\
jtK2$)look|x1$
Herausforderung
Schreiben Sie ein Programm, das eine positive Ganzzahl als Eingabe, eine Ganzzahl als Ausgabe und ein englisches Wort als Teil des Codes verwendet. Die Eingabe-Ausgabe-Beziehung muss einer Ganzzahlsequenz entsprechen, die in OEIS zu finden ist .
Regeln
- Nur Wörter aus dieser Liste erlaubt. Dies ist zwar willkürlich, aber es ist wichtig, dass wir uns alle darüber einig sind, welche Wörter akzeptiert werden. und in dieser Hinsicht ist diese Liste wahrscheinlich so gut wie jede andere.
- Wörter müssen durch Verketten von mindestens zwei Funktionsnamen oder Anweisungen gebildet werden. Wenn Ihre Sprache zum Beispiel eine Funktion namens
correlation
hat, kann sie nicht so verwendet werden, wie sie ist. Die Verkettung muss streng sein: Zwischen den Wortteilen dürfen keine weiteren Symbole stehen. Zum Beispielbro~ken
würde nicht als ein Wort zählen. - Der Fall ist unwichtig: beides
valid
undvaLiD
ist akzeptabel. - Wörter innerhalb von Strings zählen nicht. Die Buchstaben, aus denen das Wort besteht, müssen Funktionen oder Aussagen in der Sprache der Wahl sein, dh etwas, das tatsächlich ausgeführt wird . Zum Beispiel würde der folgende Code nicht zulässig:
'deoxyribonucleic'~1
, wo'...'
ein String ist ,~
verwirft den vorherigen Inhalt und1
gerade druckt Nummer1
. - Jeder Buchstabe des Wortes sollte notwendig sein . Das bedeutet, dass das Entfernen eines einzelnen Buchstabens aus dem Wort die Eingabe-Ausgabe-Beziehung ändern sollte. Dies beinhaltet die Ausgabe einer anderen Sequenz oder die Ausgabe von anderen Dingen oder die Ausgabe ohne Ausgabe oder die Verursachung eines Fehlers.
- Jede positive Ganzzahl sollte als Eingabe zulässig sein und eine Ausgabe erzeugen, mit Ausnahme von Datentyp- oder Speicherbeschränkungen.
- Die Ausgänge an Eingängen entsprechen
1
,2
,3
, ... sollten zu einer Sequenz in erscheinen entsprechen OEIS . Es sollte keine andere Ausgabe erzeugt werden. Nur eine ganze Zahl, möglicherweise mit nachgestelltem oder führendem Leerzeichen. - Ein- und Ausgabe können Funktionsargumente oder stdin / stdout sein.
Ergebnis
Die Punktzahl wird als Gesamtcodelänge minus der doppelten Länge des längsten Wortes in Zeichen berechnet. Oder gleichbedeutend mit der Anzahl der Zeichen, die nicht zum längsten Wort gehören, abzüglich der Länge des längsten Wortes.
Die niedrigste Punktzahl gewinnt.
Beispiele
Stellen Sie sich eine imaginäre Postfix-Sprache mit folgenden Funktionen vor:: Geben Sie c
eine Zahl ein; At
: Quadrat berechnen; $
: addiere 1.
cAt
ein gültiges Programm wäre (die Reihenfolge ihrer Ausgabe entspricht 1
, 4
, 9
, ..., das ist A000290 ), und es wäre Score -3.
cAt$
wäre auch gültig ist (Sequenz 2
, 5
, 10
, ..., das ist A002522 ), mit Score -2.
c$At
wäre nicht gültig, da das einzige Wort hier "At" ist und von einer einzelnen Funktion oder Anweisung erzeugt wird.
Antworten:
CJam, -20
Gibt das n-te Element in der Sequenz A010861 aus .
Das Entfernen eines Zeichens aus dem Wort führt zu einer völlig anderen Sequenz A010860 . Es gibt eine interessante Beziehung zwischen den beiden Sequenzen: Bei jedem Index n
A010860(n)
ist coprime toA010861(n)
! Es muss einen tiefen mathematischen Grund dafür geben.Probieren Sie es hier aus .
quelle
CJam, -5
A010051 : Druckt
0
für zusammengesetzte Zahlen und1
für Primzahlen.Es dauerte ewig, bis ich etwas gefunden hatte, das ein paar Punkte erzielte und beim Entfernen eines Buchstabens kaputt ging. Wenn Sie etwas anderes als "
m
Wirft" entfernen, wird ein Fehler ausgegebenm
das Programm wird es zur Identitätsfunktion.Probieren Sie es online aus.
quelle
05AB1E ,
-4-11Code, druckt A010869 (Konstante 30):
Vorheriger Code:
Erläuterung:
Druckt die A010879 - Sequenz.
quelle
MATL , -6
Probieren Sie es online!
Produziert Sequenz
1
,2
,3
, ... ( A000027 )Wenn Sie einen Buchstaben entfernen, wird die Ausgabe geändert, oder das Programm erwartet eine zweite Eingabe, die nicht vorhanden ist, oder es wird ein Fehler ausgegeben.
Erläuterung
Das Programm atmet einfach eine Zahl ein und nach einigem Hin und Her atmet es unverändert aus.
quelle
Pyth, 1
Erläuterung?
1, 2, 3, 4, 5 ...
Sequenz A000027
Unterschwellige Botschaften? Noch nie.
Probieren Sie es hier aus.
quelle
Japt, -6
Ausgänge A004453 : Summe von N und 12 (N XOR 12). Testen Sie es online!
Hinweis: Die OEIS-Sequenz ist 0-indiziert, sodass eine Eingabe von 0 zum ersten Element führt.
Wie es funktioniert
quelle
Y
erzeugt das Entfernen des die gleiche Ausgabe? (es sei denn, ich mache etwas falsch)Headsecks , Score -4
Dies ist dem Brainfuck-Programm zugeordnet
,+-.
, das ein einzelnes Zeichen liest und es druckt und A000030 berechnet . Wenn Sie ein Zeichen entfernen, wird es offensichtlich zerstört.Es gibt auch
marshal
(,-<>+-.
), was effektiv ist,-.
, aber das entspricht keiner OEIS-Sequenz.quelle
x86-Maschinencode, Punktzahl -4
Hexdump des Codes:
Oder in Codepage 437 :
Assembler-Code:
Eine Funktion, die ihrem Argument eine 1 hinzufügt .
Entfernen
A
wird es zu einer Identitätsfunktion. Wenn Sie ein anderes Byte entfernen, wird der Stapel durcheinander gebracht, was entweder zu einem Absturz oder zu einem schlechten Verhalten der aufrufenden Funktion führt.Ich bin mir ziemlich sicher, dass es möglich ist, die Punktzahl zu verbessern, aber es kann von der Interpretation der Anforderungen abhängen. Wenn Sie zum Beispiel das Wort verwenden, erhalten Sie
SQUEAMIShness
ein Programm, das dasebp
Register vergrößert und dann verkleinert . Verursacht das Entfernen einer dieser Komponenten einen Absturz? Ein einfachstes Testprogramm verwendet dasebp
Register nicht, also vielleicht auch nicht ... Um diesen Zweifel zu vermeiden, habe ich ein kürzeres Wort verwendet.quelle
Ruby, Punktzahl 3
Dies berechnet die Identitätssequenz A000027 . Die Ausgabe ist von Leerzeichen umgeben. Ich hoffe das ist okay.
quelle
Math ++, Punktzahl -2
Implementiert A000004 .
quelle