网站大量收购独家精品文档,联系QQ:2885784924

b随机地向a提问从s如何到达m1.ppt

  1. 1、本文档共95页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
b随机地向a提问从s如何到达m1

随机性在计算机领域中的作用 随机性的作用 “Randomization is a big idea in computer science.” ---C. E. Leiserson @ MIT 随机性的作用 宾夕法尼亚大学的André DeHon在“Big Ideas in Computer Science in Computer Science and Engineering”中总结了所有计算机学科中有代表性的重要思想,其中多次提到了“随机性”。 1. 随机化的快速排序算法 确定性的快速排序算法 确定性的快速排序算法的效率依赖于pivot值的选取。 只要pivot值的选取方式固定,都存在一些规模为n的输入,使得快速排序算法效率为Θ(n2)。 例如,如果每次选取pivot值为待排序数组的最后一个值,则快速排序算法对于已经排序好的数组效率最低。 也就是说,确定性的快速排序算法希望输入数据没有任何规律,是完全随机的。 随机化的快速排序算法 每次在输入数据中随机地选取pivot值。 不存在任何输入使得随机化的快速排序算法在该输入下复杂度一定为Θ(n2)。 随机化的快速排序算法不依赖于外部输入数据的随机性。 随机算法的作用之一:降低对输入数据随机性的依赖 2. 计算“平均成绩”问题 计算“平均成绩”问题 n个学生P1,P2,…,Pn参加了一次考试,学生Pi的成绩为Ci(1≤i≤n)。现在这n个学生要计算他们的平均成绩,并且保证: (1) 任何一个学生都不泄露自己的成绩。 (2) 即使有k个学生之间相互共享信息,这k个学生最多也只能知道其余n-k个学生的平均成绩。 是否存在一种可行的方案? 协议(protocol) 我们通过设计一个“协议”来解决这个问题。简单地说,“协议”是两个(或两个以上)人为完成某项任务而进行的一系列操作步骤。 最简单的协议是“切蛋糕”协议。 参与者:两个人A和B。 任务:公平地分一块蛋糕。 操作步骤:(1)A把蛋糕切成2块。 (2)B选走其中一块蛋糕。 (3)A取走剩下的那块蛋糕。 计算“平均成绩”问题 参与者: n个学生P1,P2,…,Pn 任务:计算平均成绩(满足前面提到的两个条件) 步骤:? 协议1 思想:假设考试包含n道题目。每个同学Pi负责统计所有同学第i道题目的得分。最后把所有同学的统计结果加起来,得到总成绩。 协议1 (1) 每个学生Pi把自己的成绩分成n份Ci=Ci1+Ci2+…+Cin(其中Cij代表第i个同学第j道题的分数),学生Pi把Cij告诉给学生Pj。 (2) 每个学生Pj计算并公布Dj=C1j+C2j+…+Cnj (所有学生第j道题的得分)。 (3) 计算D1+D2+…+Dn,得到总成绩。 协议1的优点 一方面,为了计算总成绩,每个学生必须把自己的成绩以某种方式发布出去,实现“信息共享”。 另一方面,任何学生都不能直接把自己的成绩告诉给任何人。 每个学生Pi把自己的成绩分成n份,把其中n-1份分别告诉其他n-1个同学。这样每个学生从Pi那得到的只不过是关于学生Pi成绩的“部分信息”。 协议1的缺点 考试未必恰好包含n个考试题目。 假设k个同学共享信息,可以大概估计其他同学的考试分数。 协议2 (1) 每个学生Pi把自己的成绩分成n份Ci=Ci1+Ci2+…+Cin(对任意j, Cij为0和Ci之间的随机数),学生Pi把Cij告诉给学生Pj。 (2) 每个学生Pi计算并公布Di=C1i+C2i+…+Cni (3) 计算D1+D2+…+Dn,得到总成绩。 协议2(例子) 假设n=30,学生P1成绩是90,学生P2成绩是30。则相应的矩阵可能为: 协议2的缺点 假设k个同学共享信息,可以大概估计出:某两个学生Pi和Pj的分数哪个更高。 原因:随机变量Cij为0和Ci之间的随机数,因此可以从Cij中得到关于Ci的统计信息。 协议3 思想: 选取一个数M,使得Cij为0和M之间的随机数。 这样的好处是: 无需担心可以从Cij中得到M的任何统计信息。 协议3 (1) 选取M=101*n,每个学生Pi产生n-1个1到M之间的随机数Cij(i ≠j, 1≤j≤n),计算Cii,使得Ci=Ci1+Ci2+…+Cin(mod M),学生Pi把Cij告诉给学生Pj。 (2) 每个学生Pi计算并公布Di=C1i+C2i+…+Cni(mod M)。 (3) 计算D1+D2+…+Dn (mod M),得到总成绩。 协议3(例子) 假设n=30,选取M=101*30=3030。学生P1成绩是90,学生P2成绩是30。 相应的矩阵可能为: 其中矩阵第一行所有值相加等于3120=90(mod 3030) 其中矩阵第一行所有

文档评论(0)

ailuojue + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档