gpt4 book ai didi

python - 了解欧几里得算法在 Python 中的 GCF 实现

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:12:44 32 4
gpt4 key购买 nike

两个数的 GCF 的欧几里得算法是:GCF(a, b)=GCF(b, a mod b)。我已经看到它在 Python 中的实现如下:

def gcf(a, b):
return b and gcf(b, a%b) or a

我不明白如何解析此函数或具体如何将 bool 逻辑应用于整数。例如,gcf(42, 56) = 14。当我遍历它时,我看到递归部分最终返回零。我遵循 0 or n == n0 and n == 0。但是,一旦我将一对非零整数与和/或逻辑进行比较,我就不明白会发生什么以及为什么。

有人可以指导我完成这个功能吗?

最佳答案

Python bool 运算符“or”和“and”不返回 bool 值。他们返回他们正在比较的值之一。

0 或 n - 返回 n

0 和 n - 返回 0

a and b or c 只是在 C 中实现 (a ? b : c) 语法的技巧。

阅读 Dive into Python 的第 4.6 节对于 python 的 bool 运算和这个技巧的很好的描述。

关于python - 了解欧几里得算法在 Python 中的 GCF 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4481313/

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