版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、百度技術(shù)研發(fā)類筆試題有一根 27厘米的細(xì)木桿,在第 3厘米、 7厘米、 11 厘米、17 厘米、 23厘米這五個(gè)位置上各有一只螞蟻。木桿很細(xì),不能同時(shí)通 過(guò)一只螞蟻。開始時(shí),螞蟻的頭朝左還是朝右是任意的,它們只會(huì)朝 前走或調(diào)頭,但不會(huì)后退。 當(dāng)任意兩只螞蟻碰頭時(shí),兩只螞蟻會(huì)同時(shí) 調(diào)頭朝反方向走。假設(shè)螞蟻們每秒鐘可以走一厘米的距離。編寫程序,求所有螞蟻都離開木桿的最小時(shí)間和最大時(shí)間。分析: 題目中的螞蟻只可能相遇在整數(shù)點(diǎn) , 不可以相遇在其它點(diǎn)比如3.5cm處之類的,也就是可以讓每只螞蟻?zhàn)?秒,然后查看是否有 相遇的即可 .這樣我的程序?qū)崿F(xiàn)思路就是 , 初始化 5只螞蟻,讓每只螞 蟻?zhàn)?1 秒,
2、 然后看是否有相遇的 , 如果有則做相應(yīng)處理 . 當(dāng)每只螞蟻都 走出木桿時(shí) , 我就記錄當(dāng)前時(shí)間 . 這樣就可以得到當(dāng)前狀態(tài)情況下 , 需 要多久可以走出木桿 , 然后遍歷所有狀態(tài)則可以得到所有可能 .*/packagebaidu;publilassAnt/*step 表示螞蟻每一個(gè)單位時(shí)間所走的長(zhǎng)度*/privatefinalstaticintstep=1;/*position 表示螞蟻所處的初始位置*/privateintposition;/*direction 表示螞蟻的前進(jìn)方向,如果為 1 表示向 27 厘米的 方向走,如果為 -1 ,則表示往 0 的方向走。*/privateintd
3、irection=1;/*如果已經(jīng)走下* 此函數(shù)運(yùn)行一次, 表示螞蟻前進(jìn)一個(gè)單位時(shí)間,木桿則會(huì)拋出異常*/publicvoidwalk()if(isOut()thrownewRuntimeException(theantisout);position=position+this.direction*step;/*檢查螞蟻是否已經(jīng)走出木桿,如果走出返回true*/ publicbooleanisOut()returnposition=27;檢查此螞蟻是否已經(jīng)遇到另外一只螞蟻*paramant*return 如果遇到返回 true*/publicbooleanisEncounter(Antant)
4、returnant.position=this.position;/* 改變螞蟻的前進(jìn)方向*/publicvoidchangeDistation()direction=-1*direction;構(gòu)造函數(shù) , 設(shè)置螞蟻的初始前進(jìn)方向 , 和初始位置*paramposition*paramdirection*/publicAnt(intposition,intdirection)this.position=position;if(direction!=1)this.direction=-1;/方向設(shè)置初始位置 , 比如為 0 時(shí) , 也將其設(shè)置為 1. 這樣可以方便后面的處理elsethis.di
5、rection=1;/packagebaidu;publilassControllerpublicstaticvoidmain(Stringargs)inttime=0;for(inti=0;i32;i+)AntantArray=getAntList(getPoistions(),getDirections(i);while(!isAllOut(antArray)for(Antant:antArray)if(!ant.isOut()ant.walk();time+;/ 查看是否有已經(jīng)相遇的 Ant, 如果有則更改其前進(jìn)方向dealEncounter(antArray);System.out.p
6、rintln(time);/ 將時(shí)間歸 0,這樣可以重新設(shè)置條件 , 再次得到全部走完所需 要的時(shí)間.time=0;/* 這個(gè)函數(shù)的算法很亂,但暫時(shí)能解決問(wèn)題*paramlist*/publicstaticvoiddealEncounter(AntantArray)intnum_ant=antArray.length;for(intj=0;jfor(intk=j+1;k if(antArrayj.isEncounter(antArrayk) antArrayj.changeDistation(); antArrayk.changeDistation();/* 因?yàn)橛?只Ant,所以組合之后有3
7、2種組合.剛好用5位二進(jìn) 制來(lái)表示,如果為0則表示Ant往0的方向走如果為1,則表示往27 的方向走*注:在通過(guò)Ant的構(gòu)造函數(shù)設(shè)置初始值時(shí),通過(guò)過(guò)濾把0修改成了-1.*/publicstaticintgetDirections(intseed)intresult=newint5;result0=seed%2;result1=seed/2%2;result2=seed/4%2;result3=seed/8%2;result4=seed/16%2;System.out.println(directionsis+result0+|+result1+|+result2+|+result3+|+res
8、ult4);returnresult;/* 批量設(shè)置 Ant 的初始位置 ,這樣設(shè)置不是十分必要 , 可以直接在代碼中設(shè)置*return*/publicstaticintgetPoistions()returnnewint3,7,11,17,23;/*取得設(shè)置好初始值的 5 只 Ant*parampositions*paramdirections*return*/publicstaticAntgetAntList(intpositions,intdirections)Antant3=newAnt(positions0,directions0);Antant7=newAnt(positions1,directions1);Antant11=newAnt(positions2,directions2);Antant17=newAnt(positions3,directions3);Antant23=newAnt(positions4,directions4);returnnewAntant3,ant7,ant11,ant17,ant23;判斷是否所有的 Ant 都已經(jīng)走出了木桿 , 也就是設(shè)置退出條件*paramantArray*return*/publicstaticboolea
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度鏟車租賃市場(chǎng)推廣合作合同3篇
- 2025年度食品安全管理體系認(rèn)證合同要求3篇
- 2024版融資租賃合同書模板
- 2025年度廚師職業(yè)保險(xiǎn)與福利保障服務(wù)合同3篇
- 二零二五版承臺(tái)施工節(jié)能減排合同2篇
- 二零二五版代收款與房地產(chǎn)銷售合同3篇
- 2025版綠化工程設(shè)計(jì)變更與施工管理合同4篇
- 二零二五年度網(wǎng)絡(luò)安全培訓(xùn)合同及技能提升方案3篇
- 2025版房地產(chǎn)租賃合同附家具及裝修改造條款3篇
- 二零二五版電商企業(yè)9%股權(quán)轉(zhuǎn)讓及增值服務(wù)合同3篇
- 《呼吸衰竭的治療》
- 有余數(shù)的除法算式300題
- 2024年度醫(yī)患溝通課件
- 2024年中考政治總復(fù)習(xí)初中道德與法治知識(shí)點(diǎn)總結(jié)(重點(diǎn)標(biāo)記版)
- 2024年手術(shù)室的應(yīng)急預(yù)案
- 五年級(jí)上冊(cè)小數(shù)除法豎式計(jì)算練習(xí)300題及答案
- 【外資便利店在我國(guó)的經(jīng)營(yíng)策略分析案例:以日本羅森便利店為例11000字(論文)】
- 6061鋁合金退火工藝
- 教師職業(yè)素養(yǎng)與職業(yè)發(fā)展規(guī)劃
- 語(yǔ)言規(guī)劃講義
- Talent5五大職業(yè)性格測(cè)試技巧138答案
評(píng)論
0/150
提交評(píng)論