面試題集錦

2021-07-22 09:04:53 字數 1946 閱讀 8667

假定n=54,首先,我們有乙個隨機函式發生器,能夠產生1-54之間的隨機數,如何保證抽第一張牌是54中可能,抽第二張牌是53中可能,……

可以這樣做,假設撲克牌是乙個54維的陣列card, 我們要做的就是從這個陣列中隨機取乙個元素,然後在剩下的元素裡再隨機取乙個元素… 這裡涉及到乙個問題,就是每次取完元素後,我們就不會讓這個元素參與下一次的選取。

我們要實現的目的是以等概率的方式將這54個數隨機打亂排列,因此,可以這樣處理:

第一次抽牌在初始54張牌中,將 隨機產生的牌x,與第乙個元素互換,

第二次抽牌在剩下的53張牌中,將 隨機產生的牌y,與第二個元素互換。。。

public

void

randomshuffle(int a, int n)

}

num[n] = num[n - 1] + n

思路:第n條直線總能和前⾯面n-1條直線形成n-1個交點,將第n條直線 分成n份,每乙份會多分出乙個平⾯面;num[n] = 1 + n*(n+1)/2=1+1+2+3+4+…n;

顯然,當這n個平面滿足以下條件時,所分割的部分數是最多的。 1、 這n個平面兩兩相交; 2、 沒有三個以上的平面交於一點; 3、 這n個平面的交線任兩條都不平行。 對於一般情況一下子不易考慮,我們不妨試著從簡單的,特殊的情況入手來尋找規律。設n個 平面分空間的部分數為 an,易知 當n=1時,an=2 ; 當n=2時,an=4 當n=3時,an=8 當n=4 時,情況有些複雜,我們以乙個四面體為模型來觀察,可知an=15 ; 從以上幾種情況,很難找出乙個一般性的規律,而且當n的值繼續增大時,情況更複雜,看來這樣不行。那麼,我們把問題在進一步簡單化,將空間問題退化到平面問題:n條直線最多可將平面分割成多少個部分?由上題可知,即n條直線最多可將平面分割成1/2*(n^2+n+2) 個部分。

現在,我們回到原問題,用剛才的思路來解決空間的問題,設k個平面將空間分割成a(k)個部分,再新增上第k+1個平面,這個平面與前k個平面相交有k條交線,這k條交線,任意三條不共點,任意兩條不平行,因此這第k+1個平面就被這k條直線分割成b(k)個部分。而這b(k)個部分平面中的每乙個,都把它所通過的那一部分空間分割成兩個較小的空間。所以,新增上這第k+1個平面後就把原有的空間數增加了b(k)個部分。由此的遞推關係式 a(k+1)=a(k)+b(k)

推導可知,n個平面最多可將平面分割成 =(n^3+5*n+6)/6

這是典型的動態規劃問題。假設f[n]表示從n層樓找到摔雞蛋不碎安全位置的最少判斷次數。假設第乙個雞蛋第一次從第i層扔下,如果碎了,就剩乙個雞蛋,為確定下面樓層中的安全位置,必須從第一層挨著試,還需要i-1次;如果不碎的話,上面還有n-i層,剩下兩個雞蛋,還需要f[n-i]次(子問題,實體n層樓的上n-i層需要的最少判斷次數和實體n-i層樓需要的最少判斷次數其實是一樣的)。因此,最壞情況下還需要判斷max(i-1,f[n-i])次。

狀態轉移方程:f[n] = min

初始條件: f[ 0 ] = 0 (或f[ 1 ] = 1 )

現在推廣成n層樓,m個雞蛋:

還是動態規劃。假設f[n,m]表示n層樓、m個雞蛋時找到摔雞蛋不碎的最少判斷次數。則乙個雞蛋從第i層扔下,如果碎了,還剩m-1個雞蛋,為確定下面樓層中的安全位置,還需要f[i-1,m-1]次(子問題);不碎的話,上面還有n-i層,還需要f[n-i,m]次(子問題,實體n層樓的上n-i層需要的最少判斷次數和實體n-i層樓需要的最少判斷次數其實是一樣的)。

狀態轉移方程:f[n,m] = min

初始條件:f[i, 0 ] = 0 (或f[i, 1 ] = i),對所有i

線性掃瞄一遍,兩兩比較,每次比較都會排出乙個人:若a認識b,則a一定不是明星;若a不認 識b,則b一定不是明星;n很大的情況下可以採用分布式方法,每個機器處理一部分資料,最後每個 機器選出乙個候選,歸併

面試題集錦

1 裝箱和拆箱的分別?答 裝箱就是把值型別轉換成引用型別 拆箱就是把引用型別轉換成值型別。2 怎樣建立乙個執行緒?答 一使用thread類 二使用delegate.begininvoke 三使用threadpool.queueworkitem。3 string是值型別,還是引用型別?與stringb...

linux面試題集錦

注 本試題是在網上搜尋的,在此感謝熱心的提供!事實證明有很多公司的技術筆試題都出自這裡!不管怎麼樣,只是乙個參考,技術還是第一位的,望對大家有幫助,也為自己以備不時之須。dev had1 winsys b root l04.edu.cn mount dev had1 winsys c root l0...

SharePoint面試題集錦

stand along 和completed 模式的區別 content type 和site column 的理解farm solution 和sandbox 區別web part,event receiver,feature 三者的概念和聯絡 timer job 的理解 簡述客戶端物件模型和服務...