Используйте таблицу поиска, закодированную в числах с плавающей точкой
Немного продвинутый совет:
Маленькие справочные таблицы полезны для гольф-кода: очень часто нам нужна функция, которая отображает, например, от 0 до 1, от 1 до 2, от 2 до 1, а все остальное на 0. Однако массивы TI-BASIC не подходят для этого: с одной стороны, они основаны на одном, а с другой, значение не может быть извлечено до тех пор, пока не будет сохранен массив Ans
или переменная списка.
В моем ответе здесь , я храню небольшую таблицу поиска в постоянной волшебной в основе 11. Просто перечислите значения , которые вы хотите использовать,
{0,-1,5,-1,-1,2,9,-1,8,6}
преобразовать в полезную форму
{1,0,6,0,0,3,10,0,9,7}
напишите в нужной вам базе (база 11)
.106003A097
и преобразовать в базу 10
-1+int(11fPart(11^Ans.0954191904
Подход кратчайшего массива на 8 байт длиннее!
{1,0,6,0,0,3,10,0,9,7}-1:Ans(X+1
TI-BASIC сохраняет только числа с плавающей запятой до 14 десятичных цифр, поэтому вы можете хранить до 44 битов, но только до 14 десятичных цифр.
Эту технику часто можно усовершенствовать, используя поиск методом грубой силы, чтобы найти магическую константу, а не кодирование по основанию N. Я все еще нахожусь в процессе игры над ответом выше, но легендарный гольфист TI-BASIC Weregoose использовал этот метод для генерации различий между числами, взаимно простыми с 30 (то есть повторяющимся списком 6, 4, 2, 4, 2, 4, 6, 2
) в вики / форуме TI-BASIC Разработчик с этим фрагментом:
2+2iPart(3fPart(576e^(fPart(I/8
Магическая константа 576 была найдена с помощью Mathematica, но если у вас нет копии, используйте скрипт на вашем любимом языке.