2024-04-25 06:59:06 发布
网友
http://i.stack.imgur.com/EyqSv.png
所以,我正在尝试编写一个python代码来证明上述公式的正确性,以防两个人的生日不一样
我的尝试:
for birthday in range(365, 0, -1): print(birthday)
我只有这些了。因此,上面的公式将打印数设为365:1,我想知道如何使其保持迭代->;365*364*363*362。。。。等等。谢谢你的帮助。你知道吗
您可以从operator模块使用reduce和mul:
operator
reduce
mul
import operator from decimal import Decimal result = 1 - (reduce(operator.mul, range(365 - n + 1, 366)) / Decimal(365.0)**n)
在Python中,必须从functools导入reduce。你知道吗
functools
使用普通python:
def bday(n): y = 1 for i in range(365, 365-n, -1): y *= i / 365.0 return 1 - y
使用numpy(稍微快一点):
import numpy as np def bday(n): y = np.arange(365, 365-n, -1) / 365.0 return 1 - np.product(y)
您可以从
operator
模块使用reduce
和mul
:在Python中,必须从
functools
导入reduce
。你知道吗使用普通python:
使用numpy(稍微快一点):
相关问题 更多 >
编程相关推荐