Використовуйте таблицю пошуку, закодовану в числах з плаваючою комою
Трохи вдосконалений рада:
Невеликі таблиці пошуку корисні для гольфу з кодом: дуже часто нам потрібна функція, яка відображає, наприклад, 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 десяткових цифр.
Цей прийом часто можна вдосконалити, використовуючи грубу силу пошуку, щоб знайти магічну константу, а не базове кодування. Я все ще знаходжу відповідь вище, але легендарний гольфіст TI-BASIC Weregoose використовував цей метод, щоб генерувати відмінності між числами копрієм з 30 (тобто повторюваним списком 6, 4, 2, 4, 2, 4, 6, 2
) на вікі / форумі TI-BASIC Розробник із цим фрагментом:
2+2iPart(3fPart(576e^(fPart(I/8
Чарівна константа 576 була знайдена за допомогою Mathematica, але якщо ви не володієте копією, використовуйте скрипт улюбленою мовою.