多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > 螞蟻過桿問題

螞蟻過桿問題

來源:程序員人生   發布時間:2015-04-28 08:21:17 閱讀次數:2877次

 問題:有1根27厘米的細木桿,在第3厘米、7厘米、11厘米、18厘米、23厘米這5個位置上各有1只螞蟻。木桿很細,不能同時通過兩只螞蟻。開始時,螞蟻的頭朝左還是朝右是任意的,它們只會朝前走或調頭,但不會后退。當任意兩只螞蟻碰頭時,兩只螞蟻會同時調頭朝反方向走。假定螞蟻們每秒鐘可以走1厘米的距離。編寫程序,求所有螞蟻都離開木桿的最小時間和最大時間。


思路:由于沒有告知螞蟻的初始朝向,所以要對初始化螞蟻朝向。用0表示朝左,1表示朝右,用2進制00000(0)表示5只螞蟻都是朝向左,然后每次加1,直到加到11111(31)時,表示5只螞蟻初始的所有朝向。讓后隨時間的推移,有些螞蟻可能碰頭,這是就的對螞蟻的朝向就行修改,即:如原來朝向為0,則變成1,原來為1的變成0,。做到這里就會想到如何判斷螞蟻朝向問題,這個可以通過異或來解決問題。如:當要判斷第1只螞蟻朝向時,可以用2進制10000(16)與原來朝向異或,若結果為0,則表示朝向為1,朝右,否則相反;用2進制01000(8)與原來朝向異或,可以判斷第2個螞蟻的朝向,以此類推。


代碼實現:

import java.util.*; public class Ant{ public static void main(String args[]){ Scanner sc=new Scanner(System.in); System.out.println("輸入5只螞蟻的位置(厘米)(大于0小于27且不能有相同的):"); while(sc.hasNext()){ int[] q=new int[5];//{3,7,11,18,23};輸入5只螞蟻的初始位置 for(int b=0;b<q.length;b++){ q[b]=sc.nextInt(); } int maxtime=⑴,mintime=10000,signmax=0,signmin=0; for(int num=0;num<=31;num++){//5只螞蟻初始的朝向 int i=num;//1種初始朝向后,直到所有螞蟻掉下的進程中中途朝向的變化 int[] p=new int[5];//{3,7,11,18,23}; for(int b=0;b<p.length;b++){//保存q[]的初值 p[b]=q[b]; } int sum=0;//所有螞蟻掉下去的時間 while(1>0){ if(f(p)==p.length){//直到5只螞蟻都掉下去時,退出循環,進行下1種5只螞蟻初始朝向的計算 break; } sum++; for(int j=0;j<p.length;j++){//通過判斷朝向 對位置進行加減 int k=(int)Math.pow(2,j); if((i&k)==0){ p[j]-=1; }else{ p[j]+=1; } } for(int j=0;j<p.length⑴;j++){//判斷有無碰頭 然后重新記錄5只螞蟻的朝向 if(p[j]==p[j+1]){ int k=(int)Math.pow(2,j); if((i&k)==0){ i-=k; }else{ i+=k; } } } } if(sum>maxtime){ maxtime=sum;signmax=num; } if(sum<mintime){ mintime=sum;signmin=num; } //System.out.print(sum+" "); } System.out.println("maxtime= "+maxtime+" 秒 "); System.out.println("mintime= "+mintime+" 秒 "); System.out.println("輸入5只螞蟻的位置(厘米)(大于0小于27且不能有相同的):"); } } public static int f(int a[]){//記錄螞蟻掉下去的個數 int k=0; for(int i=0;i<a.length;i++){ if(a[i]>=27||a[i]<=0){ k++; } } return k; } }

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 婷婷在线视频国产综合 | 久久国产免费一区二区三区 | 国产在线a不卡免费视频 | 欧美在线观看一区二区三区 | 久久欧美精品欧美久久欧美 | 欧美疯狂性受xxxxx另类 | 欧美激情免费a视频 | 欧美videos在线观看 | аⅴ成人天堂中文在线 | 午夜啪啪网站 | 国产综合欧美 | 网站免费视频 | 综合欧美日韩一区二区三区 | 成在线人免费视频一区二区三区 | 久久精品国产一区二区三区 | 欧美日韩国产中文字幕 | 俺也射| 亚洲视频精选 | 日韩精品福利 | 一本大道加勒比久久 | 一二三四高清在线手机视频 | 一级做片爱性视频免费 | 欧美xxxxxxxxxx黑人 | 国产精品99久久久久久夜夜嗨 | 国产片一区二区三区 | 最近中文字幕高清免费大全8 | 校园春色 欧美 | 日韩欧美三区 | 欧美zzzz| 国产成人亚洲毛片 | 日本免费区 | 黑人高h| 最近手机中文字幕1 | 在线视频精品播放 | 亚洲综合第一欧美日韩中文 | 亚洲天堂成人网 | 国产乱淫a∨片免费视频 | 亚洲韩国日本欧美一区二区三区 | 欧美一级看片免费观看视频在线 | 日本r级在线中文在线播放 日本vs黑人hd | japanesefree日本护士 |