factorial=: 1:`(]*factorial@<:) @. * factorial "0 i.6 1 1 2 6 24 120Заметьте, что 1: обозначает постоянную функцию, результат которой всегда 1 .
1:`(]*$:@<:) @. * "0 i. 6 1 1 2 6 24 120В задаче о Ханойской Башне, набор n дисков (каждый своего размера) должен быть перемещен со стержня A на стержень B, используя третий стержень C, при ограничении, что больший диск нельзя класть на меньший. Следующее, представляет из себя рекурсивное определение этого процесса:
h=: b`(p,.q,.r)@.c c=: 1: < [ b=: 2&,@[ $ ] p=: <:@[ h 1: A. ] q=: 1: h ] r=: <:@[ h 5: A. ] 3 h x=: 'ABC' AABACCA BCCBABB 0 1 2 3 4 <@h"0 1 x ++-+---+-------+---------------+ ||A|AAC|AABACCA|AACABBAACCBCAAC| ||B|CBB|BCCBABB|CBBCACCBBAABCBB| ++-+---+-------+---------------+
Упражнения
22.1 | Используйте следующее для упражнений по чтению и письму: f=:1:`(+//.@(,:~)@($:@<:))@.* Биномиальные коэффициенты <@f"0 i.6 Упакованные бином. коэффициенты g=:1:`((],+/@(_2&{.))@$:@<:)@.* Числа Фибоначчи |