Python 代码实现列表的最小公倍数(最小公倍数函数)

您所在的位置:网站首页 用函数计算最小公倍数的公式 Python 代码实现列表的最小公倍数(最小公倍数函数)

Python 代码实现列表的最小公倍数(最小公倍数函数)

2023-06-19 07:47| 来源: 网络整理| 查看: 265

目录1. lcm2. functools.reduce3. 实际使用

本篇阅读的代码片段来自于30-seconds-of-python(https://github.com/30-seconds...)。

1. lcm from functools import reduce from math import gcd def lcm(numbers): return reduce((lambda x, y: int(x * y / gcd(x, y))), numbers) # EXAMPLES lcm([12, 7]) # 84 lcm([1, 3, 4, 5]) # 60

两个数的最大公约数和最小公倍数满足如下公式:

lcm(a, b) * gcd(a, b) = abs(a * b)

而对于两个以上数据的列表时,只需要将任意两个数的最小公倍数和剩下的其他数字继续计算最小公倍数即可。

也就是说:

lcm(a, b, c, ...) = lcm(lcm(a, b), c, ...)

因此我们使用functools.reduce函数对列表进行迭代。

2. functools.reduce functools.reduce(function, iterable[, initializer])

reduce函数中的第一个参数是函数function,它接受两个参数。reduce函数将function累积的应用在第二个参数,iterable,可迭代的对象上。function使用可迭代对象的前两个值作为输入参数,并将返回值和可迭代对象的下一个值作为function的输入参数进行下一次迭代,直到用尽可迭代对象的所有值。例如以下的例子:

# ((((1+2)+3)+4)+5) reduce(lambda x, y: x+y, [1, 2, 3, 4, 5])

reduce函数大致相当于:

def reduce(function, iterable, initializer=None): it = iter(iterable) if initializer is None: value = next(it) else: value = initializer for element in it: value = function(value, element) return value

3. 实际使用

上面的代码片段是展示了Python一种使用方法。细心的同学可以看出来,如果要投入实际生产应用,lcm函数是有一些问题的,主要是两点,一是异常处理,包括除零等;另一个是最小公倍数都是正整数,而该函数的返回值可能出现负数。

30-seconds-of-python(https://github.com/30-seconds... ) 的代码主要是展现了一种思路。并不会对边缘情况和异常进行检查,背后的原因是为了保持项目的简单性,展示有趣的技术和思维方式。所有的代码片段都假设用户对问题、语言和可能发生的潜在错误有基本的了解,因此不会添加异常处理或参数检查。

到此这篇关于Python 代码实现列表的最小公倍数的文章就介绍到这了,更多相关Python 列表最小公倍数内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3