面試中常見的幾道智力題 來看看你會做幾道(2)?

SnailClimb發表於2018-07-03

面試中常見的幾道智力題 來看看你會做幾道(2)?
下面的題目來自滴滴出行2017秋招題。這些題目是我自己覺得比較難或者比較容易出錯的題目。

下面就是題目了,開始頭腦風暴吧~~~

問題

問題

question one

桌上有12個黑球和1個白球圍成一個圓,按一個方向順序數到13就拿走對應的一個球,如果要求最後拿走的是白球,請問該從哪個求開始數數

question two

黃球和綠球各70個,放到2個空間足夠大的盒子中。使用某種放置方法,使得隨機取一個盒子,並從中隨機取一個球時,得到黃球的概率最大,請問這時取得黃球的概率是多少?

question three

假如技術團隊共有50人,其中會C語言的有36人,會JAVA語言的有44人,會GO語言的有32人,同時會這3種語言的至少有多少人?

question four

一個小猴子邊上有100根香蕉,它要走過50米才能到家,每次它最多搬50根香蕉,(多了就被壓死了),它每走1米就要吃掉一根,請問它最多能把多少根香蕉搬回家裡。

question five

52張牌,四張A,隨機打亂後問,從左到右一張一張翻直到出現第一張A,請問平均要翻幾張牌?

question six

一個不透明的箱子裡共有紅,黃,藍,綠,白五種顏色的小球,每種顏色的小球大小相同,質量相等,數量充足。每個人從籃子裡抽出兩個小球, 請問至少需要多少個人抽球,才能保證有兩個人抽到的小球顏色相同?

答案

答案

question one

約瑟夫環遞推公式:f(n, m) = (f(n - 1, m) + m) % n;(其中n是球的數量,m是報的數字)

f(1, 13) = 0;(當只有一個球的時候,最後拿走的球的下標為0)

f(2, 13) = (f(1, 13) + 13) % 2 = 1;(當有2個球的時候,最後拿走的球的下標為1)

f(3, 13) = (f(2, 13) + 13) % 3 = 2;(當有3個球的時候,最後拿走的球的下標為2)

...

f(13, 13) = (f(12, 13) + 13) % 13 = 7;(當有13個球的時候,最後拿走的球的下標為7)

需要注意的是,編號是從0開始的,f(13, 13) = 7,說明最後拿走的球是從最開始的球(編號為0)後面的第7個球; 也就是當順時針方向白球后第6個黑球,逆時針方向白球后第6個黑球。(建議大家畫圖看一下,不然不容易弄懂,我在紙上畫了好多遍畫的還不是很滿意,感覺自己畫的很醜,所以就不貼在這裡了)。

相關程式碼:

public class Test {

	public static void main(String[] args) {
		int x = Test.yuesefu(13, 13);
		System.out.println(x);
	}

	static int yuesefu(int n, int m) {
		if (n == 1) {
			return 0; // 這裡返回下標,從0開始,只有一個元素就是剩餘的元素0
		} else {
			return (yuesefu(n - 1, m) + m) % n; // 我們傳入的n是總共多少個數
		}
	}
}

複製程式碼

question two

一個黃球放在一個盒子裡另外所有都放在另一個盒子裡這樣就會使得到黃球的概率最大: 1/2+(1/2)*(69/139)

question three

完全不會C語言的有14人,完全不會JAVA6人,完全不會GO18人,50-14-6-18=12

question four

需要找到一個點,當小猴子拿香蕉時能拿最多的香蕉(<=50),這樣它可以一次到家,不用再往返。 設Y為要求的香蕉最大剩餘數,X為要求的那個點(X米),可以列出方程組:

  1. Y=(100-3X) - (50-X)
  2. (100-3X)<=50

很容易求出Y=16

question five

考慮4張A在牌中的位置,他們把其他牌分成了5份(四個點把直線分成五段),完全隨機的情況下,每份的平均長度為48/5=9.6,摸完這9.6張後,接下來的就是第一張A, 故平均需要摸9.6+1=10.6張,即11張。

question six

這個題相當於變相的球5種不同顏色的球,兩兩組合,會有多少種組合。
兩個球顏色不一樣:C5中取2=10
兩個球的顏色相同: C5中取1=5
因而有15種顏色組合。那麼有16人的時候必然會有重複的!

掘金沸點——年中總結(如果覺得我的文章不錯的話,可以幫我的這個沸點點個贊嗎???在此感激不盡了。)juejin.im/pin/5b38cba…

如果你覺得我的文章對你有幫助話,歡迎關注我的微信公眾號:"Java面試通關手冊"(一個有溫度的微信公眾號,無廣告,單純技術分享,期待與你共同進步~~~堅持原創,分享美文,分享各種Java學習資源。)

我的公眾號

相關文章