PHP实习生笔试题

时间:2020-10-20 09:25:10 笔试题目 我要投稿

PHP实习生笔试题

       笔试题:需要多少只小白鼠才能在24小时内找到毒药

PHP实习生笔试题

  有1000瓶水,其中有一瓶有毒,小白鼠只要尝一点带毒的水24小时后就会死亡,至少要多少只小白鼠才能在24小时时鉴别出那瓶水有毒?

  分析:

  最容易想到的就是用1000只小白鼠,每只喝一瓶。但显然这不是最好答案。

  既然每只小白鼠喝一瓶不是最好答案,那就应该每只小白鼠喝多瓶。那每只应该喝多少瓶呢?

  首先让我们换种问法,如果有x只小白鼠,那么24小时内可以从多少瓶水中找出那瓶有毒的?

  由于每只小白鼠都只有死或者活这两种结果,所以x只小白鼠最大可以表示2^x种结果。如果让每种结果都对应到某瓶水有毒,那么也就可以从2^x瓶水中找到有毒的那瓶水。那如何来实现这种对应关系呢?

  第一只小白鼠喝第1到2^(x-1)瓶,第二只小白鼠喝第1到第2^(x-2)和第2^(x-1)+1到第2^(x-1) + 2^(x-2)瓶….以此类推。

  回到此题,总过1000瓶水,所以需要最少10只小白鼠。

  笔试题:根据上排的数填写下排的数,并满足要求。

  根据上排给出十个数,在其下排填出对应的十个数, 要求下排每个数都是上排对应位置的数在下排出现的次数。上排的数:0,1,2,3,4,5,6,7,8,9。

  笔试题:判断数字是否出现在40亿个数中?

  给40亿个不重复的'unsigned int的整数,没排过序的,然后再给几个数,如何快速判断这几个数是否在那40亿个数当中?

  分析:

  unsigned int 的取值范围是0到2^32-1。我们可以申请连续的2^32/8=512M的内存,用每一个bit对应一个unsigned int数字。首先将512M内存都初始化为0,然后每处理一个数字就将其对应的bit设置为1。当需要查询时,直接找到对应bit,看其值是0还是1即可。
 

【PHP实习生笔试题】相关文章:

PHP笔试题11-25

经典PHP笔试题12-15

几道PHP笔试题11-25

PHP经典笔试题11-25

php练习笔试题07-24

PHP面试题集11-25

PHP笔试题含答案11-25

PHP笔试题及答案11-25

Yahoo-PHP笔试题11-25

360笔试题目07-11