2个人拿一百个东西,一个人一次能拿1-5个,有没有必胜的方法
1 | 这种题目是考虑倍数的问题。每次最多取 5 个最少 1 个,这样的话就考虑每次取 6, |
A,B从一堆玻璃球(共100个)里向外拿球,规则如下: (1)A先拿,然后一人一次交替着拿; (2)每次只能拿1个或2个或4个; (3)谁拿最后一个球,谁就是最后的失败者;问A,B谁将是失败者?
1 | A是失败者,证明过程如下。 |
有两根不均匀分布的香,香烧完的时间是一个小时,你能用什么方法来确定一段15分钟的时间?
1 | 第一根香先点一端,第二根香在第一根香点燃时候同时把两端点燃,这样第二根香烧完是半小时,此时第一根香也剩半小时,在第二根香烧完的同时把第一根香的另外一端也点燃,那么从第二根香烧完到第一根香烧完的这段时间就是15分钟。 |
抛硬币,正面继续抛,反面不抛。问抛的次数的期望延伸到连续抛 n 次
假设已经连续抛出 n-1 次正面,需要 Tn−1 次。想得到 n 次正面,则再进行一次投掷,若硬币为正面则游戏结束,还需要抛 0 次(Tn=Tn−1+1+0.5∗0+?Tn=Tn−1+1+0.5∗0+?);如果硬币为反面,则游戏重来,还需要投掷0.5∗Tn0.5∗Tn次,递推公式如下所示:
Tn=Tn−1+1+0.5∗0+0.5∗Tn
求出通项公式为: Tn=2^(n+1)−2
在n很大时,我们可以用下面的公式来近似估计: Tn≈1/ (p^(n+1))
网页/应用访问慢突然变慢,如何定位问题
有一个日志,里面记录了客户的登入登出时间(以秒为单位),求在线人数最多的时间段以及人数。
创建一个数组 change[ 243600 ] 用来记录一天中,每秒用户的变化情况,在第 i 秒上线一人change[ i ]++,在第i秒下线一人 change[ i ] - -,change[ i ] 若为正,说明这一秒上线人数大于下线人数,反之亦然。再创建一个online[ 24\3600 ],用来记录每秒在线人数,online[ 0 ] = 0表示第 0 秒在线人数为 0,计算方法为 online[ n ] = online[ n-1 ] + change[ n ]
1~100,每轮依次划掉奇数位置上的数,最后会剩下哪个数?
64。可以这样考虑,第一次去掉奇数后,剩下2、4、6……96、98、100,所有的数字都是2=2^1的整数倍;第二次去掉奇数项后,剩余的数为4、8 、12、 16……92、96、100,均是4=2^2的整数倍;继续推断第三次去掉奇数项后,剩余的数应为8=2^3的整数倍的偶数,即是8、16、24、32、40、48、56、64、72、80、88、96;第四次去掉奇数项后,剩余的数为16=2^4的整数倍的偶数,即是16、32、48、64、80、96;第五次去掉奇数项后,剩余数为32=2^5的整数倍的偶数,即是32、64、96;最后一次去掉奇数项,则剩余64.