随笔分类 -  算法--概率算法

摘要:1.、素数测试问题 数学原理 Wilson定理:对于给定的正整数n,判定n是一个素数的充要条件是(n-1)! -1(mod n)。 费尔马小定理:如果p是一个素数,且0<a<p,则a^(p-1)1(mod p)。 例如67是一个素数,则2^66mod67=1.利用费尔马小定理,对于给定的正整数n,可 阅读全文
posted @ 2020-11-20 19:26 Chen洋 阅读(1533) 评论(0) 推荐(0)
摘要:1、蒙特卡罗算法 基本概述 蒙特卡罗(Monte Carlo)方法,又称随机抽样或统计试验方法。传统的经验方法由于不能逼近真实的物理过程,很难得到满意的结果,而蒙特卡罗方法由于能够真实地模拟实际物理过程,故解决问题与实际非常符合,可以得到很圆满的结果。 在实际应用中常会遇到一些问题,不论采用确定性算 阅读全文
posted @ 2020-11-20 19:08 Chen洋 阅读(1621) 评论(0) 推荐(0)
摘要:问题描述 设n>1是一个整数。关于整数n的因子分解问题是找出n的如下形式的唯一分解式:。其中,p1<p2<…<pk是k个素数,m1,m2,…,mk是k个正整数。如果n是一个合数,则n必有一个非平凡因子x,1<x<n,使得x可以整除n。给定一个合数n,求n的一个非平凡因子的问题称为整数n的因子分割问题 阅读全文
posted @ 2020-11-20 12:42 Chen洋 阅读(742) 评论(0) 推荐(0)
摘要:1、拉斯维加斯(Las Vegas)算法 舍伍德算法优点在于计算时间复杂度对所有实例相对均匀,但与其相应的确定性算法相比,其平均时间复杂度没有改进。拉斯维加斯算法则不然,它能显著改进算法的有效性,甚至对某些迄今为止找不到有效算法的问题,也能得到满意的算法。 拉斯维加斯算法不会得到不正确的解。一旦用拉 阅读全文
posted @ 2020-11-20 12:18 Chen洋 阅读(2215) 评论(0) 推荐(0)
摘要:问题描述 如果用有序链表来表示一个含有n个元素的有序集S,则在最坏情况下,搜索S中一个元素需要O(n)计算时间。提高有序链表效率的一个技巧是在有序链表的部分结点处增设附加指针以提高其搜索性能。在增设附加指针的有序链表中搜索一个元素时,可借助于附加指针跳过链表中若干结点,加快搜索速度。这种增加了向前附 阅读全文
posted @ 2020-11-20 11:51 Chen洋 阅读(574) 评论(0) 推荐(0)
摘要:一.概念引入 设A是一个确定性算法,当它的输入实例为x时所需的计算时间记为tA(x)。设Xn是算法A的输入规模为n的实例的全体,则当问题的输入规模为n时,算法A所需的平均时间为。这显然不能排除存在x∈Xn使得的可能性。希望获得一个随机化算法B,使得对问题的输入规模为n的每一个实例均有。这就是舍伍德算 阅读全文
posted @ 2020-11-20 11:13 Chen洋 阅读(949) 评论(0) 推荐(0)
摘要:1、用随机投点法计算pi值 设有一半径为r的圆及其外切四边形。向该正方形随机地投掷n个点。设落入圆内的点数为k。由于所投入的点在正方形上均匀分布,因而所投入的点落入圆内的概率为(PI * pow(r,2)) / (4 * pow(r,2)) = PI / 4 。所以当n足够大时,k与n之比就逼近这一 阅读全文
posted @ 2020-11-19 19:59 Chen洋 阅读(1712) 评论(0) 推荐(0)
摘要:概率算法:概率算法的一个基本特征是,对所求问题的同一实例用同一概率算法求解两次可能得到完全不同的效果。 1. 随机数。 随机数在概率算法设计中扮演着十分重要的角色。在现实计算机上无法产生真正的随机数,因此在概率算法中使用的随机数都是一定程度上随机的,即伪随机数。 线性同余法是产生伪随机数的最常用的方 阅读全文
posted @ 2020-11-19 18:42 Chen洋 阅读(2624) 评论(0) 推荐(0)