gpt4 book ai didi

haskell - Haskell 中使用无穷列表的毕达哥拉斯三元组

转载 作者:行者123 更新时间:2023-12-02 12:21:37 26 4
gpt4 key购买 nike

我想使用无穷列表在 Haskell 中生成毕达哥拉斯三元组。我的代码有什么问题:

trojkaty = [(a,b,c) | a <- [1..], b <- [1..], c <- [1..], (a^2)+(b^2)==(c^2)]

最佳答案

尝试用c的中间值来表达ab的上限,否则会强制整个列表在检查最后一个条件之前的无限值。

trojkaty :: [(Int, Int, Int)]
trojkaty = [(a,b,c) | c <- [2..], b <- [2..c-1], a <- [2..b-1], a^2 + b^2 == c^2]

main = do
print $ take 5 trojkaty

关于haskell - Haskell 中使用无穷列表的毕达哥拉斯三元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21220606/

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