版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章随机化算法1学习要点理解产生伪随机数的算法掌握数值随机化算法的设计思想掌握蒙特卡罗算法的设计思想掌握拉斯维加斯算法的设计思想掌握舍伍德算法的设计思想2随机数随机数在随机化算法设计中扮演着十分重要的角色。在现实计算机上无法产生真正的随机数,因此在随机化算法中使用的随机数都是一定程度上随机的,即伪随机数。线性同余法是产生伪随机数的最常用的方法。由线性同余法产生的随机序列a0,a1,…,an满足其中b0,c0,dm。d称为该随机序列的种子。如何选取该方法中的常数b、c和m直接关系到所产生的随机序列的随机性能。这是随机性理论研究的内容,已超出本书讨论的范围。从直观上看,m应取得充分大,因此可取m为机器大数,另外应取gcd(m,b)=1,因此可取b为一素数。3数值随机化算法
4用随机投点法计算值
设有一半径为r的圆及其外切四边形。向该正方形随机地投掷n个点。设落入圆内的点数为k。由于所投入的点在正方形上均匀分布,因而所投入的点落入圆内的概率为。所以当n足够大时,k与n之比就逼近这一概率。从而doubleDarts(intn){//用随机投点法计算值
staticRandomNumberdart;intk=0;for(inti=1;i<=n;i++){doublex=dart.fRandom();doubley=dart.fRandom();if((x*x+y*y)<=1)k++;}return4*k/double(n);}5计算定积分设f(x)是[0,1]上的连续函数,且0f(x)1。需要计算的积分为,积分I等于图中的面积G。在图所示单位正方形内均匀地作投点试验,则随机点落在曲线下面的概率为假设向单位正方形内随机地投入n个点(xi,yi)。如果有m个点落入G内,则随机点落入G内的概率6解非线性方程组求解下面的非线性方程组其中,x1,x2,…,xn是实变量,fi是未知量x1,x2,…,xn的非线性实函数。要求确定上述方程组在指定求根范围内的一组解
在指定求根区域D内,选定一个随机点x0作为随机搜索的出发点。在算法的搜索过程中,假设第j步随机搜索得到的随机搜索点为xj。在第j+1步,计算出下一步的随机搜索增量xj。从当前点xj依xj得到第j+1步的随机搜索点。当x<时,取为所求非线性方程组的近似解。否则进行下一步新的随机搜索过程。7舍伍德(Sherwood)算法设A是一个确定性算法,当它的输入实例为x时所需的计算时间记为tA(x)。设Xn是算法A的输入规模为n的实例的全体,则当问题的输入规模为n时,算法A所需的平均时间为这显然不能排除存在x∈Xn使得的可能性。希望获得一个随机化算法B,使得对问题的输入规模为n的每一个实例均有这就是舍伍德算法设计的基本思想。当s(n)与tA(n)相比可忽略时,舍伍德算法可获得很好的平均性能。8舍伍德(Sherwood)算法复习学过的Sherwood算法:(1)线性时间选择算法(2)快速排序算法有时也会遇到这样的情况,即所给的确定性算法无法直接改造成舍伍德型算法。此时可借助于随机预处理技术,不改变原有的确定性算法,仅对其输入进行随机洗牌,同样可收到舍伍德算法的效果。例如,对于确定性选择算法,可以用下面的洗牌算法shuffle将数组a中元素随机排列,然后用确定性选择算法求解。这样做所收到的效果与舍伍德型算法的效果是一样的。template<classType>voidShuffle(Typea[],intn){//随机洗牌算法
staticRandomNumberrnd;for(inti=0;i<n;i++){intj=rnd.Random(n-i)+i;Swap(a[i],a[j]);}}9跳跃胳表舍伍岛德型躬算法醋的设气计思阿想还证可用登于设渗计高耕效的父数据搏结构抵。如果幼用有嚷序链模表来咳表示牧一个数含有n个元姿素的菠有序遮集S,则孟在最农坏情炊况下炭,搜堤索S中一退个元须素需环要(n妨)计算附时间库。提高跟有序书链表叫效率耍的一壁个技钉巧是贸在有极序链仁表的伶部分辫结点严处增秆设附梁加指喷针以六提高劈燕其搜袖索性重能。摊在增它设附勺加指末针的体有序惜链表工中搜在索一厨个元荒素时戏,可根借助穴于附漠加指鸡针跳月过链旷表中匪若干船结点就,加贵快搜产索速兆度。役这种刃增加丢了向其前附昌加指尊针的吃有序领链表本称为跳跃惠表。应在阀跳跃驱表的渐哪些歼结点翼增加案附加块指针陡以及担在该雪结点滑处应隶增加肾多少创指针月完全咬采用驳随机颂化方蚀法来勿确定透。这斗使得证跳跃女表可移在O(lo西gn)平均绑时间狐内支授持关沈于有男序集化的搜协索、窗插入首和删罩除等画运算祸。10跳跃飘表在一抓般情请况下潮,给郊定一肌个含闯有n个元斧素的准有序淹链表与,可资以将裹它改埋造成奸一个鸡完全修跳跃冤表,棵使得版每一勺个k级结室点含讨有k+效1个指膛针,棉分别塌跳过2k-1,2k-蚂1-1,…,20-1个中色间结舍点。虾第i个k级结蓬点安宿排在删跳跃赚表的侦位置i2名k处,i0。这份样就缓可以启在时怒间O(lo完gn)内完美成集盖合成垦员的洲搜索耳运算瓣。在怨一个焰完全孩跳跃正表中冲,最搁高级座的结姿点是lo草gn级结挤点。完全罚跳跃妥表与件完全州二叉居搜索垄树的叉情形惭非常柜类似企。它瞎虽然耀可以购有效塌地支陆持成劣员搜仅索运觉算,刻但不板适应禁于集愁合动证态变趟化的盈情况疮。集卧合元什素的宗插入表和删削除运锁算会谎破坏尸完全省跳跃封表原碰有的仆平衡脉状态刚,影占响后峡继元锄素搜穴索的看效率其。11跳跃帝表为了谦在动版态变饺化中单维持倒跳跃辱表中妹附加它指针自的平克衡性完,必棒须使母跳跃尘表中k级结顶点数愉维持号在总躲结点精数的线一定杏比例大范围病内。伸注意有到在瓶一个楼完全雹跳跃域表中矿,50堵%的指扮针是0级指位针;25床%的指蠢针是1级指袍针;…;(1劝00睡/2k+扬1)%的指况针是k级指组针。蛙因此狐,在搁插入疏一个骑元素神时,址以概啄率1/意2引入挥一个0级结挑点,林以概虏率1/挠4引入埋一个1级结孝点,…,以窝概率1/错2k+渡1引入是一个k级结络点。缘瑞另一也方面尚,一何个i级结哲点指旁向下使一个猛同级色或更拼高级况的结贯点,屠它所馒跳过罚的结句点数怪不再游准确夜地维慈持在2i沙-1。经贤过这手样的屈修改蝇,就浊可以年在插赏入或围删除稻一个姓元素副时,俊通过赢对跳章跃表圣的局蚀部修乎改来翠维持外其平赌衡性戏。12跳跃痒表在一请个完劣全跳嘉跃表羞中,甜具有i级指眉针的守结点液中有茶一半漠同时升具有i+披1级指以针。韵为了担维持丢跳跃淡表的暴平衡错性,哲可以锤事先袄确定斜一个趴实数0<倍p<徐1,并佛要求界在跳耕跃表拆中维油持在他具有i级指千针的锦结点满中同住时具磁有i+英1级指衬针的捞结点渠所占哑比例乞约为p。为圣此目割的,年在插杯入一戏个新斑结点毙时,姜先将检其结浊点级俗别初弹始化但为0,然宜后用沸随机删数生里成器琴反复蓝地产天生一妙个[0,1]间的冲随机搬实数q。如丑果q<浩p,则多使新线结点恋级别拉增加1,直悄至qp。由孙此产荣生新辉结点聚级别栋的过妙程可满知,浪所产须生的透新结饲点的按级别信为0的概免率为1-肥p,级大别为1的概故率为p(含1-愧p),…,级霉别为i的概膀率为pi(1洞-p启)。如启此产爹生的弯新结继点的笼级别朋有可偶能是碗一个娃很大挠的数输,甚衫至远思远超宴过表杆中元澡素的敲个数盲。为晴了避霞免这采种情穿况,拾用等作为单新结赤点级择别的粘上界触。其贴中n是当廉前跳救跃表柔中结习点个左数。奏当前佳跳跃迎表中锦任一叙结点仰的级梢别不攻超过13拉斯画维加贩斯(圣La摸s勉Ve着ga孝s张)算法拉斯具维加旨斯算征法的久一个遍显著席特征撞是它呀所作上的随得机性司决策北有可放能导笛致算药法找帜不到矛所需赛的解舒。vo孔idob挤st珠in公at祖e(O闯bj超ec秒t疗x,幕O筝bj砍ec物t女y){/妈/反复弄调用完拉斯浩维加且斯算币法LV测(x煮,y崭),直摊到找皂到问驱题的纲一个怒解ybo土olsu马cc暮es寺s=辈f怎al陷se蝇;wh侦il啊e吉(!衣su灾cc没es劫s)誉s站uc雄ce陕ss韵=lv(x淘,y守);}设p(谊x)是对思输入x调用池拉斯愁维加荐斯算课法获辆得问凝题的迟一个作解的茎概率亭。一磨个正遍确的援拉斯闻维加聪斯算符法应拍该对序所有爱输入x均有p(跑x)等>0。设t(霉x)是算寇法ob先st御in教at洗e找到昼具体串实例x的一及个解废所需逮的平堡均时转间,s售(x证)和e(京x)分别赚是算蓄法对直于具舌体实盗例x求解灶成功渴或求揪解失昼败所龄需的姐平均仙时间弃,则熊有:解此座方程但可得开:14n后问熄题对于n后问悠题的滴任何百一个碧解而骆言,内每一怒个皇拖后在阔棋盘遵上的饮位置栽无任犹何规先律,填不具镜有系歌统性语,而辞更象免是随叙机放折置的突。由罪此容霞易想险到下粮面的拉斯勺维加迈斯算尽法。在棋谱盘上冻相继奇的各睛行中健随机寨地放轮置皇伪后,捞并注屈意使笼新放煤置的屈皇后炸与已尽放置疗的皇卵后互柿不攻窜击,膝直至n个皇洁后均挺已相呈容地选放置肢好,浊或已仆没有盒下一慢个皇侄后的毯可放宅置位精置时大为止奖。如果巷将上菠述随左机放命置策年略与觉回溯桥法相押结合双,可头能会裳获得辅更好弟的效鱼果。掏可以悬先在恭棋盘胞的若情干行君中随哨机地州放置屈皇后抱,然谁后在寸后继笋行中壮用回源溯法潜继续匀放置纠,直胆至找舌到一鸟个解越或宣怖告失盐败。棋随机槽放置缺的皇牵后越泛多,饼后继蚂回溯捏搜索叨所需黑的时抬间就英越少栋,但踩失败细的概丢率也慨就越役大。stopVegaspset01.0000262.00--262.0050.503933.8847.2380.39120.046513.0010.20222.1115整数因子躺分解设n>防1是一螺个整泡数。灵关于尖整数n的因横子分违解问翼题是沈找出n的如塔下形第式的安唯一誓分解籍式:其中袭,p1<p2<…广<pk是k个素跟数,m1,m2,…便,mk是k个正逼整数弊。如果n是一霞个合潮数,怕则n必有垃一个嫌非平辆凡因安子x,1<笼x<邪n,使脊得x可以战整除n。给定推一个早合数n,求n的一稻个非叉平凡贩因子魔的问巷题称碰为整顽数n的因阅子分觉割问伪题。in泪tSp纳li熄t(in昌tn){in到tm奏=创fl铅oo页r(sq视rt(d戏ou民bl烫e(尿n)攀))管;fo暮r目(in铃ti=驳2;至i局<=鞋m;麦i坛++矮)if纠(恋n%致i=壤=0原)查re赚tu奇rn角i交;re涂tu良rn培1赚;}事实守上,拉算法sp愁li厦t(龟n)是对莫范围拢在1~x的所盾有整躬数进荒行了硬试除白而得妹到范叨围在1~x2的任始一整臂数的姿因子瓣分割扔。16Po匹ll农ar厕d算柿法在开矩始时摔选取0~n-公1范围纳内的妄随机躁数,湿然后辞递归叹地由产生惩无穷盘序列对于i=廉2k,以兄及2k<j2k+沸1,算醉法计讨算出xj-xi与n的最此大公改因子d=gc钢d(xj-xi,n)。如铜果d是n的非硬平凡颜因子颗,则搬实现炭对n的一原次分径割,称算法吸输出n的因浴子d。vo扔idPo柳ll呢ar团d(in警tn){/课/求整浑数n因子抬分割玩的拉该斯维殿加斯恳算法Ra罗nd萄om仪Nu星mb剂errn渣d;in宋ti=粉1;in建tx=rn棵d.R秀an价do盲m(恶n)协;边//随机赠整数in轻ty=塌x;in醉tk=酬2;wh钢il店e服(t昆ru星e)唐{i+绳+;x=捞(x连*x役-1绍)%槽n;晒//in御td=gc付d(y尾-x未,n冲);偷//求n的非剧平凡兵因子if写(爷(d掌>1真)他&&索(植d<堡n)京)co碗ut<<斜d<副<en谈dl;if趋(丝式i=锻=k浓)宽{y=矛x;k*真=2毯;}}挥}对Pollard算法更深入的分析可知,执行算法的while循环约次后,Pollard算法会输出n的一个因子p。由于n的最小素因子p,故Pollard算法可在O(n1/4)时间内找到n的一个素因子。17蒙特莲卡罗漂(M抄on衫te此C孔ar确lo寻)算坑法在实贴际应承用中均常会逆遇到棵一些巩问题恒,不镜论采胞用确闪定性严算法份或随捡机化粉算法雹都无祝法保扮证每晕次都刚能得奸到正也确的净解答闯。蒙厌特卡姑罗算词法则韵在一食般情识况下恐可以促保证蔬对问纽奉题的露所有附实例堤都以土高概趴率给略出正抗确解任,但射是通臣常无发法判丢定一铺个具阅体解辽是否信正确商。设p是一坊个实部数,会且1/荡2<左p<怠1。如吩果一瓜个蒙纵特卡剂罗算果法对黑于问痰题的肺任一险实例汁得到傍正确救解的宏概率杨不小雄于p,则哄称该没蒙特肢卡罗锐算法皱是p正确的,双且称p-钱1/率2是该划算法嫩的优势。如果瞧对于厘同一色实例双,蒙居特卡顷罗算商法不穿会给孩出2个不渐同的臂正确芹解答责,则记称该惠蒙特列卡罗栗算法厚是一致治的。有些轮蒙特鄙卡罗钥算法桥除了麦具有陵描述预问题鱼实例竭的输驳入参王数外巨,还轰具有撇描述黎错误射解可袍接受施概率策的参办数。拉这类授算法主的计影算时性间复既杂性筛通常概由问蜻题的抵实例号规模绸以及元错误答解可摧接受卵概率梦的函重数来身描述旋。18蒙特侮卡罗明(M义on眨te或C辱ar采lo踩)算葱法对于绿一个缓一致浩的p正确的蒙特畏卡罗宋算法宁,要包提高篮获得穿正确俩解的俗概率突,只占要执西行该纽奉算法狼若干己次,剃并选栗择出单现频倾次最必高的朴解即稻可。如果芝重复灰调用定一个润一致蹦的(1灶/2适+)正确示的蒙雁特卡裹罗算碰法2m酱-1次,棒得到择正确后解的网概率川至少俱为1-,其草中,对于墓一个仆解所尘给问群题的占蒙特未卡罗船算法MC腰(x抬),如畏果存构在问投题实早例的餐子集X使得版:(1境)当xX时,MC节(x铸)返回铃的解源是正细确的半;(2脆)当xX时,号正确季解是y0,但MC尝(x础)返回穗的解闲未必公是y0。称上辛述算返法MC表(x微)是偏y0的算皆法。重复剖调用腥一个神一致顿的,p正确葡偏y0蒙特严卡罗商算法k次,套可得已到一面个O(乌1-澡(1招-p恭)k)正确拦的蒙全特卡蹈罗算纳法,丑且所木得算甚法仍衡是一攀个一钞致的掏偏y0蒙特佳卡罗袖算法庭。19主元素富问题设T[屯1:午n]是一谋个含栋有n个元衡素的啊数组桥。当|{蜻i|蹦T[施i]艺=x厨}|包>n桶/2时,芳称元胆素x是数刊组T的主拳元素乳。te转mp纲la闹te惊<c迈la缘瑞ss旺T肿yp梦e>bo贴olMa迟jo叹ri界ty(T德yp撞e到*T地,in薯tn){/笛/判定词主元宜素的泛蒙特阵卡罗距算法in待ti=rn也d.R么an悬do途m(罩n)波+1兰;Ty挪pe侵x涉=T失[i摆];姨//随机禽选择伯数组牌元素in餐tk=织0;fo薪r躺(in延tj=粱1;帐j<岔=n崇;j杠++芦)if液(殃T[陵j]星==泳x)窝k叉++星;re垂tu孝rn腰(挑k>狱n/慈2)骆;炎/挨/伍k>棕n/顿2时T含有扬主元惊素}te重mp歪la凶te悠<c暴la疮ss律T惹yp绪e>bo闯olMa劳jo妥ri揭ty推MC(T哈yp僻e度*T座,in拿tn,荣d锯ou申bl们e笼e){/兔/重复扇调用桃算法Ma紧jo矮ri始tyin驾tk=揉ce津il潮(l段og笑(1吓/e齐)/肆lo故g(输2)奖);fo棕r源(in弟ti=遭1;鬼i<姨=k时;i授++玻)if讨(誉Ma政jo咏ri喷ty写(T撤,n签))签r夕et桐ur轻n彻tr励ue该;re苗tu慌rn走f置al坛se瞧;}对于艇任何惕给定馆的>0,算复法ma疮jo站ri看ty背MC重复亿调用lo剃g(欲1/)次算戴法ma梢jo赞ri爽ty。它矮是一与个偏诞真蒙结特卡素罗算拒法,涝且其贿错误统概率惊小于。算共法ma陕jo习ri烘ty驾MC所需奋的计帽算时蜂间显瞎然是O(nl凝og(1腥/))。20素数测试Wi梨ls开on定理:对于宇给定些的正舰整数n,判葬定n是一源个素私数的花充要他条件地是(n询-1亮)!-1念(m烦od患n绢)。费尔藏马小挎定理:如果p是一筹个素籍数,素且0<犹a<未p,则ap-1(m骂od灵p河)。二次风探测眨定理:如果p是一贞个素障数,武且0<个x<斑p,则蛇方程x21(舱mo蓬d反p)的解赶为x=喂1,p-嗽1。vo暑idpo制we岩r(距un斧si金gn栗edin绑ta,残u松ns涂ig章ne伙din篮tp,un雕si野gn投edin纽奉tn,糟un船si盐gn废
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026湖北武汉刘三屋中医骨伤医院招聘49人备考题库【轻巧夺冠】附答案详解
- 2026广东佛山南海区丹灶镇仙湖幼儿园招聘备考题库含答案详解【黄金题型】
- 2026浙江宁波华侨温德姆至尊豪廷大酒店招聘2人备考题库及完整答案详解1套
- 2026第一季度湖北黄冈市重点企业急需紧缺岗位需求信息笔试历年备考题库附带答案详解
- 2026春季深圳供电局有限公司校园招聘备考题库【夺冠】附答案详解
- 2026福建福州润楼运营管理有限公司招聘1人笔试历年常考点试题专练附带答案详解
- 2026湖南港航水利集团启动校园招聘64人笔试历年典型考点题库附带答案详解
- 2026浙江宁波东方人力资源服务有限公司招聘编外人员2人笔试历年典型考点题库附带答案详解
- 2026上海市信息安全测评认证中心招聘2人备考题库带答案详解(完整版)
- 2026江西吉安市吉州区园投人力资源服务有限公司面向社会招聘劳务外包人员拟入闱及考察人员笔试历年备考题库附带答案详解
- 《油气管道地质灾害风险管理技术规范》SYT 6828-2024
- 2026年宁夏工业职业学院单招职业技能考试题库含答案详解(完整版)
- IMPA船舶物料指南(电子版)
- 筹码分布技术入门与实战
- 牙隐裂的诊断及治疗课件
- GB/T 554-2023船舶和海上技术船舶系泊和拖带设备海船用钢质焊接带缆桩
- 历年中考真题分类汇编数学
- 二元二次方程组的解法(第1课时)(课件)八年级数学下册(沪教版)
- 外科学课件:第36章 阑尾疾病
- FZ/T 54131-2021弹性涤纶牵伸丝/涤纶预取向丝空气变形丝(EDY/POY ATY)
- 最新人教版七年级数学下册课件:算术平方根
评论
0/150
提交评论