![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 54
无天
这个作者很懒,什么都没留下…
展开
-
洗牌算法小结
1. for i:=1 to n do swap(a[i], a[random(1,n)]); // 凑合,但不是真正随机2. for i:=1 to n do swap(a[i], a[random(i,n)]); // 真正的随机算法 其中,random(a,b)函数用于返回一个从a到b(包括a和b)的随机整数。 第一个代码:概率事件总的发生情况有N^N种,第二个代码:概原创 2011-06-15 12:45:00 · 672 阅读 · 0 评论 -
整数拆分成一个非减整数序列的和,求出所有的序列
在网上经常看到这样的类似题:5=1+1+1+1+1,5=1+1+1+2,5=1+1+3。。。一个整数可以写成一些整数的和的形式,列出所有的整数序列,序列从小到大排列。 本题可以采用迭代的方法来解决。假设要考察的整数为N,某个满足要求的序列为A1,A2,,,Ai.(i=原创 2011-07-17 08:45:13 · 1324 阅读 · 0 评论 -
用rand7()构造rand10()
题目:已知有个函数rand7(),它返回1到7的随机自然数,现利用这个rand7()来构造rand10(),使它返回1到10的随机自然数以前在网上看到由rand5()来构造rand7()这样的题目,依次类推,此题解法如下(需要保证概率相同):int rand1原创 2011-09-29 08:55:03 · 726 阅读 · 1 评论 -
猴子分桃子
题目如下:五只猴子分桃。半夜,第一只猴子先起来,它把桃分成了相等的五堆,多出一只。于是,它吃掉了一个,拿走了一堆; 第二只猴子起来一看,只有四堆桃。于是把四堆合在一起,分成相等的五堆,又多出一个。于是,它也吃掉了一个,拿走了一堆;......其他几只猴子也都是 这样分的。问:原创 2011-09-27 13:35:44 · 1472 阅读 · 2 评论 -
高效操作Bash
1 快捷键1.1 注意本文的快捷键表示中, C 表示Ctrl键, M表示Alt健. 这些快捷键中, 有一个小规律, 对字符操作一般是C开头, 对单词操作一般是M开头. 如果你用SecureCRT, 默认的话, 会输入不了Alt开头的快捷键, 因为Alt被当作菜单快捷键了, 可以点 选项 -> 回话选项, 选择tab 终端->仿真->Emacs, 把”使用Alt键作为元键转载 2012-09-02 12:02:06 · 2604 阅读 · 0 评论 -
经典随机抽样面试题
题目是这样的:有一个店老板,他决定从每天光顾他的店的顾客中随机选出一个人, 在当天打烊时给这位顾客发去一份小礼品。a)怎样选才能保证随机?(注意:顾客不是同时来,而且每天会来多少人你不知道,可能打烊前突然来一大拨人,老板只能记住一个人,没法把所有人的信息都记录下来)b)如果店老板每天不是送一个人礼品,而是送 k 个人礼品, 怎么办?c)每个顾客有一个会员级别,级别越高的人获奖概原创 2013-05-16 07:41:11 · 2742 阅读 · 0 评论 -
根据用户的积分进行排名
问题某海量用户网站,用户拥有积分,积分可能会在使用过程中随时更新。现在要为该网站设计一种算法,在每次用户登录时显示其当前积分排名。用户最大规模为2亿;积分为非负整数,且小于100万。PS: 据说这是迅雷的一道面试题,不过问题本身具有很强的真实性,所以本文打算按照真实场景来考虑,而不局限于面试题的理想环境。存储结构首先,我们用一张用户积分表user_score来保存用户的积分信息转载 2014-07-19 23:12:25 · 3784 阅读 · 0 评论