(1)试证明下面的算法Primality能以80%以上的正确率判定给定的整数n是否为素数.另一方面,举出整数n的一个例子,表明算法对此整数n总是给出错误的解答,进而说明该算法不是一个蒙特卡罗算法.
(2)试找出,上述算法Primality中可用于替换整数30030的另一个整数(可使用大整数),使得用此整数代替30030后,算法的正确率提高到85%以上.
若信号波形和电路结构仍如图3-16所示,波形参数为T=5μs,T=10μs.
(1)适当设计电路参数,能否分别从矩形波中选出以下频率分量的正弦信号:50kHz,100kHz,150kHz,200kHz,300kHz,400kHz?
(2)对于那些不能选出的频率成分,试分别利用其他电路(示意表明)获得所需频率分量的信号(需用到电路、模拟电路、数字电路等课程的综合知识,可行方案可能不止一种).
若将森林中的每棵树视作一个等价类,则Kruskal算法迭代过程所涉及的计算不外乎两类:
支持以上操作接口的数据结构,即所谓的独立集(disjoint set),亦称作并查集(union-find set)。
a)试基于此前介绍过的基本数据结构实现并查集,并用以组织Kruskal算法中的森林;
b)按你的实现,find()和union()接口的复杂度各是多少?相应地,Kruskal算法的复杂度呢?
问题描述:一个餐厅在相继的N天里,每天需用的餐巾数不尽相同.假设第i天需要ri块餐巾(i=1,2,...,N).餐厅可以购买新的餐巾,每块餐巾的费用为p分;或者把旧餐巾送到快洗部,洗一块需m天,其费用为f分;或者送到慢洗部,洗一块需n天(n>m),其费用为s分(s<f).每天结束时,餐厅必须决定将多少块脏的餐巾送到快洗部,多少块餐巾送到慢洗部,以及多少块保存起来延期送洗.但是每天洗好的餐巾和购买的新餐巾数之和要满足当天的需求量.试设计一个算法,为餐厅合理地安排好N天中餐巾使用计划,使总的花费最小.
算法设计:编程找出一个最佳餐巾使用计划.
数据输入:由文件input.txt提供输入数据.文件第1行有6个正整数N、p、m、f、n、s.N是要安排餐巾使用计划的天数,p是每块新餐巾的费用,m是快洗部洗一块餐巾需用天数,f是快洗部洗一块餐巾需要的费用,n是慢洗部洗一块餐巾需用天数,s是慢洗部洗一块餐巾需要的费用.接下来的N行是餐厅在相继的N天里,每天需用的餐巾数.
结果输出:将餐厅在相继的N天里使用餐巾的最小总花费输出到文件output.txt.