问题描述:在n枚外观相同的硬币中,有一枚是假币,并且已知假币较轻。通过一架来任意比较两组硬币,从而得知两组硬币的重量是否相同,或者哪一组更轻一些,假币问题要求设计一个高效的算法来检测出这枚假币
2021-04-20 13:21:15 1KB MATLAB 假币问题 减治法
1
算法分析基础——Fibonacci序列问题 分治法在数值问题中的应用——最近点对问题 减治法在组合问题中的应用——8枚硬币问题 变治法在排序问题中的应用——堆排序问题 动态规划法在图问题中的应用——全源最短路径问题 3. 实验要求 (1)实现Floyd算法; (2)算法的输入可以手动输入,也可以自动生成; (3)算法不仅要输出从每个顶点到其他所有顶点之间的最短路径,还有输出最短路径的长度; (4)设计一个权重为负的图或有向图的例子,对于它,Floyd算法不能输出正确的结果 3. 实验要求 1)设计与实现堆排序算法; 2)待排序的数据可以手工输入(通常规模比较小,10个数据左右),用以检测程序的正确性;也可以计算机随机生成(通常规模比较大,1500-3000个数据左右),用以检验(用计数法)堆排序算法的时间效率 3. 实验要求 1)设计减治算法实现8枚硬币问题; 2)设计实验程序,考察用减治技术设计的算法是否高效; 3)扩展算法,使之能处理n枚硬币中有一枚假币的问题。 3. 实验要求 1)使用教材2.5节中介绍的迭代算法Fib(n),找出最大的n,使得 第n个Fibonacci数不超过计算机所能表示的最大整数,并给出具体的执行时间; 2)对于要求1),使用教材2.5节中介绍的递归算法F(n)进行计算,同样给出具体的执行时间,并同1)的执行时间进行比较; 3)对于输入同样的非负整数n,比较上述两种算法基本操作的执行次数; 4)对1)中的迭代算法进行改进,使得改进后的迭代算法其空间复杂度为Θ(1); 5)设计可供用户选择算法的交互式菜单(放在相应的主菜单下)
1