当前位置:首页 » 操作系统 » 几率算法

几率算法

发布时间: 2023-05-22 07:27:05

1. 概率怎么算啊

【概率的定义】 随机事件出现的可能性的量度。概率论最基本的概念之一。人们常说某人有百分之多少的把握能通过这次考试,某件事发生的可能性是多少,这都是概率的实例。 ■概率的频率定义 随着人们遇到问题的复杂程度的增加,等可能性逐渐暴露出它的弱点,特别是对于同一事件,可以从不同的等可能性角度算出不同的概率,从而产生了种种悖论。另一方面,随着经验的积累,人们逐渐认识到,在做大量重复试验时,随着试验次数的增加,一个事件出现的频率,总在一个固定数的附近摆动,显示一定的稳定性。R.von米泽斯把这个固定数定义为该事件的概率行侍雀,这就是概率的频率定义。从理论上讲,概率的频率定义是不够严谨的。A.H.柯尔莫哥洛夫于1933年给出了概率的公理化定义。 ■概率的严格定义 设E是随机试验,S是它的样本空间。对于E的每一事件A赋于一个实数,记为P(A),称为事件A的概率。这里P(·)是一个集合函数,P(·)要满足下列条件:(1)非负性:对于每一个事件A,有P(A)≥0;(2)规范性:对于必然事件S,有P(S)=1;(3)可列可加性:档早设A1,A2……是两两互不相容谈判的事件,即对于i≠j,Ai∩Aj=φ,(i,j=1,2……),则有P(A1∪A2∪……)=P(A1)+P(A2)+……

2. 概率算法

最近做了一个活动抽奖需求,项目需要控制预算,概率需要分布均匀,这样才能获得所需要的概率结果。
例如抽奖得到红包奖金,而每个奖金的分布都有一定概率:

现在的问题就是如何根据概率分配给用户一定数量的红包。

算法思路 :生成一个列表,分成几个区间,例如列表长度100,1-40是0.01-1元的区间,41-65是1-2元的区间等,然后随机从100取出一个数,看落在哪个区间,获得红包区间,最后用随机函数在这个红包区间内获得对应红包数。

时间复杂度 :预处理O(MN),随机数生成O(1),空间复杂度O(MN),其中N代表红包种类,M则由最低概率决定。

优缺点 :该方法优点是实现简单,构造完成之后生成随机类型的时间复杂度就是O(1),缺点是精李镇度不够高,占用空间大,尤其是在类型很多的时候。

算法思路 :离散算法通过概率分布构造几个点[40, 65, 85, 95,100],构造的数组的值就是前面概率依次累加的概率之和。在生成1~100的随机数,看它落在哪个区间,比如50在[40,65]之间,就是类型2。在查找时,可以采用线性查找,或效率更高的二分查找。

算法复杂度 :比一般算法减少占用空间,还可以采用二分法找出R,这样,预处理O(N),随机数生成O(logN),空间复杂度O(N)。

优缺点 :比一般算法占告饥用空间减少,空间复杂度O(N)。

算法思路 :Alias Method将每种概率当做一列,该算法最终的结果是要构造拼装出一个每一列合都为1的矩形,若每一列最后都要为1,那么要将所有元素都乘以5(概率类型的数量)。

此时会有概率大于1的和小于1的,接下来就是构造出某种算法用大于1的补足小于1的,使每种概率最后都为1,注意,这里要遵循一个限制:每列至多是两种概率的组合。

最终,我们得到了两个数组,一个是在下面原始的prob数组[0.75,0.25,0.5,0.25,1],另外就是在上面补充的Alias数组,其值代表填充的那一列的序号索引,(如果这一列上不需填充,那么就是NULL),[4,4,0,1,NULL]。当然,最终的结果可能不止一种,你也可能得到其他结果。

举例验证下,比如取第二列,让prob[1]的值与一个随机小数f比较,如果f小于prob[1],那么结果就是2-3元,否则就是Alias[1],即4。

我们可以来简单验证一下,比如随机到第二列的概率是0.2,得到第三列下半部分的概率为0.2 * 0.25,记得袜扰返在第四列还有它的一部分,那里的概率为0.2 * (1-0.25),两者相加最终的结果还是0.2 * 0.25 + 0.2 * (1-0.25) = 0.2,符合原来第二列的概率per[1]。

算法复杂度 :预处理O(NlogN),随机数生成O(1),空间复杂度O(2N)。

优缺点 :这种算法初始化较复杂,但生成随机结果的时间复杂度为O(1),是一种性能非常好的算法。

3. (六) 概率算法

前面所讨论算法的每一计算步骤都是确定的,而本次所讨论的概率算法允许算法在执行过程中随机地选择下一个计算步骤。在许多情况下,当算法在执行过程中面临一个选择时,随机性选择常比最优选择省时。因此概率算法可在很大程度上降低算法的复杂度。

概率算法的一个基本特征是对所求解问题的同一实例用同一概率算法求解两次可能得到完全不同的效果。这两次求解所需的时间甚至所得到的结果可能会有相当大的差别。一般情况下, 可将概率算法大致分为四类:数值概率算法、蒙特卡罗(MonteCarlo) 算法、拉斯羡孝陵维加斯(Las Vegas) 算法和舍伍德(Sherwood) 算法。

随机数在随机化算法设计中扮演着十分重要的角色。在现实计算机上无法产生真正的随机数,因此在随机化算法中使用的随机数都是一定程度上随机的,即伪随机数。
线性同余法 是产生伪随机数的最常用的方法。由线性同余法产生的随机序列 满足

其中 。d称为该随机序列的种子。如何选取该方法中的常数b、c和m直接关系到所产生的随机序列的随机性能。这是随机性理论研究的内容,已超出本书讨论的范围。从直观上看,m应取得充分大,因此可取m为机器大数,另外应取 ,因此可取b为一素数。

为了在设计概率算法时便于产生所需的随机数,建立一个随机数类RandomNumber:该类包含一个需由用户初始化的种子randSeed。给定初始种子后,即可产生与之相应的随机序列。种子randSeed是一个无符号长整型数, 可由用户选定也可用系统时间自动产生。函数Random的输入参数 是一个无符号长整型数,它返回 范围内的一个随机整数。函数fRandom返回[0,1) 内的一个随机实数。

数值概率算法常用于数值问题的求解。这类算法所得到的往往是近似解。且近似解的精度随计算时间的增加而不断提高。在许多情况下,要计算出问题的精确解是不可能的或没有必要的,因此用数值概率算法可得到相当满意的解。

当一个确定性算法在最坏情况下的计算复杂性与其在平均情况下的计算复杂性有较大差别时

舍伍德算法就是一种利用随机算法改造确定性算法,消除或减少问题的好坏实例间的这种差别。舍伍德算法精髓不是避免算法的最坏情况行为,而是设法消除这种最坏情形行为与特定实例之间的关联性。

思想:利用随机算法改造已有算法,使得算法的性能尽量与输入数据无关,即平滑算法的性能。它总能求得问兄戚题的一个解,且求得的解总是正确的。

算法的性能 =平均性能 + 一个很小的随机值。 舍伍德算法是为了得到好的平均性能。

一个算法,对于不同的输入数据,其算法的性能是不一样的。比如快排算法,每次选择第一个元素作为基准,慎带对序列从小到大排序:

拉斯维加斯算法不会得到不正确的解。一旦用拉斯维加斯算法找到一个解,这个解就一定是正确解。但有时用拉斯维加斯算法会找不到解。

与蒙特卡罗算法类似,拉斯维加斯算法找到正确解的概率随着它所用的计算时间的增加而提高。对于所求解问题的任一实例,用同一拉斯维加斯算法反复对该实例求解足够多次,可使求解失效的概率任意小。

蒙特卡罗算法用于求问题的准确解。对于许多问题来说,近似解毫无意义。例如,一个判定问题其解为“是”或“否”,二者必居其一,不存在任何近似解答。又如,我们要求一个整数的因子时所给出的解答必须是准确的,一个整数的近似因子没有任何意义。

用蒙特卡罗算法能求得问题的一个解,但这个解未必是正确的。求得正确解的概率依赖于算法所用的时间。算法所用的时间越多,得到正确解的概率就越高。蒙特卡罗算法的主要缺点也在于此。一般情况下,无法有效地判定所得到的解是否肯定正确。

在实际应用中常会遇到一些问题,不论采用确定性算法或随机化算法都无法保证每次都能得到正确的解答。蒙特卡罗算法则在一般情况下可以保证对问题的所有实例都以高概率给出正确解,但是通常无法判定一个具体解是否正确。

有些蒙特卡罗算法除了具有描述问题实例的输入参数外,还具有描述错误解可接受概率的参数。这类算法的计算时间复杂性通常由问题的实例规模以及错误解可接受概率的函数来描述。

参考链接: http://www.ruanyifeng.com/blog/2015/07/monte-carlo-method.html

数值概率算法的应用

舍伍德算法的应用

拉斯维加斯算法的应用

蒙特卡罗算法的应用

4. 概率计算公式是什么

条件概率:

条件概率:已知事件B出现的条件下A出现的概率,称为条件概率,记作:P(A|B)

条件概率计算公式:

当P(A)>0,P(B|A)=P(AB)/P(A)

当P(B)>0,P(A|B)=P(AB)/P(B)

乘法公式:

P(AB)=P(A)×P(B|A)=P(B)×P(A|B)

推广:P(ABC)=P(A)P(B|A)P(C|AB)

全概率公式:

设:若事件A1,A2,…,An互不相容,且A1+A2+…+An=Ω,则称A1,A2,…,An构成一个完备事件组。

概率算法:概率算法的一个基本特征是,对所求问题的同一实例用同一概率算法求解两次可能得到完全不同的效果。

随机数在概率算法设计中扮演着十分重要的角色。在现实计算机上无法产生真正的随机数,因此在概率算法中使用的随机数都是一定程度上随机的,即伪随机数。

5. 体彩一等奖概率算法

体彩大乐透中一等奖几率是1/21425712,算法是这样的:前区35选5个=(35*34*33*32*31)/(5*4*3*2*1)=324632;后区12选2个=(12*11)/(2*1)=66,两个相乘,就是总和注数共21425712注,所以中一等奖几率是1/21425712,中奖的几率很底哟!

6. 概率计算方法 概率计算方法是什么

1、频次算法。即分别考虑每种事件发生的频次,单个事件频次除总频次,即是概率值,或者单个事件频次除以其他事件频次,然后再转化为概率值昌腔。

2、集合对应法。举例:半径为1的圆,通过上面一点做弦,弦长小于根号2的概率多少。通过画图显示,直观就能判断,弦的数目对应圆上的点,这些点的集合就是弧长,因此弦的数目可以用弧长对应,小于根号2的弦和所有弦的数目就是弧长和圆周长的比值。有了这种对应关系,很容易计算出概率值50%。

3、反向算法。有些场悄猛合,正面去计算比较耐运衫麻烦,如果从反面去计算,即先计算它的相斥事件的概率,再用1去减就可以得出概率值。

7. 概率计算公式是什么

概率公式是裤旁:P(A∪B)=P(A)+P(B)-P(AB)。

定理:设A、B是互不相配洞容事件(AB=φ),则:P(A∪B)=P(A)+P(B)-P(AB)。

推论1:设A1、 A2、…、 An互不相容,则:P(A1+A2+...+ An)= P(A1) +P(A2) +…+ P(An)。

推论2:设A1、 A2、…、 An构成完备事件组,则:P(A1+A2+...+An)=1。

相关信息

条件概率:已知事件B出现的条件下A出现的概率,称为条培纯枯件概率,记作:P(A|B)。

条件概率计算公式:

当P(A)>0,P(B|A)=P(AB)/P(A)。

当P(B)>0,P(A|B)=P(AB)/P(B)。

P(AB)=P(A)×P(B|A)=P(B)×P(A|B)。

推广:P(ABC)=P(A)P(B|A)P(C|AB)。

8. 概率计算公式

1、C 3 10 = (10*9*8)/(1*2*3)

A 3 10=10*9*8

2、A(n,m)=n*(n-1)*(n-2)……(n-m+1),也就是由n往下每个数连乘。

C(n,m)=A(n,m)/A(m,m)。一般地,从n个不同的元素中,任取m(m≤n)个元素为一组,叫作从n个不同元素中取出m个元素的一个组合。

(8)几率算法扩展阅读:

概率的加法法则

定理:设A、B是互不相容事件(AB=φ),则:

P(A∪B)=P(A)+P(B)

推论1:设A1、握让 A2、…段灶局、 An互不相容,则:P(A1+A2+...+ An)= P(A1) +P(A2) +…+ P(An)

推论2:设A1、 A2、…、 An构成完备事件组,则:P(A1+A2+...+An)=1

推论3:为事件A的对立事件。

推论4:若B包含A,则P(B-A)= P(B)-P(A)

推论5(广义加法公式):对任意两个事件A与B,有P(A∪B)=P(A)+P(B)-P(AB)[1]

条件概率

条件概率:已知事件B出现的条件下A出现的概率,称为条件概率,记作:P(A|B)

条件概率计算公式:

当P(A)>0,P(B|A)=P(AB)/P(A)

当P(B)>0,P(A|B)=P(AB)/P(B)

乘法公式

P(AB)=P(A)×P(B|A)=P(B)×P(A|B)

推广:P(ABC)=P(A)P(B|A)P(C|AB)[1]

热点内容
c判断文件夹是否存在 发布:2025-04-22 23:56:36 浏览:938
精确测算法 发布:2025-04-22 23:54:09 浏览:287
安卓如何更换开机画面 发布:2025-04-22 23:49:10 浏览:889
知道ID密码怎么定位 发布:2025-04-22 23:34:16 浏览:253
c语言采样 发布:2025-04-22 23:30:03 浏览:916
数据库服务器修改了ip地址 发布:2025-04-22 23:25:36 浏览:7
c语言基础案例 发布:2025-04-22 23:23:28 浏览:693
网络显示没有效的ip配置怎么办 发布:2025-04-22 23:23:23 浏览:805
怎么查身份证密码 发布:2025-04-22 23:12:07 浏览:207
如何用服务器跑github项目 发布:2025-04-22 23:10:55 浏览:948