Мне дана эта функция и попросили вручную оценить g 5
. Я нашел ответ 25, но это неверно. Правильный ответ: 63. Кто-нибудь поможет мне понять, почему? БлагодаряОценка рекурсивной функции в Haskell
g :: Int -> Int
g n
| n==0 = 1
| otherwise = 2 * g (n-1) + 1
Мой ответ: (2 * 4 + 1) + (2 * 3 + 1) + (2 * 2 + 1) + (2 * 1 + 1) + 1 = 25
Сколько раз вы пытаетесь его оценить? Вероятно, вы просто испортили некоторые расчеты. Может быть, напишите, почему вы думаете, что это должно быть 42, поэтому мы можем указать на вашу ошибку. – jpath