【发布时间】:2019-10-07 16:02:44
【问题描述】:
我对 Haskell 很陌生。我一直在尝试实现n_choose_r,但由于某种原因,我的阶乘函数返回了奇怪的值。
Main.hs
factorial 0 = 1
factorial n = n * factorial (n-1)
subsets k list = factorial n where
n = length list
一些不同的情况
> subsets 3 [1..4]
24 // correct value
> factorial 60
8320987112741390144276341183223364380754172606361245952449277696409600000000000000
> subsets 3 [1..60]
-8718968878589280256 // wrong value
> subsets 3 [1..100]
0 // wrong value
列表越长,数字似乎就越不稳定。谁能解释一下?
【问题讨论】: