]]> ]]>

Числа Фибоначчи в J

Пример для версий J602

В этом примере используется формула Бине.

Запись g =: -: >: %:5 эквивалентна g =: 0.5 * (1 + 5 ^ 0.5) и присваивает имя g значению золотого сечения. Для этого используются следующие функции: %: извлекает квадратный корень из числа, >: увеличивает число на единицу, -: делит число на два. Если в формуле нет скобок, то действия выполняются справа налево.

Запись fibb=: (%:5) %~ g&^ — (1-g)&^ эквивалентна fibb =: (0.2 ^ 0.5) * (g &^ — (1-g) &^); таким образом определяется формула для n-ого числа Фибоначчи при заданном n. Функция %~ выполняет операцию деления, но делимое и делитель имеют порядок, обратный традиционному.

i.16 генерирует числа от 0 до 15, включительно.

load 'printf'

g=: -: >: %:5
fibb=: (%:5) %~ g&^ - (1-g)&^
fstr=: '...' ,~ ,~^:4 '%d, '
fstr printf fibb 1+i.16

Комментарии

]]>

blog comments powered by Disqus

]]>

Работа программистам