编程语言
首页 > 编程语言> > 了解Python中针对GCF的Euclid算法的实现

了解Python中针对GCF的Euclid算法的实现

作者:互联网

用于两个数字的GCF的Euclid算法为:GCF(a,b)= GCF(b,mod b).我已经看到了在Python中实现的方法,如下所示:

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

我不明白如何解析此函数,或者具体地讲如何将布尔逻辑应用于整数.例如,gcf(42,56)=14.当我遍历它时,我发现最终递归部分返回零.我遵循那个0或n == n以及0和n ==0.但是,一旦我将一对非零整数与和/或逻辑进行比较,我就不知道会发生什么以及为什么.

有人可以引导我完成此功能吗?

解决方法:

Python布尔运算符’or’和’and’不返回布尔值.它们返回要比较的值之一.

0或n-返回n

0和n-返回0

a和b或c只是在C中实现(a?b:c)语法的一个技巧.

阅读Dive into Python的4.6节,详细了解python的布尔操作和此技巧.

标签:factorization,python,algorithm
来源: https://codeday.me/bug/20191105/1996191.html