phython假如一个班级有30名学生,这当中两个人同一天出生的概率是多大?(提示:用randint函数来生成随机的生日)
时间: 2024-02-18 07:04:46 浏览: 157
Phython基础之字符串变量(详解)
这是一个经典的生日悖论问题。可以使用Python中的随机数生成函数来模拟这个问题。
思路如下:
1. 生成一个包含30个元素的列表,每个元素表示一个学生的生日,使用randint函数生成1~365之间的随机整数。
2. 对于每个学生,依次与之前的学生比较生日,如果有一样的,则记录下来。
3. 重复多次模拟,计算出有两个人生日相同的概率。
Python代码如下:
```python
import random
def has_same_birthday():
birthdays = [random.randint(1, 365) for _ in range(30)]
for i in range(30):
for j in range(i+1, 30):
if birthdays[i] == birthdays[j]:
return True
return False
n = 10000 # 模拟次数
count = 0 # 有两人生日相同的次数
for i in range(n):
if has_same_birthday():
count += 1
print("模拟%d次,有两人生日相同的概率为%.2f%%" % (n, count/n*100))
```
输出结果大约是70.60%左右,即在30个人中,有两个人生日相同的概率约为70%。
阅读全文