Utiliser une table de recherche codée en nombres à virgule flottante
Un conseil légèrement avancé:
Les petites tables de recherche sont utiles pour le golf de code: c'est très souvent que nous avons besoin d'une fonction qui mappe, par exemple, 0 à 1, 1 à 2, 2 à 1 et tout le reste à 0. Cependant, les tableaux TI-BASIC ne sont pas adaptés à cet effet: pour une chose, ils sont basés sur une, et pour une autre, une valeur ne peut pas être extraite jusqu'à ce que le tableau soit stocké dans Ans
ou une variable de liste.
Dans ma réponse ici , je stocke une petite table de recherche dans une constante magique en base 11. Énumérez simplement les valeurs que vous souhaitez utiliser,
{0,-1,5,-1,-1,2,9,-1,8,6}
convertir en une forme utile
{1,0,6,0,0,3,10,0,9,7}
écrivez dans votre base souhaitée (base 11)
.106003A097
et convertir en base 10
-1+int(11fPart(11^Ans.0954191904
L'approche du tableau le plus court est de 8 octets de plus!
{1,0,6,0,0,3,10,0,9,7}-1:Ans(X+1
TI-BASIC ne stocke que les flottants à 14 chiffres décimaux, vous pouvez donc stocker jusqu'à 44 bits mais seulement 14 chiffres décimaux.
Cette technique peut souvent être encore améliorée en utilisant la recherche par force brute pour trouver une constante magique plutôt que le codage base-N. Je suis toujours en train de jouer la réponse ci-dessus, mais le golfeur lengendaire TI-BASIC Weregoose a utilisé cette méthode pour générer les différences entre les nombres coprimes avec 30 (c'est-à-dire une liste répétitive de 6, 4, 2, 4, 2, 4, 6, 2
) sur le wiki / forum TI-BASIC Développeur avec cet extrait:
2+2iPart(3fPart(576e^(fPart(I/8
La constante magique 576 a été trouvée en utilisant Mathematica, mais si vous ne possédez pas de copie, utilisez un script dans votre langue préférée.