... zumindest für eine Definition von "Selbstmodifikation".
Die Aufgabe
In dieser Herausforderung ist Ihre Aufgabe , drei Saiten zu schreiben A, Bund Cdass die folgenden Eigenschaften erfüllen.
Die Zeichenfolge
Bhat eine Länge von mindestens 1.Für jeden
n ≥ 0ist 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.ABnCACABCABBCABBBCFü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.ABmCABnCABm*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 AundC , wobei eine niedrigere Punktzahl besser ist. Beachten Sie, dass während Bnicht auf die Partitur angerechnet wird, es von Aund Cwie 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, Bund Cin Ihrer Antwort in irgendeiner Weise, und ermutigt Ihre Lösung zu erklären.