1000-195-105的算法速度算法着急呢!

专业文档是百度文库认证用户/机构上传的专业性文档,文库VIP用户或购买专业文档下载特权礼包的其他会员用户可用专业文档下载特权免费下载专业文档。只要带有以下“专业文档”标识的文档便是该类文档。

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取,非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档。

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取,非会员用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档。

付费文档是百度文库认证用户/机构上传的专业性文档,需要文库用户支付人民币获取,具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档。

共享文档是百度文库用户免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定。只要带有以下“共享文档”标识的文档便是该类文档。

会员到期时间: 剩余下载个数: 剩余C币: 剩余积分:0

为了良好体验,不建议使用迅雷下载

以下答案纯属个人愚见,作为IT新手,算法代码中难免有逻辑漏洞和其他不足之处,欢迎朋友你点评拍砖,交流争辩能极大开阔思维,愿一起加油进步!^_^

计算机用这段程序在一个小时之内能够得到F(N) 结果的最大N 值是多少?开发F(N) 的一 个更好的实现,用数组保存已经计算过的值。 

1.1.21  编写一段程序,从标准输入按行读取数据,其中每行都包含一个名字和两个整数。然后用printf() 打印一张表格,每行的若干列数据包括名字、两个整数和第一个整数除以第二个整数的结果,精确到小数点后三位。可以用这种程序将棒球球手的击球命中率或者学生的考试分数制成表格。

1.1.22  使用1.1.6.4 节中的rank() 递归方法重新实现BinarySearch 并跟踪该方法的调用。每当该方法被调用时,打印出它的参数lo 和hi 并按照递归的深度缩进。提示:为递归方法添加一个参数来保存递归的深度。 

2 * 递归查找关键词的索引 23 * 二分查找 : 递归描述 60 // 从随机数组中随机抽取一个元素作为关键字

1.1.23  为BinarySearch 的测试用例添加一个参数:+ 打印出标准输入中不在白名单上的值;-,则打印出标准输入中在白名单上的值。 

1.1.24  给出使用欧几里德算法计算105 和24 的最大公约数的过程中得到的一系列p 和q 的值。扩展该算法中的代码得到一个程序Euclid,从命令行接受两个参数,计算它们的最大公约数并打印出每次调用递归方法时的两个参数。使用你的程序计算1 111 111 和1 234 567 的最大公约数。

23 * 使用2300多年前的欧几里得算法求解两数的最大公约数

1.1.25  使用数学归纳法证明欧几里德算法能够计算任意一对非负整数p 和q 的最大公约数。

将已经计算过的值保存在数组中并给出一个更好的实现。

1.1.28  删除重复元素。修改BinarySearch 类中的测试用例来删去排序之后白名单中的所有重复元素。

1.1.29  等值键。为BinarySearch 类添加一个静态方法rank(),它接受一个键和一个整型有序数组(可能存在重复键)作为参数并返回数组中小于该键的元素数量,以及一个类似的方法count() 来返回数组中等于该键的元素的数量。注意:如果i 和j

1.1.30  数组练习。编写一段程序,创建一个N×N 的布尔数组a[][]。其中当i 和j 互质时(没有相同因子),a[i][j] 为true,否则为false。

1.1.31  随机连接。编写一段程序,从命令行接受一个整数N 和double 值p(0 到1 之间)作为参数,在一个圆上画出大小为0.05 且间距相等的N 个点,然后将每对点按照概率p 用灰线连接。

52 * 在圆上画N个点然后每两点间以概率p连接

1.1.32  直方图。假设标准输入流中含有一系列double 值。编写一段程序,从命令行接受一个整数N 和两个double 值l 和r。将(l,r) 分为N 段并使用StdDraw 画出输入流中的值落入每段的数量的直方图。

18 // 查找统计结果中最大值,用于绘制直方图时计算柱状图高时 48 // 从控制台读取应该将数据分割的段数

此图也反映了伪随机数是均匀分布的。

编写一个测试用例,从标准输入读取矩阵并测试所有方法。 

8 // 点乘必须是向量a的长度等于向量b的长度才能运算 18 * 矩阵和矩阵之积 24 // 只有矩阵a的列数等于矩阵b的行数时,相乘才有意义 36 * 矩阵和向量之积 52 * 向量和矩阵之积

1.1.34  过滤。以下哪些任务需要(在数组中,比如)(1)保存标准输入中的所有值?哪些可以(2)被实现为一个过滤器且仅使用固定数量的变量和固定大小的数组(和N无关)?在每个

问题中,输入都来自于标准输入且含有N个0到1的实数。

1.1.35  模拟掷骰子。以下代码能够计算每种两个骰子之和的准确概率分布:

dist[i] 的值就是两个骰子之和为i 的概率。用实验模拟N 次掷骰子,并在计算两个1 到 6 之间的随机整数之和时记录每个值的出现频率以验证它们的概率。N 要多大才能够保证你的经验数据和准确数据的吻合程度达到小数点后三位?

 1 // 色子有六面,数值分别是1、2、3、4、5、6
15  * 根据统计数据计算概率值
26  * 两个色子之和的理论概率值
31 // 统计值出现的理论次数
41  * 用随机数模拟掷色子并统计求出试验概率
47 // 做N次随机试验模拟抛色子,并统计数据
53 // 计算试验概率值
59  * 试验概率值能否与理论概率值至少匹配到小数点后三位数
72  * 测试得到符合要求的试验次数N
85 // 当前N不合要求,则将N扩大10倍
 

1.1.36  乱序检查。通过实验检查表1.1.10 中的乱序代码是否能够产生预期的效果。编写一个程序ShuffleTest,接受命令行参数M 和N,将大小为M 的数组打乱N 次且在每次打乱之前都将数组重新初始化为a[i] = i。打印一个M×M 的表格,对于所有的列j,行i 表示的是i 在打乱后落到j 的位置的次数。数组中的所有元素的值都应该接近于N/M。

1.1.37  糟糕的打乱。假设在我们的乱序代码中你选择的是一个0 到N-1 而非i 到N-1 之间的随机整数。证明得到的结果并非均匀地分布在N! 种可能性之间。用上一题中的测试检验这个版本。

测试结果数据: 

T 遍:生成两个大小为N 的随机6 位正整数数组并找出同时存在于两个数组中的整数的数量。打印一个表格,对于每个N,给出T 次实验中该数量的平均值。

2 * 返回长度为length的随机6位正整数数组 14 * 递归查找关键词的索引 19 * @return 若查找到则返回关键字key的索引值,找不到则返回-1 44 * 统计两个数组中的相同元素个数

本文原创,欢迎转载,请注明本站地址:,:)

我要回帖

更多关于 速度算法 的文章

 

随机推荐