程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 微軟的面試題(第四組)

微軟的面試題(第四組)

編輯:.NET實例教程

第四組   

  第一題   .   五個海盜搶到了100顆寶石,每一顆都一樣大小和價值連城。他們決定這麼分: 

  抽簽決定自己的號碼(1、2、3、4、5) 

  首先,由1號提出分配方案,然後大家表決,當且僅當超過半數的人同意時,按照他的方案 

  進行分配,否則將被扔進大海喂鲨魚 

  如果1號死後,再由2號提出分配方案,然後剩下的4人進行表決,當且僅當超過半數的人同 

  意時,按照他的方案進行分配,否則將被扔入大海喂鲨魚 

  依此類推 

  條件:每個海盜都是很聰明的人,都能很理智地做出判斷,從而做出選擇。 

  問題:第一個海盜提出怎樣的分配方案才能使自己的收益最大化? 

  第二題   .   一道關於飛機加油的問題,已知: 

  每個飛機只有一個油箱, 

  飛機之間可以相互加油(注意是相互,沒有加油機) 

  一箱油可供一架飛機繞地球飛半圈, 

  問題: 

  為使至少一架飛機繞地球一圈回到起飛時的飛機場,至少需要出動幾架飛機?(所有飛機從同一機場起飛,而且必須安全返回機場,不允許中途降落,中間沒有飛機場)第三題.   汽車加油問題     

  一輛載油500升的汽車從A開往1000公裡外的B,已知汽車每公裡耗油量為1升,A處有無窮多的油,其他任何地點都沒有油,但該車可以在任何地點存放油以備中轉,問從A到B最少需要多少油 

  第四題.   擲杯問題 

  一種杯子,若在第N層被摔破,則在任何比N高的樓層均會破,若在第M層不破,則在任何比M低的樓層均會破,給你兩個這樣的杯子,讓你在100層高的樓層中測試,要求用最少的測試次數找出恰巧會使杯子破碎的樓層。 

  第五題.   推理游戲 

  教授選出兩個從2到9的數,把它們的和告訴學生甲,把它們的積告訴學生乙,讓他們輪流猜這兩個數 

  甲說:“我猜不出” 

  乙說:“我猜不出” 

  甲說:“我猜到了” 

  乙說:“我也猜到了” 

  問這兩個數是多少 

  第六題.   病狗問題 

  一個住宅區內有100戶人家,每戶人家養一條狗,每天傍晚大家都在同一個地方遛狗。已知這些狗中有一部分病狗,由於某種原因,狗的主人無法判斷自己的狗是否是病狗,卻能夠分辨其他的狗是否有病,現在,上級傳來通知,要求住戶處決這些病狗,並且不允許指認他人的狗是病狗(就是只能判斷自己的),過了7天之後,所有的病狗都被處決了,問,一共有幾只病狗?為什麼? 

  第七題.   U2合唱團在17分鐘內得趕到演唱會場,途中必需跨過一座橋,四個人從橋的同一端出發,你得幫助他們到達另一端,天色很暗,而他們只有一只手電筒。一次同時最多可以有兩人一起過橋,而過橋的時候必須持有手電筒,所以就得有人把手電筒帶來帶去,來回橋兩端。手電筒是不能用丟的方式來傳遞的。四個人的步行速度各不同,若兩人同行則以較慢者的速度為准。BONO需花1分鐘過橋,EDGE需花2分鐘過橋,ADAM需花5分鐘過橋,LARRY需花10分鐘過橋,他們要如何在17分鐘內過橋呢? 

  第八題.   監獄裡有100個房間,每個房間內有一囚犯。一天,監獄長說,你們獄房外有一電燈,你們在放風時可以控制這個電燈(熄或亮)。每天只能有一個人出來放風,並且防風是隨機的。如果在有限時間內,你們中的某人能對我說:“我敢保證,現在每個人都已經至少放過一次風了。”我就放了你們!問囚犯們要采取什麼策略才能被監獄長放掉?如果采用了這種策略,大致多久他們可以被釋放? 

  //==================================================================================

 第四組答案   都是很難的題目     

  第一題:97   0   1   2   0   或者   97   0   1   0   2   (提示:可用逆推法求出) 

  第二題:3架飛機5架次,飛法: 

  ABC   3架同時起飛,1/8處,C給AB加滿油,C返航,1/4處,B給A加滿油,B返航,A到達1/2處,C從機場往另一方向起飛,3/4處,C同已經空油箱的A平分剩余油量,同時B從機場起飛,

$False$

AC到7/8處同B平分剩余油量,剛好3架飛機同時返航。所以是3架飛機5架次。第三題:需要建立數學模型     

  (提示,嚴格證明該模型最優比較麻煩,但確實可證,大膽猜想是解題關鍵) 

  題目可歸結為求數列   an=500/(2n+1)   n=0,1,2,3......的和Sn什麼時候大於等於1000,解得n> 6 

  當n=6時,S6=977.57 

  所以第一個中轉點離起始位置距離為1000-977.57=22.43公裡 

  所以第一次中轉之前共耗油   22.43*(2*7+1)=336.50升 

  此後每次中轉耗油500升 

  所以總耗油量為7*500+336.50=3836.50升 

  第四題:需要建立數學模型 

  題目可歸結為求自然數列的和S什麼時候大於等於100,解得n> 13 

  第一個杯子可能的投擲樓層分別為:14,27,39,50,60,69,77,84,90,95,99,100 

  第五題:3和4(可嚴格證明) 

  設兩個數為n1,n2,n1> =n2,甲聽到的數為n=n1+n2,乙聽到的數為m=n1*n2 

  證明n1=3,n2=4是唯一解 

  證明:要證以上命題為真,不妨先證n=7 

  1)必要性: 

  i)   n> 5   是顯然的,因為n <4不可能,n=4或者n=5甲都不可能回答不知道 

  ii)   n> 6   因為如果n=6的話,那麼甲雖然不知道(不確定2+4還是3+3)但是無論是2,4還是3,3乙都不可能說不知道(m=8或者m=9的話乙說不知道是沒有道理的) 

  iii)   n <8   因為如果n> =8的話,就可以將n分解成   n=4+x   和   n=6+(x-2),那麼m可以是4x也可以是6(x-2)而4x=6(x-2)的必要條件是x=6即n=10,那樣n又可以分解成8+2,所以總之當n> =8時,n至少可以分解成兩種不同的合數之和,這樣乙說不知道的時候,甲就沒有理由馬上說知道。 

  以上證明了必要性 

  2)充分性 

  當n=7時,n可以分解成2+5或3+4 

  顯然2+5不符合題意,捨去,容易判斷出3+4符合題意,m=12,證畢 

  於是得到n=7   m=12   n1=3   n2=4是唯一解。第六題:7只(數學歸納法證明)     

  1)若只有1只病狗,因為病狗主人看不到有其他病狗,必然會知道自己的狗是病狗(前提是一定存在病狗),所以他會在第一天把病狗處決。 

  2)設有k只病狗的話,會在第k天被處決,那麼,如果有k+1只,病狗的主人只會看到k只病狗,而第k天沒有人處決病狗,病狗主人就會在第k+1天知道自己的狗是病狗,於是病狗在第k+1天被處決 

  3)由1)2)得,若有n只病狗,必然在第n天被處決 

  第七題:(提示:可用圖論方法解決) 

  BONO&EDGE過(2分),BONO將手電帶回(1分),ADAM&LARRY過(10分),EDGE將手電帶回(2分),BONO&EDGE過(2分)   2+1+10+2+2=17分鐘 

  第八題: 

  約定好一個人作為報告人(可以是第一個放風的人) 

  規則如下: 

  1、報告人放風的時候開燈並數開燈次數 

  2、其他人第一次遇到開著燈放風時,將燈關閉 

  3、當報告人第100次開燈的時候,去向監獄長報告,要求監獄長放人...... 

  按照概率大約30年後(10000天)他們可以被釋放 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved