📅  最后修改于: 2023-12-03 14:54:13.891000             🧑  作者: Mango
本程序用于计算掷两个骰子得到孪生素数的概率。
先通过掷一个骰子得到1至6的整数随机数,再将两个随机数相加得到本次掷骰子的和数。只有当和数为偶数时,才有可能得到孪生素数。因为孪生素数只有2和3是偶数,其他均为奇数。
所以,当和数为偶数时,只需判断两个相邻的奇数是否均为素数即可。若是素数,则得到孪生素数。
本程序中,通过一个计算孪生素数的函数来判断两个相邻的奇数是否均为素数。然后,在主程序中,根据孪生素数个数除以总数,得出掷两个骰子得到孪生素数的概率。
import random
# 判断素数的函数
def is_prime(n):
# 小于2的数都不是素数
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
# 判断孪生素数的函数
def is_twin_prime(a, b):
if is_prime(a) and is_prime(b) and abs(a - b) == 2:
return True
else:
return False
# 掷骰子得到的数可能为1至6的整数
dice_numbers = [1, 2, 3, 4, 5, 6]
# 统计孪生素数个数
twin_prime_count = 0
# 总次数
total_count = 0
# 循环掷骰子
for i in dice_numbers:
for j in dice_numbers:
total_count += 1
# 只有偶数和数才有可能得到孪生素
if (i + j) % 2 == 0:
# 取两个相邻的奇数判断是否为孪生素数
if is_twin_prime(i + j - 1, i + j + 1):
twin_prime_count += 1
# 计算概率
probability = twin_prime_count / total_count
# 输出结果
print(f"掷两个骰子得到孪生素数的概率为 {probability:.6f}")
此程序将随机生成36次两个骰子掷出的数字,然后统计其中的孪生素数个数,最后计算出孪生素数出现的概率,并将结果四舍五入保留六位小数后输出。