Verwenden Sie eine in Gleitkommazahlen codierte Nachschlagetabelle
Ein etwas fortgeschrittener Tipp:
Kleine Nachschlagetabellen sind nützlich für Code-Golf: Sehr oft benötigen wir eine Funktion, die beispielsweise 0 zu 1, 1 zu 2, 2 zu 1 und alles andere auf 0 abbildet. TI-BASIC-Arrays sind jedoch nicht geeignet Zu diesem Zweck: Zum einen sind sie einseitig und zum anderen kann ein Wert erst extrahiert werden, wenn das Array in Ans
oder eine Listenvariable gespeichert ist.
In meiner Antwort hier speichere ich eine kleine Nachschlagetabelle in einer magischen Konstante in Basis 11. Listen Sie einfach die Werte auf, die Sie verwenden möchten.
{0,-1,5,-1,-1,2,9,-1,8,6}
in eine nützliche Form umwandeln
{1,0,6,0,0,3,10,0,9,7}
schreibe in deine gewünschte Basis (Basis 11)
.106003A097
und zu Basis 10 konvertieren
-1+int(11fPart(11^Ans.0954191904
Der kürzeste Array-Ansatz ist 8 Byte länger!
{1,0,6,0,0,3,10,0,9,7}-1:Ans(X+1
TI-BASIC speichert nur Gleitkommazahlen mit 14 Dezimalstellen, sodass Sie bis zu 44ish-Bits, aber nur 14 Dezimalstellen speichern können.
Diese Technik kann häufig weiter verbessert werden, indem eine Brute-Force-Suche verwendet wird, um eine magische Konstante anstelle einer Base-N-Codierung zu finden. Ich bin immer noch dabei, die obige Antwort zu finden, aber der milde TI-BASIC-Golfer Weregoose hat diese Methode verwendet , um die Unterschiede zwischen den Zahlen 6, 4, 2, 4, 2, 4, 6, 2
im Wiki / Forum TI-BASIC mit 30 ( dh einer wiederholten Liste von ) zu ermitteln Entwickler mit diesem Snippet:
2+2iPart(3fPart(576e^(fPart(I/8
Die magische Konstante 576 wurde mit Mathematica gefunden. Wenn Sie jedoch keine Kopie besitzen, verwenden Sie ein Skript in Ihrer Lieblingssprache.