找到函数的最小固定点

时间:2016-08-13 16:47:50

标签: haskell semantics fixed-point

如果我有这个Haskell功能:

  

考虑以下Haskell函数 f

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

然后我如何计算修复点最少修复点(以封闭形式)?

这个问题的答案是:

enter image description here

如何计算最少修复点?我试图理解这一点,但仍然没有运气。如果有人能向我解释这一点,那就太好了。

1 个答案:

答案 0 :(得分: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未被平方时,这与给定的公式f (x-1)如何相等,只需使用{的关联性和可交换性重新排列上述因素。 {1}}超过(*)

Int