随笔分类 -  题目

[趣题]生成多个质数的幂积序列
摘要:给定三个质数 3,5,7,需要得到从小到大排列的前k个合数,只能包含这三个质因子。比如k=4,那么结果是1,3,5,7初看上去感觉有点乱,貌似没有办法简单的根据第k-1个数计算第k个数,但是很显然的是,第k个数只能是用前k-1个数中的某个数乘以3或者5或者7得到。这样,我们可以认为存在3个子序列,分别对当前序列的元素乘以3或5或7,后续元素是这三个子序列归并得到,每个子序列有一个索引标示当前需要操作的元素,序列里的下一个元素总是选择这三个子序列的当前元素中最小的值,选中之后,子序列当前元素后移一个。然后重复此操作,就可以得到K个元素,算法复杂度O(n)。#include #include us 阅读全文

posted @ 2013-10-08 00:19 macrosoft 阅读(521) 评论(0) 推荐(0)

算法导论的一道课后练习题,挺有意思
摘要:这个题目的题意是这样的:有N个人,分为好人和坏人两种,每次你可以挑两个人出来让他们互相指识彼此是好还是坏。好人一定说实话,坏人会乱说。现在你要从他们里面找出一个肯定是好人的。一共有三问:(1)证明若好人数目不超过N/2,则坏人们总可以通过故意捣乱,让你找不出正确答案。(2)证明若好人数大于N/2,存在一种方法可以通过floor(N/2)次判断使问题规模缩小到最多只有原来的一半。(3)证明若好人数大于N/2,可以用theta(N)次判断找出一个好人。这个题目我琢磨了半天,确实很巧妙,值的思考,我的证明如下:记T=好人,F=坏人那么两个人AB的指认结果可能为TT,TF,FT,FF。TT对应的可能是 阅读全文

posted @ 2013-09-26 15:22 macrosoft 阅读(366) 评论(0) 推荐(0)

某知名存储公司的几道面试题目
摘要:这是从网上看到的某知名存储公司的面试题目,我觉得题目设计的不错,贴上来供参考。4. What are the most reasonable two numbers to follow the sequence:A. 124, 217B. 125, 217C. 125, 215D. 126, 215E. None of the above5. If F(n)=50!*5^n(5^n是5的n次方的意思), (n is positive integer), what number is the least value of n such that F(n) and F(n+1) have the 阅读全文

posted @ 2013-09-26 15:18 macrosoft 阅读(1412) 评论(0) 推荐(0)

一个考察fork的题目
摘要:下面这个程序,让你计算一下产生多少个子进程。int main(){ fork(); fork()&&fork()||fork(); fork();}解答:fork的基本性质大家都知道,返回0是子进程,返回1是父进程。这个题目容易让人晕菜,所以要掌握方法。下面用图示的方法看看它的执行过程。 2(第一个fork后) ----- +2(执行第二个fork之后) -(返回值为0)-- +2 (短路&&,执行第四个fork) | (返回值为1) | +2(执行第三个fork) -(返回值为0)-- +2(执行第四个fork)... 阅读全文

posted @ 2013-09-26 15:16 macrosoft 阅读(149) 评论(0) 推荐(0)

两道趣味题目
摘要:1.两个人在一个圆桌上摆硬币,轮流摆,每次一枚,如果谁最后没有地方摆了,就算输。如果你先摆,怎么摆能保证赢? 解答: 现在中央摆一枚,以后对方每次放一枚,我就在圆心对称的位置放一枚,这样可以保证赢。2.两堆石头,一堆4个,一堆7个,两个人轮流拿,每次可以拿任意多个,但智能从一个堆里拿,如果最后剩下一个石子,谁拿到谁输,如果你先拿怎么保证赢? 解答: 先从7个的堆中拿走3个,这样两堆都剩下4个,以后他拿那堆,你就拿另一堆,保证两堆数目相同或者只剩下一个石子,这样最后一定能赢。 阅读全文

posted @ 2013-09-26 15:16 macrosoft 阅读(201) 评论(0) 推荐(0)

导航