`
kenby
  • 浏览: 716824 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

算法导论习题 5.1 -2

阅读更多

描述random(a, b)过程的一种实现,它只调用random(0,1)。作为a和b的函数,

你的程序期望运行时间是多少?

 

算法描述
这个题目相当于在能随机生成0,1的前提下,要求生成[0, 1, ...,n-1]范围内的一个整数
1 求出最小的 m,使2^m >= n-1
2 通过random(0,1),产生一个m比特的整数,这样能随机产生[0, 2^m-1]内的整数,

若产生的整数位于[0, n-1]内,则取这个数作为结果。如果这个数在[0,n-1]外,则丢弃它,再次运行算法重新生成一个。

 

算法的正确性
 a) 证明上述算法可以产生 [0, n-1]范围内的随机数
在范围[0,1, ..., n-1, n, ..., 2^m-1]范围内,总共有p = 2^m个数,其中合法的数是[0, 1, ..., n-1]共n个,

非法的数为 [n, ..., 2^m-1]共q = 2^m-n个,则有 n + q = p。

 

 

算法最后会产生一个合法的随机数 X,0 <= X <= n-1, 显然 X 是

[0, n-1] 上的一个均匀分布。 P{X = i } = 1/n, 所以上述方法可以产生随机数

 

算法的复杂度

算法的数学模型是: 重复一系列伯努力实验,每次实验成功的概率是 n/p, 失败的概率是 q/p。

在取得一次成功前一共要进行多少次试验?  

设Pi表示产生随机数时运行了i次算法的概率,那么前i-1次产生的都是非法的数,

第i次产生的是合法的数,所以

 

这是典型的几何分布,其期望值等于成功概率的倒数为:  p/n = 2^m / n

  • 大小: 4 KB
  • 大小: 937 Bytes
分享到:
评论

相关推荐

    山东大学2018算法导论图论考试复习总结

    山东大学2018算法导论图论考试复习总结,只考图论部分所以只有图论部分的总结。 本人于考试周吐血总结,包含的内容如下。 算法导论-图论 复习 优质的复习资料 1 基本的图算法 1.1 图的表示 1.2 BFS:广度优先搜索 ...

    算法导论(part2)

    练习题用于考察对基本内容的掌握程度,思考题有一定的难度,需进行精心的研究,有时还通过思考题介绍一些新的知识。 前言回到顶部↑本书提供了对当代计算机算法研究的一个全面、综合性的介绍。书中给出了多个算法,...

    算法导论(part1)

    练习题用于考察对基本内容的掌握程度,思考题有一定的难度,需进行精心的研究,有时还通过思考题介绍一些新的知识。 前言回到顶部↑本书提供了对当代计算机算法研究的一个全面、综合性的介绍。书中给出了多个算法,...

    组合数学的算法与程序设计

    第一章 导论 1.1 组合数学的研究对象 1.2 组合问题的基本解题方法 1.3 回溯法的讨论 习题一 第二章 从鸽笼原理到Ramsey理论 2.1 鸽笼原理 2.2 Ramsey问题和数 习题二 第三章 排列组合信其计数问题 3.1 两个基本计数...

    并行计算导论(原书第2版).[美]Ananth Grama(带详细书签).pdf

    本书系统介绍涉及并行计算的体系结构、编程范例、算法与应用和标准等。覆盖了并行计算领域的传统问题,并且尽可能地采用与底层平台无关的体系结构和针对抽象模型来设计算法。书中选择MPI(Message Passing Interface)...

    数据挖掘导论 中文完整版

    116 4.6.1 估计准确度的置信区间 116 4.6.2 比较两个模型的性能 117 4.6.3 比较两种分类法的性能 118 文献注释 118 参考文献 120 习题 122第5章 分类:其他技术 127 5.1 基于规则的分类器 127 5.1.1 基于规则的分类...

    科学计算导论(第2版).[英]Michael T.Heath(带详细书签).pdf

    丰富的例题和习题,书中包括160多道例题,500多道思考题,240多道练习题和200多道数值计算题。 本书可作为研究生“数值分析”课程的教材或参考书,对于需要解决计算问题的科技人员,本书具有很高的参考价值。 第1章...

    《软件工程导论》张海潘_第五版_清华_课后答案

    作者:张海藩 第1章 软件工程学概述1 1.1 软件危机1 1.1.1 软件危机的介绍1 1.1.2 产生软件危机的原因3 1.1.3 消除软件危机的途径4 1.2 软件工程5 1.2.1 软件工程的介绍5 ...B.5.3 实现编辑程序的算法367

    分布式系统领域教程pdf

    习题 第2章 分布式程序设计语言 2.1 分布式程序设计支持的需求 2.2 并行/分布式程序设计语言概述 2.3 并行性的表示 2.4 进程通信与同步 2.5 远程过程调用 2.6 健壮性 第 3 章 分布式系统设计的形式方法 3.1...

    分布式系统设计 [美]jie wu著 高传善 译

    习题 第2章 分布式程序设计语言 2.1 分布式程序设计支持的需求 2.2 并行/分布式程序设计语言概述 2.3 并行性的表示 2.4 进程通信与同步 2.5 远程过程调用 2.6 健壮性 第 3 章 分布式系统设计的形式方法 3.1...

    图像处理(第二版)章毓晋

    第1章导论.................................................................................................................................. 1 1.0.1 为什么要处理图像?.....................................

Global site tag (gtag.js) - Google Analytics