-
2022-04-02 11:28:22
轮盘赌算法概述
轮盘赌算法算是应用比较广泛的一种算法,在很多算法模型都可以看到该算法的身影。而它本身也的确比较简单,只不过与其它算法结合在一起时,就不是很容易看得出轮盘赌算法了。
算法本质
该算法本质就是转盘,看转盘停下时停在转盘的哪个区域。而转盘停在哪个区域与转盘的区域面积正相关。
对于上面的转盘,当我们转动时,指针停在绿色区域概率就是0.6,蓝色是0.1,橙色是0.3。
在实际应用中,我们得到根据各个解的概率去选择一个解,就相当于轮盘赌。兔兔介绍两种实现方法。实现方法
(1)使用choice函数
在numpy.random中有一个choice函数,它可以根据各个标签对应的概率选标签,概率越大,被选概率越大。如果只选1个,就相当于转一次轮盘得到结果;选n个,就相当于转n次转盘,得到n个结果。import numpy as np x=np.random.choice(a=[1,2,3,4],size=1,replace=True,p=[0.1,0.2,0.3,0.4]) print(x)
其中size就是选的解的个数,这里size=1就是转一次盘得到的一个结果。p就是选a里面各个对应值的对应概率。p需要在0~1之间,并且各个概率和一定是1,p的个数与a里面值的个数一致。
(2)轮盘赌算法实现。
把各个概率累加,这样就得到长度为1的线段,每一段长度代表相应值的概率,概率越大,该线段占整个现电的比例越大。然后随机选取0~1之间的一个数,插入整个线段中。落入哪一段就选那个值。并且落入哪一段的概率与该段的长度(概率)成正相关,这样就相当于转轮盘选数了。label=["a","b","c"<'d'] #需要选的值 p=[0,1,0.2,0.3,0.4] #上面选的值对应概率 cumsum_p=np.cumsum(p) #进行累加,每一个位置的值是前面所有值的和 cumsum_p=cumsum_p-np.random.rand() #相当于随机插入0~1之间的值 index=list(cumsum_p>0).index(True) #选择插入那段区间对应的位置 print(label[index]) #结果
上面算法把选择了把数进行累加的方法,然后与随机数0~1相减,变成小于零与大于零两部分,然后找第一个大于零的位置就是选的值的索引了。
总结
以上两种方法都可以实现轮盘赌的方法,实际应用用感觉调用choice更方便。不过有很多文章还是直接用算法实现的方法,同学们在看一些其它算法(如遗传算法、蚁群算法等)的代码时也需要认得该部分。更多相关内容 -
第二讲 亚线性算法概述.pdf
2020-03-15 15:09:26海量数据计算研究中心 Massive Data Computing Lab @ HIT 大数据算法 第二讲亚线性算法概述 本讲内容 2.1 亚线性算法的定义 2.2 水库抽样空间亚线性算法 请各位评审老师提出宝贵建议 2.3 平面图直径时间亚线性计算... -
第一章-算法概述-1.pdf
2020-07-23 11:08:34第一章-算法概述-1.pdf -
算法概述算法概述.ppt
2022-05-27 10:19:12算法概述算法概述.ppt -
算法概述算法概述.doc
2022-05-08 12:12:28算法概述算法概述.doc -
k-近邻算法概述及其python实现.pptx
2020-12-29 19:39:18介绍kNN算法,用python实现三个案例,包括简单分类器搭建、约会网站改进、手写字体识别,适合工科生用来介绍算法用 -
算法概述ppt
2018-08-05 13:13:14课程内容: 第1章 算法概述 第2章 递归与分治策略 第3章 动态规划 第4章 贪心算法 第5章 回溯法 第6章 分支限界法 第7章 随机化算法 -
大数据算法概述
2018-06-02 11:25:10如果你对大数据算法很感兴趣却又不知如何下手学习,你可以看看这篇ppt,概述了机器学习的几大经典算法,值得一试 -
蚁群算法概述粒子群算法和蚁群算法_鱼群算法和蚁群算法
2020-11-03 10:57:24分 数_ 任课教师签字_ 华北电力大学研究生结课作业 学 年 学 期20 10 学年第二学期 课 程 名 称人工智能与知识工程 学 生 姓 名张华壮 学 号2 10222 1007 题 目蚁群算法概述 提 交 时 间20 11/4/ 13 1 蚁群算法概述 ... -
第一章 算法概述_PDF-2020.06.09.rar
2020-06-10 00:00:59第一章 算法概述_PDF-2020.06.09.rar -
进化算法概述进化算法概述
2018-08-02 20:16:34简单扼要的介绍了进化算法与全局优化的关系,讲解了EAs、GAs、PSO等算法 -
点云分割算法概述.pptx
2021-04-05 22:42:36最近在一些工作材料时,偶然翻到几年前写的一篇《点云分割算法概述》的PPT,当时把这些算法都实现了一下,现在读起来还是很有参考价值。现把它分享出来,供大家分享交流。 -
IP报文分类算法概述.pdf
2022-01-01 11:39:00IP报文分类算法概述.pdf -
推荐算法概述与展望.pdf
2021-08-21 23:21:27推荐算法概述与展望.pdf -
SM2算法概述
2021-10-10 19:05:22SM2算法概述 SM2椭圆曲线公钥密码算法是我国自主设计的公钥密码算法,包括SM2-1椭圆曲线数字签名算法,SM2-2椭圆曲线密钥交换协议,SM2-3椭圆曲线公钥加密算法,分别用于实现数字签名密钥协商和数据加密等功能。 ...2021SC@SDUSC
SM2算法概述
SM2椭圆曲线公钥密码算法是我国自主设计的公钥密码算法,包括SM2-1椭圆曲线数字签名算法,SM2-2椭圆曲线密钥交换协议,SM2-3椭圆曲线公钥加密算法,分别用于实现数字签名密钥协商和数据加密等功能。
SM2标准包括总则,数字签名算法,密钥交换协议,公钥加密算法四个部分,并在每个部分的附录详细说明了实现的相关细节及示例。SM2算法主要考虑素域Fp和F2m上的椭圆曲线,分别介绍了这两类域的表示,运算,以及域上的椭圆曲线的点的表示,运算和多倍点计算算法。然后介绍了编程语言中的数据转换,包括整数和字节串,字节串和比特串,域元素和比特串,域元素和整数,点和字节串之间的数据转换规则。
详细说明了有限域上椭圆曲线的参数生成以及验证,椭圆曲线的参数包括有限域的选取,椭圆曲线方程参数,椭圆曲线群基点的选取等,并给出了选取的标准以便于验证。最后给椭圆曲线上密钥对的生成以及公钥的验证,用户的密钥对为(s,sP),其中s为用户的私钥,sP为用户的公钥,由于离散对数问题从sP难以得到s,并针对素域和二元扩域给出了密钥对生成细节和验证方式。总则中的知识也适用于SM9算法。
国密算法对比见下图:(来源见水印)
SM2与RSA算法
SM2算法和RSA算法都是公钥密码算法,SM2算法与RSA算法不同的是,SM2算法是基于椭圆曲线上点群离散对数难题,相对于RSA算法,256位的SM2密码强度已经比2048位的RSA密码强度要高。
对比:(来源见水印)
安全性对比:
速度对比:
SM2算法数学基础
主要内容来源是《密码学原理与实践 第三版》
明文x(也就是初态w0)经过Nr轮加密后变成y,每一轮的加密通过轮函数g完成,g的实现需要两个输入子密钥K以及上一轮加密的结束状态。
解密过程
我的理解上图
中的y其实是子密钥K,该函数的输入是子密钥K以及中间状态w。
单射函数(来源:单射_百度百科)
SPN(代换-置换网络)是特殊的一类迭代密码。
第一轮的输入需要初态w0与K1先异或得出u1再输入S盒。
最后一轮不应用置换,需要Nr轮加密,但需要用到K(Nr+1)个子密钥。
-
算法竞赛入门经典授课教案第1章 算法概述.doc
2022-05-08 12:13:24算法竞赛入门经典授课教案第1章 算法概述.doc -
1算法概述 上课用.ppt
2022-05-24 17:08:411算法概述 上课用.ppt -
计算机算法设计与分析--第1章 算法概述.ppt
2022-05-27 13:28:43计算机算法设计与分析--第1章 算法概述.ppt -
视频图像去噪算法概述.doc
2022-05-08 13:16:06视频图像去噪算法概述.doc -
对称密码算法概述.pdf
2020-06-09 21:52:24对称密码算法概述 对称密码算法 理解对称分组加密算法的优缺点和应用场合 理解DES3DESAESIDEA的特点和历史背景 了解DES3DES算法的工作原理 2 对称分组加密通信模型 Oscar 加密目的 密文y Alice和Bob在 明文x 明文x ... -
推荐系统常用算法概述及简单对比.pdf
2021-08-22 21:16:07推荐系统常用算法概述及简单对比.pdf -
microRNA靶基因预测算法概述.doc
2022-05-07 13:07:27microRNA靶基因预测算法概述.doc -
算法算法概述详解PPT学习教案.pptx
2021-10-01 17:11:51算法算法概述详解PPT学习教案.pptx -
数据挖掘决策树算法概述.doc
2022-03-19 23:05:49数据挖掘决策树算法概述.doc -
人员实时定位系统算法概述.pdf
2022-03-19 20:24:09人员实时定位系统算法概述.pdf -
MPEG4编码器流程及算法概述.doc
2022-05-08 17:18:29MPEG4编码器流程及算法概述.doc -
遗传算法概述_李红梅.pdf
2021-11-05 15:24:22遗传算法概述_李红梅.pdf -
第一章算法概述.ppt
2020-07-21 00:16:18计算机算法设计与分析 第一章 算法概述 什么是算法 简单的说算法是指解决某一问题的运算序列 或者说算法是问题求解过程的运算描述一个算法由有限条可完全机械地执行的有确定结果的指令组成指令正确地描述了要完成的... -
快速傅立叶变换算法概述.pdf
2022-03-19 22:25:57快速傅立叶变换算法概述.pdf -
RFID防碰撞算法概述.pdf
2020-10-26 09:05:56RFID 防碰撞算法概述 学 院 学 号 姓 名 年 级 目 录 1 RFID 系统的介绍 - 3 - 1.1 RFID 系统的结构和构成 - 3 - 1.1.1 阅读器的结构 - 3 - 1.1.2 电子标签的结构 - 4 - 2 防碰撞算法 - 6 - 2.1 防碰撞算法的产生 - ...