2011年7月15日

算法导论-7-6 对区间的模糊排序

摘要: 【转】《算法导论》chapter7 problem7-6对区间的模糊排序考虑这样一种排序问题,即无法准确的知道等排序的各个数字到底是多大.对于其中的每个数字,我们只知道它落在实轴上的某个区间内.亦即,给定的 n 个形如[ai, bi ]的闭区间,其中ai,≤bi .算法的目标是对这些区间进行模糊排序(fuzzy-sort),亦即,产生各区间的一个排序<i1, i2, i3, i4,…in >,使得存在一个 cj ∈[ai, bi ],满足c1≤c2≤…≤cn .a)为n个区间的模糊排序设计一个算法,你的算法应该具有算法的一般结构,它可以快速排序左部端点(即各ai ),也要能充分利用 阅读全文

posted @ 2011-07-15 22:20 龙豆 阅读(1990) 评论(0) 推荐(1)

算法导论-5.1-2

摘要: 【转】描述random(a, b)过程的一种实现,它只调用random(0,1)。作为a和b的函数,你的程序期望运行时间是多少?这个题目相当于在能随机生成0,1的前提下,要求生成[0, 1, ...,n-1]范围内的一个整数1 求出最小的 m,使2^m >= n-12 通过random(0,1),产生一个m比特的整数,这样能随机产生[0, 2^m-1]内的整数,若产生的整数位于[0, n-1]内,则取这个数作为结果。如果这个数在[0,n-1]外,则丢弃它,再次运行算法重新生成一个。 a) 证明上述算法可以产生 [0, n-1]范围内的随机数在范围[0,1, ..., n-1, n, .. 阅读全文

posted @ 2011-07-15 21:57 龙豆 阅读(943) 评论(0) 推荐(0)

poj-1980 Unit Fraction Partition **

摘要: /* * 本以为这题剪枝会很难,没想到1A了。。32ms * 这个题的难点是分数的处理。。不要用double。。精度难以把握。。 * */#include <cstdio>#include <cmath>using namespace std;int p, q, a, n, tot; //如题目定义,tot为答案//p1/q1 和 p2/q2 比较大小int inline frac_cmp(int p1, int q1, int p2, int q2){ return p1 * q2 - p2 * q1;}/*int inline gcd(int a, int b){ 阅读全文

posted @ 2011-07-15 21:22 龙豆 阅读(961) 评论(0) 推荐(1)

算法导论-4-6 VLSI芯片测试

摘要: 【转】问题:Diogenes 教授有n个被认为是完全相同的VLSI芯片,原则上它们是可以互相测试的.教授的测试装置一次可测试二片,当该装置中放有两片芯片时,每一片就对另一片作测试并报告其好坏.一个好的芯片总能够正确的报告另一片的好坏,但一个坏的芯片的结果就是不可靠的.这样,每次的测试的四种可能结果如下: a)证明若少于 n/2 的芯片是坏的,在这种成对测试方式下,使用任何策略都不能确定哪个芯片是好的.b)假设有多于 n/2 的芯片是好的,考虑从 n 片中找出一片好芯片的问题.证明 n/2 对测试就足以使问题的规模降至近原来的一半.c)假设有多于 n/2 的芯片是好的,证明好的芯片可用 O(n) 阅读全文

posted @ 2011-07-15 19:32 龙豆 阅读(2821) 评论(0) 推荐(0)

算法导论-4-2 找出所缺的整数

摘要: 【转】 问题: 某数组A[1..n]含有所有从0..n的所有整数,但其中有一个整数不在数组中,通过利用一个辅助数组B[0..n]来记录A中出现的整数,很容易在O(n)时间内找出所缺的整数。但在这个问题中,我们却不能由一个单一操作来访问A中的一个完整整数,因为A中元素是以二进制表示的。我们所能用的唯一操作就是“取A[i]的第j位”这个操作所花时间为常数。证明:如果访问数组A中信息的唯一方式是这种单一位操作,仍能在O(n)时间内找出所缺的整数。A之外的任一完整整数仍然可以由一个单一操作来访问。【算法导论 中文版P504-2】 昨天晚上看算法导论看到了这一题,没有想多久,没想通。当时想的是把A中的每 阅读全文

posted @ 2011-07-15 19:19 龙豆 阅读(2337) 评论(1) 推荐(1)

导航