Use una tabla de búsqueda codificada en números de punto flotante
Un consejo un poco avanzado:
Las tablas de búsqueda pequeñas son útiles para el golf de código: muy a menudo necesitamos una función que asigne, por ejemplo, 0 a 1, 1 a 2, 2 a 1, y todo lo demás a 0. Sin embargo, los arreglos TI-BASIC no son adecuados para este propósito: por un lado, están basados en uno, y por otro, un valor no se puede extraer hasta que la matriz se almacene en Ans una variable de lista o no.
En mi respuesta aquí , guardo una pequeña tabla de búsqueda en una constante mágica en la base 11. Simplemente enumere los valores que desea usar,
{0,-1,5,-1,-1,2,9,-1,8,6}
convertir a una forma útil
{1,0,6,0,0,3,10,0,9,7}
escriba en su base deseada (base 11)
.106003A097
y convertir a base 10
-1+int(11fPart(11^Ans.0954191904
¡El enfoque de matriz más corto es 8 bytes más largo!
{1,0,6,0,0,3,10,0,9,7}-1:Ans(X+1
TI-BASIC solo almacena flotantes a 14 dígitos decimales, por lo que puede almacenar hasta 44 bits pero solo 14 dígitos decimales.
Esta técnica a menudo se puede mejorar aún más mediante el uso de la búsqueda de fuerza bruta para encontrar una constante mágica en lugar de una codificación de base-N. Todavía estoy en el proceso de jugar golf la respuesta anterior, pero el legendario golfista TI-BASIC Weregoose usó este método para generar las diferencias entre los números coprimos con 30 (es decir, una lista repetida de 6, 4, 2, 4, 2, 4, 6, 2) en el wiki / foro TI-BASIC Desarrollador con este fragmento:
2+2iPart(3fPart(576e^(fPart(I/8
La constante mágica 576 se encontró usando Mathematica, pero si no posee una copia, use un script en su idioma favorito.