随机化算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
考虑a的倍数:m1=a,m2=2a,m3=3a,…,mp-1=(p-1)a (1)证明这些整数中任意两个都不能模p同余。 反证法:假设ms ≡mr(mod p) 1<=r<s<=p-1 即ms-mr=np (s-r)*a=np 这不可能,因为p为素数且s-r<p,p不能整除a, 所以p不可能是(s-r)a的因子。得证结论。
投票
新浪体育最近进行了一次调查,曼联能否在 今年问鼎欧洲冠军。记者一共抽取了n位同学 作为参与者。每个参与者的心里都有一个看 法,比如A认为曼联不可能夺冠,而B认为曼 联一定问鼎。但是因为B是A的好朋友,所以 可能A为了迁就自己的好朋友,会在发言中 支持曼联。也就是说每个参与者发言时阐述 的看法不一定就是心里所想的。现在告诉你 大家心里的想法和参与者的朋友网,希望你 能安排每个人的发言内容,使得违心说话的 人的总数与发言时立场不同的朋友(对)的 总数的和最小。人数<300。
爬山法的原理和应用
然而,爬山法有一个较大的缺陷。如图所示
从上图中我们可以很明显地看出,简单地从斜坡滑 下不一定会产生全局最优解。最后的解会是一个局 部范围内的最小值,它比邻近解的表现都好,但却 不是全局最优的。全局最优解就是全局最小值,它 是优化算法最终应该找到的那个解。解决这一难题 的一种方法被称为随机重复爬山法(random-restart hill climbing),即让爬山法以多个随机生成的初始解 为起点运行若干次,借此希望其中有一个解能够逼 近全局的最小值。
数据范围很小,直接模拟很多次算平均次数。
N皇后问题
在N*N的国际象棋盘上摆放八个皇后,使其不能互相攻击, 即任意两个皇后都不能处于同一行、同一列或同一斜线上, 给出任意一种摆法即可。(N<80)
N皇后问题是一道经典的搜索题,对于每一行枚举这一行的皇后放在哪 个位置,并与已放过的皇后判断是否冲突,若不冲突,搜索下一行, 否则回溯。虽然只要输出一组解,但是当n达到几十时还是远远超出了 时限。究其原因还是因为每次的枚举都是有序的,或是从右往左,或 是从左往右,很容易判断到冲突而回溯,从而耗费了时间。因此对于 这种情况,有一个很有效的方法来减少回溯的次数,那就是随机化。 对于一行,我们并不依次枚举皇后的位置,而是随机皇后的位置,这 样就可以达到非常理想的效果,即使是80皇后也能在时限内出解。
爬山法
从当前的节点开始,和周围的邻居节点的值进行比 较。 如果当前节点是最大的,那么返回当前节点, 作为最大值(既山峰最高点);反之就用最高的邻居节 点来,替换当前节点,从而实现向山峰的高处攀爬 的目的。如此循环直到达到最高点。这样可以避免 遍历,通过启发选择部分节点,从而达到提高效率 的目的。但是因为不是全面搜索,所以结果可能不 是最佳。爬山算法一般存在以下问题: 1)、局部最大:某个节点比周围任何一个邻居都 高,但是它却不是整个问题的最高点。 2)、高地:也称为平顶,搜索一旦到达高地,就 无法确定搜索最佳方向,会产生随机走动,使得搜 索效率降低。
取数
设有N 个正整数(1 <= N <= 50),其中每一个均是大于 等于1、小于等于10000的数。从这N个数中任取出若干个 数(不能取相邻的数),要求得到一种取法,使得到的和 为最大。 例如:当N=5时,有5个数分别为:13,18,28,45,21 此时,有许多种取法,如: 13,28,21和为62 13,45和为58 18,45和为63 ………. 和为63应该是满足要求的一种取法。
这题很容易就能想到动态规划的算法,有容易实现的标准算法还是不要 想随机化算法了。
费马小定理
费马小定理:对于素数p和任意整数a有a^p≡a(mod p) 费马小定理同时也有另外一个等价的形式,即如果P 是任意一个不能整除整数a的素数,则 a^(p1)≡1(mod p) 下面我们给出费马小定
爬山法以一个随机解开始,然后在其临近的解集中 寻找更好的题解(具有更低的成本)。这类似于从 斜坡上向下走,如图所示。
想象一下你就是图中所示的那个人,不经意间陷入 了这块区域中,并且想走到最低点去寻找水源。为 此我们可以选择任何一个方向,然后朝着最为险峻 的斜坡向下走去。你可以朝着最为险峻的斜坡方向 一直走下去,直至到达地势平坦或坡度开始向上倾 斜的区域。
其实随机化算法没有多少实质内容,那些 平时被提及很多的爬山法、遗传算法真正 用的很少,实战中更多的是想得到想不到。 记得有句话:“不要第一个就想到随机算 法,也不要最后一个才想到随机算法。” 有时他能得高分,有时甚至不如暴力算法, 具体应用还要自己体会。这个ppt主要是讲 一些随机化算法应用的经典例子。
费马小定理的证明
(2)证明这些数中没有一个能和0同余。 证明:因为1, …, (p-1)都小于p,且p为素数,p不能整 除a,因此p不能整除 (3)结论:若ab ≡0(mod d) 则当且仅当d为素数时,则a ≡0(mod d) 或者 b ≡0(mod d)
费马小定理的证明
由(1)和(2)可得,m1,m2,m3,……,mp-1 mod p必须对应于余数1,2,3, ……, (p-1)。 根据同余式乘法性质可得: 1*2*3*……*(p-1)*ap-1=m1*m2*m3*……*mp-1 ≡1*2*3*……*(p-1) (mod p) 令k= 1*2*3*……*(p-1),则 k*ap-1 ≡k(mod p) k(ap-1-1) ≡0(mod p) 由(3)可知,因为k不能整除p,且p为素数 所以ap-1必然被p整除,即得费马小定理a^(p-1)≡1(mod p) 。
计算圆面积交
告诉你在平面直角坐标系中两个圆的坐标和半径, 求两个圆重叠部分的面积。输入均为实数,横、 纵坐标的绝对值均不超过100,半径不超过100。
数据范围很小,随机撒点即可,需要注意的是撒 点的数量。
抛硬币
现在你开始抛硬币,只有当你连着抛出N次正面 的时候才能结束。现在问你抛硬币次数的数学期 望是多少。简单来说,就是平均要抛多少次才能 结束。(N<7)
投票
本题的本质是一个网络流的模型,在本章中 就不加以介绍了。这里要重点讲一下用随机 化算法如何解决这个问题。首先最简单的随 机化就是直接随机每个人的发言内容,可以 用0和1来表示两种状态,然后计算这种情况 下的结果,再重复多次操作找出最优解。这 样的随机化显然太幼稚了。因此我们引入随 机化中一个重要的方法——调整!对于随机 出来的每一种方案,我们要对每个人做一次 判断,看如果他说了与当前状态相反的话, 最后的结果是否会更优,如果更优,则修改 他的状态,再对所有人判断是否能调整。运 用这种方法就可以通过所有的测试数据了。
费马小定理判断素数
由此定理,判断一个数是否为素数,只要随机选取 几个a用上面的公式进行判断。但费马小定理只是素 数判定的一个必要条件,满足费马小定理条件的整 数n未必全是素数,有些合数也满足费马小定理的条 件,这些和数被称做Carmichael数,前3个Carmichael 数是561,1105,1729。Carmichael数是非常少的。在 1~100000000范围内的整数中,只有255个Carmichael 数。利用下面的二次探测定理可以对上面的素数判 定算法作进一步改进,以避免将Carmichael数当作素 数。 二次探测定理 如果p是一个素数,且0<x<p,则方程 x^2≡1(mod p)的解为x=1,p-1。
投票
新浪体育最近进行了一次调查,曼联能否在 今年问鼎欧洲冠军。记者一共抽取了n位同学 作为参与者。每个参与者的心里都有一个看 法,比如A认为曼联不可能夺冠,而B认为曼 联一定问鼎。但是因为B是A的好朋友,所以 可能A为了迁就自己的好朋友,会在发言中 支持曼联。也就是说每个参与者发言时阐述 的看法不一定就是心里所想的。现在告诉你 大家心里的想法和参与者的朋友网,希望你 能安排每个人的发言内容,使得违心说话的 人的总数与发言时立场不同的朋友(对)的 总数的和最小。人数<300。
爬山法的原理和应用
然而,爬山法有一个较大的缺陷。如图所示
从上图中我们可以很明显地看出,简单地从斜坡滑 下不一定会产生全局最优解。最后的解会是一个局 部范围内的最小值,它比邻近解的表现都好,但却 不是全局最优的。全局最优解就是全局最小值,它 是优化算法最终应该找到的那个解。解决这一难题 的一种方法被称为随机重复爬山法(random-restart hill climbing),即让爬山法以多个随机生成的初始解 为起点运行若干次,借此希望其中有一个解能够逼 近全局的最小值。
数据范围很小,直接模拟很多次算平均次数。
N皇后问题
在N*N的国际象棋盘上摆放八个皇后,使其不能互相攻击, 即任意两个皇后都不能处于同一行、同一列或同一斜线上, 给出任意一种摆法即可。(N<80)
N皇后问题是一道经典的搜索题,对于每一行枚举这一行的皇后放在哪 个位置,并与已放过的皇后判断是否冲突,若不冲突,搜索下一行, 否则回溯。虽然只要输出一组解,但是当n达到几十时还是远远超出了 时限。究其原因还是因为每次的枚举都是有序的,或是从右往左,或 是从左往右,很容易判断到冲突而回溯,从而耗费了时间。因此对于 这种情况,有一个很有效的方法来减少回溯的次数,那就是随机化。 对于一行,我们并不依次枚举皇后的位置,而是随机皇后的位置,这 样就可以达到非常理想的效果,即使是80皇后也能在时限内出解。
爬山法
从当前的节点开始,和周围的邻居节点的值进行比 较。 如果当前节点是最大的,那么返回当前节点, 作为最大值(既山峰最高点);反之就用最高的邻居节 点来,替换当前节点,从而实现向山峰的高处攀爬 的目的。如此循环直到达到最高点。这样可以避免 遍历,通过启发选择部分节点,从而达到提高效率 的目的。但是因为不是全面搜索,所以结果可能不 是最佳。爬山算法一般存在以下问题: 1)、局部最大:某个节点比周围任何一个邻居都 高,但是它却不是整个问题的最高点。 2)、高地:也称为平顶,搜索一旦到达高地,就 无法确定搜索最佳方向,会产生随机走动,使得搜 索效率降低。
取数
设有N 个正整数(1 <= N <= 50),其中每一个均是大于 等于1、小于等于10000的数。从这N个数中任取出若干个 数(不能取相邻的数),要求得到一种取法,使得到的和 为最大。 例如:当N=5时,有5个数分别为:13,18,28,45,21 此时,有许多种取法,如: 13,28,21和为62 13,45和为58 18,45和为63 ………. 和为63应该是满足要求的一种取法。
这题很容易就能想到动态规划的算法,有容易实现的标准算法还是不要 想随机化算法了。
费马小定理
费马小定理:对于素数p和任意整数a有a^p≡a(mod p) 费马小定理同时也有另外一个等价的形式,即如果P 是任意一个不能整除整数a的素数,则 a^(p1)≡1(mod p) 下面我们给出费马小定
爬山法以一个随机解开始,然后在其临近的解集中 寻找更好的题解(具有更低的成本)。这类似于从 斜坡上向下走,如图所示。
想象一下你就是图中所示的那个人,不经意间陷入 了这块区域中,并且想走到最低点去寻找水源。为 此我们可以选择任何一个方向,然后朝着最为险峻 的斜坡向下走去。你可以朝着最为险峻的斜坡方向 一直走下去,直至到达地势平坦或坡度开始向上倾 斜的区域。
其实随机化算法没有多少实质内容,那些 平时被提及很多的爬山法、遗传算法真正 用的很少,实战中更多的是想得到想不到。 记得有句话:“不要第一个就想到随机算 法,也不要最后一个才想到随机算法。” 有时他能得高分,有时甚至不如暴力算法, 具体应用还要自己体会。这个ppt主要是讲 一些随机化算法应用的经典例子。
费马小定理的证明
(2)证明这些数中没有一个能和0同余。 证明:因为1, …, (p-1)都小于p,且p为素数,p不能整 除a,因此p不能整除 (3)结论:若ab ≡0(mod d) 则当且仅当d为素数时,则a ≡0(mod d) 或者 b ≡0(mod d)
费马小定理的证明
由(1)和(2)可得,m1,m2,m3,……,mp-1 mod p必须对应于余数1,2,3, ……, (p-1)。 根据同余式乘法性质可得: 1*2*3*……*(p-1)*ap-1=m1*m2*m3*……*mp-1 ≡1*2*3*……*(p-1) (mod p) 令k= 1*2*3*……*(p-1),则 k*ap-1 ≡k(mod p) k(ap-1-1) ≡0(mod p) 由(3)可知,因为k不能整除p,且p为素数 所以ap-1必然被p整除,即得费马小定理a^(p-1)≡1(mod p) 。
计算圆面积交
告诉你在平面直角坐标系中两个圆的坐标和半径, 求两个圆重叠部分的面积。输入均为实数,横、 纵坐标的绝对值均不超过100,半径不超过100。
数据范围很小,随机撒点即可,需要注意的是撒 点的数量。
抛硬币
现在你开始抛硬币,只有当你连着抛出N次正面 的时候才能结束。现在问你抛硬币次数的数学期 望是多少。简单来说,就是平均要抛多少次才能 结束。(N<7)
投票
本题的本质是一个网络流的模型,在本章中 就不加以介绍了。这里要重点讲一下用随机 化算法如何解决这个问题。首先最简单的随 机化就是直接随机每个人的发言内容,可以 用0和1来表示两种状态,然后计算这种情况 下的结果,再重复多次操作找出最优解。这 样的随机化显然太幼稚了。因此我们引入随 机化中一个重要的方法——调整!对于随机 出来的每一种方案,我们要对每个人做一次 判断,看如果他说了与当前状态相反的话, 最后的结果是否会更优,如果更优,则修改 他的状态,再对所有人判断是否能调整。运 用这种方法就可以通过所有的测试数据了。
费马小定理判断素数
由此定理,判断一个数是否为素数,只要随机选取 几个a用上面的公式进行判断。但费马小定理只是素 数判定的一个必要条件,满足费马小定理条件的整 数n未必全是素数,有些合数也满足费马小定理的条 件,这些和数被称做Carmichael数,前3个Carmichael 数是561,1105,1729。Carmichael数是非常少的。在 1~100000000范围内的整数中,只有255个Carmichael 数。利用下面的二次探测定理可以对上面的素数判 定算法作进一步改进,以避免将Carmichael数当作素 数。 二次探测定理 如果p是一个素数,且0<x<p,则方程 x^2≡1(mod p)的解为x=1,p-1。