... zumindest für eine Definition von "Selbstmodifikation".
Die Aufgabe
In dieser Herausforderung ist Ihre Aufgabe , drei Saiten zu schreiben A
, B
und C
dass die folgenden Eigenschaften erfüllen.
Die Zeichenfolge
B
hat eine Länge von mindestens 1.Für jeden
n ≥ 0
ist der String ein gültiges Programm (dh ein voll lauffähiges Programm oder eine Funktionsdefinition) in der Programmiersprache Ihrer Wahl. Die hochgestellte Index Bezeichnet Wiederholung, so dass diese Mittel die Saiten , , , usw. Jedes Programm nimmt eine Zeichenkette als Eingabe und gibt einen String als Ausgabe.ABnC
AC
ABC
ABBC
ABBBC
Für alle
m, n ≥ 0
, wenn das Programm mit Eingabe ausgeführt wird , gibt es . Für Eingaben, die nicht in dieser Form vorliegen, kann das Programm alles tun, einschließlich Absturz.ABmC
ABnC
ABm*n+1C
Einige Beispiele im Format program(input) -> output
:
AC(AC) -> ABC
ABC(AC) -> ABC
ABBBBBC(AC) -> ABC
AC(ABC) -> ABC
AC(ABBBBC) -> ABC
ABC(ABC) -> ABBC
ABBC(ABC) -> ABBBC
ABBBBC(ABBBC) -> ABBBBBBBBBBBBBC
ABBBC(ABBBBBBC) -> ABBBBBBBBBBBBBBBBBBBC
Regeln und Wertung
Ihre Punktzahl ist die Gesamtlänge von A
undC
, wobei eine niedrigere Punktzahl besser ist. Beachten Sie, dass während B
nicht auf die Partitur angerechnet wird, es von A
und C
wie im ersten Beispiel produziert werden muss .
Standardlücken sind nicht zulässig. Die Programme dürfen weder direkt noch indirekt auf ihren eigenen Quellcode zugreifen (es sei denn, sie erhalten ihn als Eingabe). Sie sind verpflichtet , die Saiten zu identifizieren A
, B
und C
in Ihrer Antwort in irgendeiner Weise, und ermutigt Ihre Lösung zu erklären.