gpt4 book ai didi

haskell - 定义函数 squarefact::Int -> Int 计算任何正整数 n 的平方阶乘 (n!)^2 == (1 * ...* n)^2

转载 作者:行者123 更新时间:2023-12-04 12:09:41 25 4
gpt4 key购买 nike

我试图定义一个函数来计算任何正整数的阶乘的平方
(我是 Haskell 的初学者,感谢任何提示或帮助)
我尝试了几种不同的方法,一种我认为可以工作,另一种定义我不明白为什么它不起作用
我认为有效的功能:

 squarefact:: Int -> Int
squarefact 0 = 1
squarefact n = n * n * squarefact(n-1)
功能我不明白为什么它不起作用:
squarefact:: Int -> Int
squarefact 0 = 1
squarefact n = (n * squarefact(n-1) ) * (n * squarefact(n-1) )
对定义的函数的解释和演练将帮助我更好地理解它们,谢谢。

最佳答案

等式

squarefact n = (n * squarefact(n-1) ) * (n * squarefact(n-1) )
可以用数学符号重写为
(n!)^2 = n * ((n-1)!)^2 * n * ((n-1)!)^2
但这个身份是不正确的。右侧包括因子 1,2,....,n-1四次而不是只有两次,如左侧。
通过比较,
squarefact n = n * n * squarefact(n-1)
是正确的,因为在双方所有因素都恰好发生两次。

关于haskell - 定义函数 squarefact::Int -> Int 计算任何正整数 n 的平方阶乘 (n!)^2 == (1 * ...* n)^2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65836322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com