Use uma tabela de pesquisa codificada em números de ponto flutuante
Uma dica um pouco avançada:
Pequenas tabelas de pesquisa são úteis para o código de golfe: muitas vezes precisamos de uma função que mapeie, por exemplo, 0 a 1, 1 a 2, 2 a 1 e tudo mais a 0. No entanto, as matrizes TI-BASIC não são adequadas para esse propósito: por um lado, eles são baseados em um e, por outro, um valor não pode ser extraído até que a matriz seja armazenada Ans
ou uma variável de lista.
Na minha resposta aqui , armazeno uma pequena tabela de pesquisa em uma constante mágica na base 11. Simplesmente liste os valores que você deseja usar,
{0,-1,5,-1,-1,2,9,-1,8,6}
converter para um formulário útil
{1,0,6,0,0,3,10,0,9,7}
escreva na sua base desejada (base 11)
.106003A097
e converter para a base 10
-1+int(11fPart(11^Ans.0954191904
A abordagem de matriz mais curta tem 8 bytes a mais!
{1,0,6,0,0,3,10,0,9,7}-1:Ans(X+1
O TI-BASIC armazena apenas flutuadores com 14 dígitos decimais, para que você possa armazenar até 44 bits, mas apenas 14 dígitos decimais.
Essa técnica geralmente pode ser aprimorada ainda mais usando a pesquisa de força bruta para encontrar uma constante mágica em vez da codificação base-N. Ainda estou no processo de jogar a resposta acima, mas o jogador de TI TI-BASIC Weregoose usou esse método para gerar as diferenças entre os números de coprime com 30 (ou seja, uma lista repetida 6, 4, 2, 4, 2, 4, 6, 2
) no wiki / fórum TI-BASIC Desenvolvedor com este trecho:
2+2iPart(3fPart(576e^(fPart(I/8
A constante mágica 576 foi encontrada usando o Mathematica, mas se você não possui uma cópia, use um script no seu idioma favorito.