0

如果我有这个 Haskell 函数:

考虑以下 Haskell 函数f

f :: Int -> Int
f 0 = 1
f x = x * x * f (x - 1)

那么如何计算它的固定点最小固定点(封闭形式)?

这个问题的答案是:

在此处输入图像描述

这个最小固定点是如何计算的?我试图理解这一点,但仍然没有运气。如果有人可以向我解释这一点,那就太好了。

4

1 回答 1

0

很容易看出

f x = x * x * f (x-1)
    = x * x * ((x-1) * (x-1) * f (x-2))
    = x * x * ((x-1) * (x-1) * ((x-2) * (x-2) * f (x-3)))
    = ...
    = x * x * ((x-1) * (x-1) * ((x-2) * (x-2) * ... * 1)))

(x!)^2现在要在评论中回答您的问题,即当递归结果未平方时,这如何等同于给定公式,只需使用overf (x-1)的关联性和交换性重新排列上述因素:(*)Int

      x * x * ((x-1) * (x-1) * ((x-2) * (x-2) * ... * 1)))
    = x * x * (x-1) * (x-1) * (x-2) * (x-2) * ... * 1
    = (x * (x-1) * (x-2) * ... * 1) * (x * (x-1) * (x-2) * .. * 1)
    = x!                            * x!
    = (x!)^2
于 2016-08-14T04:45:54.807 回答