Kayan noktalı sayılarla kodlanmış bir arama tablosu kullanın
Biraz gelişmiş bir ipucu:
Küçük arama tabloları kod golfü için kullanışlıdır: sık sık, örneğin 0 - 1, 1 - 2, 2 - 1 ve 0 için her şeyi eşleyen bir işleve ihtiyacımız vardır. Ancak, TI-BASIC dizileri uygun değildir Bunun için: Birincisi, bir tabanlıdır ve bir diğeri için dizi depolanana Ans
veya bir liste değişkenine kadar bir değer elde edilemez .
Cevabım burada , ben Basitçe kullanmak istediğiniz değerleri listelemek baz 11. sihirli sabit küçük bir arama tablosu saklamak,
{0,-1,5,-1,-1,2,9,-1,8,6}
yararlı bir forma dönüştür
{1,0,6,0,0,3,10,0,9,7}
İstediğiniz tabana yazın (taban 11)
.106003A097
ve 10 tabanına dönüştürün
-1+int(11fPart(11^Ans.0954191904
En kısa dizi yaklaşımı 8 bayttır!
{1,0,6,0,0,3,10,0,9,7}-1:Ans(X+1
TI-BASIC sadece yüzer sayıyı 14 ondalık basamağa kadar kaydeder, bu yüzden en fazla 44 bit, sadece 14 tane basamak basabilir.
Bu teknik, baz-N kodlaması yerine sihirli bir sabit bulmak için kaba kuvvet arama kullanılarak daha da geliştirilebilir. Hala yukarıdaki cevabı golf etme sürecindeyim ama yinelemeci TI-BASIC golfçü Weregoose , wiki / forum TI- BASIC’de 30 (yani, yinelenen bir liste ) olan sayıların arasındaki farkları üretmek için bu yöntemi kullandı.6, 4, 2, 4, 2, 4, 6, 2
Bu kod parçasını içeren geliştirici:
2+2iPart(3fPart(576e^(fPart(I/8
576 sihirli sabiti Mathematica kullanılarak bulundu, ancak bir kopyasına sahip değilseniz en sevdiğiniz dilde bir komut dosyası kullanın.