赔率——计算范围内素数的概率(五种算法)

编程入门 行业动态 更新时间:2024-10-13 02:13:51

赔率——计算范围内<a href=https://www.elefans.com/category/jswz/34/1764940.html style=素数的概率(五种算法)"/>

赔率——计算范围内素数的概率(五种算法)

文章目录

    • 基础理论
    • 代码实现

基础理论

质数(prime number)又称素数,有无限个。一个大于1的自然数,如果除了1和它自身外,不能被其他自然数整除(除0以外)的数称之为素数(质数);否则称为合数。
可以通过将待检测的数x除以【2-sqrt(x)】范围内的数,余数不为0,则是素数。

代码实现

// An highlighted blockfrom time import time
import mathdef is_prime(x):return 0 not in [x % i for i in range(2, int(math.sqrt(x)) + 1)]def is_prime3(x):flag = Truefor p in p_list2:if p > math.sqrt(x):breakif x % p == 0:flag = Falsebreakif flag:p_list2.append(x)return flagif __name__ == "__main__":a = 2b = 10000'''统计五种方法的计算时间'''# 方法1:直接计算t = time()p = [p for p in range(a, b) if 0 not in [p % d for d in range(2, int(math.sqrt(p)) + 1)]]print(time() - t)print(p)# 方法2:利用filter(与方法1类似)#filter() 函数用于过滤序列,过滤掉不符合条件的元素,该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。t = time()#调用is_primep = filter(is_prime, range(a, b))print (time() - t)print (list(p))# 方法3:利用filter和lambda(与方法1类似)t = time()#lambda 匿名函数is_prime2 = (lambda x: 0 not in [x % i for i in range(2, int(math.sqrt(x)) + 1)])p = filter(is_prime2, range(a, b))print(time() - t)print (list(p))# 方法4:定义t = time()p_list = []for i in range(2, b):flag = Truefor p in p_list:if p > math.sqrt(i):breakif i % p == 0:flag = Falsebreakif flag:p_list.append(i)print(time() - t)print (p_list)# 方法5:定义和filter(与方法4类似)p_list2 = []t = time()#调用is_prime3p = filter(is_prime3, range(2, b + 1))print(time() - t)print(list(p))print('******')print('使用第五种方法计算概率')'''使用第五种方法计算概率'''a = 1180b = 1230p_train= filter(is_prime3, range(2, b+1))  #定义为数组p_trainvalue=list(p_train)print('****')#搜索在指定范围内的素数p_train= [p_trainvalue[x] for x in range(len(p_trainvalue))if p_trainvalue[x]>=a]print( p_train)#计算在指定范围内素数的概率p_rate = float(len(p_train)) / float(b-a+1)print('素数的概率:', p_rate, '\t',)print ('公正赔率:', 1/p_rate)print ('合数的概率:', 1-p_rate, '\t',)print ('公正赔率:', 1 / (1-p_rate))

更多推荐

赔率——计算范围内素数的概率(五种算法)

本文发布于:2024-02-14 15:24:58,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1763968.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:素数   范围内   赔率   五种   概率

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!