随机数生成算法和洗牌算法

1 伪随机数 什么是随机数?通俗说法就是随机产生一个数,这个数预先不能计算出来,并且每个数字出现的概率是一样的。随机数必须满足以下两个条件: 不可计算性。即在随机数产生前,不能通过任何方式计算出来。 机会均等性。即需要保证每个数出现的概率是相等的。 在生活中,随机数产生其实并不难,比如通过掷骰子的方式就可以很容易获取一个随机数。但计算机产生随机数却并不容易。在编程中,我们经常调用随机数生成器函数,但其实产生的并不是真正的随机数,而是通过一定的算法计算出来的(不满足随机数的不可计算性),我们称它为伪随机数! ...

October 24, 2014 · 6 min · 2951 words · Ringi Lee

小米2013校招笔试算法题-朋友圈

题目描述:假如已知有n个人和m对好友关系(存于数字r)。如果两个人是直接或间接的好友(好友的好友的好友…),则认为他们属于同一个朋友圈,请写程序求出这n个人里一共有多少个朋友圈。 假如:n = 5 , m = 3 , r = {{1 , 2} , {2 , 3} , {4 , 5}},表示有5个人,1和2是好友,2和3是好友,4和5是好友,则1、2、3属于一个朋友圈,4、5属于另一个朋友圈,结果为2个朋友圈。 最后请分析所写代码的时间、空间复杂度。评分会参考代码的正确性和效率。 ...

October 27, 2013 · 2 min · 993 words · Ringi Lee