gpt4 book ai didi

Haskell mod 故障?

转载 作者:行者123 更新时间:2023-12-04 01:06:36 28 4
gpt4 key购买 nike

这是我要删除的 Haskell 函数 2::Int5::Int从列表中:

remPrimesFactors25 :: [Int] -> [Int]
remPrimesFactors25 [] = []
remPrimesFactors25 (x:xs)
| x == 2 = remPrimesFactors25 xs
| x == 5 = remPrimesFactors25 xs
| otherwise = x : remPrimesFactors25 xs
λ>  remPrimesFactors25 [2,5,23]
[23]
λ> remPrimesFactors25 [2,5,23] == [23]
True
λ> product (remPrimesFactors25 [2,5,23])
23
λ> product [23]
23
λ> product (remPrimesFactors25 [2,5,23]) == product [23]
True
这是我的问题。 为什么会发生这种情况?
λ>  mod (10^22) (product (remPrimesFactors25 [2,5,23]) )
15
λ> mod (10^22) (product [23])
1

最佳答案

remPrimesFactors总是返回 Int 的列表值,而不是 Integer值。自 mod要求两个参数具有相同的类型,10^22也被视为 Int ,它没有准确处理大数的精度。

Prelude> 10^22 :: Integer
10000000000000000000000
Prelude> 10^22 :: Int
1864712049423024128

关于Haskell mod 故障?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66249173/

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