| |||
|
|
Про функцию К этому: http://lj.rossia.org/users/kouzdra/2407 fn x y = (z + 1) `exp` x `div` z `exp` y `mod` z where z = (x+2) `exp` (x+2) exp a 0 = 1 exp a n = a * (a `exp` (n-1)) Как правильно ответили многие (хотя, кажется, все - путем прогона тестов) - fn x y - это число сочетаний из x по у. Почему - очень просто: возведем в степень y число 10^n + 1 (где n достаточно велико). Получим строчку биномиальных коэффициентов для степени y в десятичной записи, далее - с помощью деления и остатка вырезается нужный коэффициент. Превращение этого в приведенную функцию - дело техники. |
||||||||||||||