如何在python中实现生日公式?

2024-04-25 06:59:06 发布

您现在位置:Python中文网/ 问答频道 /正文

http://i.stack.imgur.com/EyqSv.png

所以,我正在尝试编写一个python代码来证明上述公式的正确性,以防两个人的生日不一样

我的尝试:

for birthday in range(365, 0, -1):
    print(birthday)

我只有这些了。因此,上面的公式将打印数设为365:1,我想知道如何使其保持迭代->;365*364*363*362。。。。等等。谢谢你的帮助。你知道吗


Tags: 代码incom证明httpforpngstack
2条回答

您可以从operator模块使用reducemul

import operator
from decimal import Decimal
result = 1 - (reduce(operator.mul, range(365 - n + 1, 366)) / Decimal(365.0)**n)

在Python中,必须从functools导入reduce。你知道吗

使用普通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)

相关问题 更多 >