加引號是因為我不知道是否真是微軟面試題。題目是這樣的:
有一車在某無限長公路上行駛,其起始位置和單位時間內速度均為有限大整數(正負不確定), 現有一儀器,在每一時間單位內可以探測1次車是否在指定位置,求一方法能在有限時間內求出車的速度和初始位置。
答曰:解此題目分為兩個步驟,第乙個步驟,探測到車一次
第二個步驟,求出車的速度和位移。
先解答第一步驟,
顯然,假設車位移為s,速度為v,在時間t時車的位置必定為 s+v*t
現在我在時間t時,可以對值做出一次猜測,然後探測位置 x+y*t,若這個位置有車,則第一步驟得解,若這個位置無車,則必定說明猜測是不正確的,即可以排除解
所以現在我們要構造乙個序列 ,使得對於任意的取值,總有有限大的t使得 值為 ,此問題之幾何意義為將平面中的所有點對映到乙個序列,下面給出其中一種最容易程式設計實現的解。(吃飯時我說的是螺旋形對映,但是想來似乎不如菱形對映容易程式設計實現)
假設s與v絕對值之和為m,則m必定有限,現在可以用以下**所示演算法檢測:
var t = 0;
for(var m = 0; m < infinity; m++)
if(check(x+(-y)*(t++)))
if(check((-x)+y*(t++)))
if(check((-x)+(-y)*(t++)))
} //我知道你們看完**肯定想揍我,沒錯,前面那一堆廢話其實說的就是這麼簡單的事情......
第二個步驟,
因為第一步驟的假設並非位置的必要條件,所以無法反過來得出探測命中車之後必定為。但是我們知道車的現在位置之後,可以車之速度為x,依0,1,-1,2,-2,3,-3......這樣的序列依次猜測,第二次命中即可得到速度v。
由速度又可以算出初始位置s
from:
答與微博前端教主在吃飯時討論到的一道 微軟面試題
加引號是因為我不知道是否真是微軟面試題。題目是這樣的 有一車在某無限長公路上行駛,其起始位置和單位時間內速度均為有限大整數 正負不確定 現有一儀器,在每一時間單位內可以探測1次車是否在指定位置,求一方法能在有限時間內求出車的速度和初始位置。答曰 解此題目分為兩個步驟,第乙個步驟,探測到車一次 第二個...
微博與微信
微博有它的好處,它讓資訊不再容易被封鎖,讓言論更加自由,在一些非常時刻總是只剩它能用。但同時,它讓我們置身虛妄,如果哪天說句什麼話或者摘錄了個段子被 了幾萬次,你會覺得滿大街都在傳誦你的名句。趕上個什麼事件,人們總是情不自禁投身其中,而且會以為沙漠裡的仙人掌都在討論這事。如果沉迷其中,除了一點點啟發...
微博文摘 女人與ITIL
挨踢達人 itil先鋒論壇官方微博 河的左岸2009 這個例子形象啊 勤勞的挨踢民工 unangelhhy zeze 能不能這樣舉例打比方 明顯通俗易懂多了 jamescen 女人就是cab,感情經歷就是最終介質庫,有木有?問靜園 sweet corn 默默額,cab決定男人做這次變更要花多少公尺 ...