我在Haskell中有一个函数,它有两个参数,我想计算这个函数的总和。
module Main where
fact 0 = 1
fact n = n * fact (n - 1)
combination n p = fact n / fact (n - p)
combSum p = combination p p / foldr1 (\p-> \x -> combination p x) [p,(p-1)..0]
prob p = combination p p / combSum p
这似乎不起作用。 combSum函数。我该怎么写这个函数?
只是更正功能...抱歉......
x必须在p到0之间变化。
答案 0 :(得分:0)
首先,
combination p p
与以下内容相同:
fact p
接下来,我不完全确定你的combSum做了什么。特别是分母。 foldr采用函数,初始值和列表。我没看到你的初始价值。你只是想总结一系列价值观吗?喜欢
fact 0 = 1
fact n = n * fact (n - 1)
combination n p = fact n / fact (n - p)
combSum p = sum $ map (\x -> combination p x) [p, p-1 .. 0]
prob p = fact p / combSum p
不确定这是不是你想要的......