//CrossRiverQuestion.java
公司主營業(yè)務(wù):網(wǎng)站制作、網(wǎng)站建設(shè)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)建站是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)建站推出南皮免費做網(wǎng)站回饋大家。
import?java.util.ArrayList;
import?java.util.List;
public?class?CrossRiverQuestion?{
public?static?void?main(String[]?args)?{
CrossRiverQuestion?q?=?new?CrossRiverQuestion(5,?4);
q.solveQuestion();
}
private?int?peoNum;
private?int?savageNum;
private?ListNode?resultList?=?new?ArrayListNode();
public?ListNode?solveQuestion()?{
Node?n?=?new?Node(peoNum,savageNum,0,0,0,new?ArrayListInteger(),0,0);
boolean?dfsResult?=?dfs(n);
if(dfsResult)?{
resultList.add(0,n);
for(Node?node?:?resultList)?{
System.out.println("左岸傳教士:"+node.getLeftPeo()+"左岸野人:?"+node.getLeftSavage()+"?右岸傳教士:?"+node.getRightPeo()+"右岸野人:"+node.getRightSavage()+"船上傳教士:"+node.getOnBoatPeoNum()+"船上野人:"+node.getOnBoatSavageNum());
}
return?resultList;
}
return?null;
}
public?CrossRiverQuestion(int?peoNum,?int?savageNum)?{
super();
this.peoNum?=?peoNum;
this.savageNum?=?savageNum;
}
private?boolean?dfs(Node?n)?{
if(n.hasVisited())?return?false;
n.addCheckSum();
if(n.getLeftPeo()==0n.getLeftSavage()==0)?return?true;
if(n.getLeftPeo()0||n.getRightPeo()0||n.getLeftSavage()0||n.getRightSavage()0)?{
return?false;
}
if(n.getLeftPeo()n.getLeftSavage()n.getLeftPeo()0)?return?false;
if(n.getRightPeo()n.getRightSavage()n.getRightPeo()0)?return?false;
if(n.getCURR_STATE()==n.getStateBoatLeft())?{
Node?n1?=?new?Node(n.getLeftPeo()-1,n.getLeftSavage()-1,n.getRightPeo()+1,n.getRightSavage()+1,n.getStateBoatRight(),n.getNodesCheckSum(),1,1);
if(dfs(n1))?{
resultList.add(0,n1);
return?true;
}
Node?n4?=?new?Node(n.getLeftPeo()-2,n.getLeftSavage(),n.getRightPeo()+2,n.getRightSavage(),n.getStateBoatRight(),n.getNodesCheckSum(),2,0);
if(dfs(n4))?{
resultList.add(0,n4);
return?true;
}
Node?n5?=?new?Node(n.getLeftPeo(),n.getLeftSavage()-2,n.getRightPeo(),n.getRightSavage()+2,n.getStateBoatRight(),n.getNodesCheckSum(),0,2);
if(dfs(n5))??{
resultList.add(0,n5);
return?true;
}
}?
else?{
Node?n6?=?new?Node(n.getLeftPeo(),n.getLeftSavage()+1,n.getRightPeo(),n.getRightSavage()-1,n.getStateBoatLeft(),n.getNodesCheckSum(),0,1);
if(dfs(n6))?{
resultList.add(0,n6);
return?true;
}
Node?n7?=?new?Node(n.getLeftPeo()+1,n.getLeftSavage(),n.getRightPeo()-1,n.getRightSavage(),n.getStateBoatLeft(),n.getNodesCheckSum(),1,0);
if(dfs(n7))?{
resultList.add(0,n7);
return?true;
}
Node?n1?=?new?Node(n.getLeftPeo()+1,n.getLeftSavage()+1,n.getRightPeo()-1,n.getRightSavage()-1,n.getStateBoatLeft(),n.getNodesCheckSum(),1,1);
if(dfs(n1))?{
resultList.add(0,n1);
return?true;
}
Node?n4?=?new?Node(n.getLeftPeo()+2,n.getLeftSavage(),n.getRightPeo()-2,n.getRightSavage(),n.getStateBoatLeft(),n.getNodesCheckSum(),2,0);
if(dfs(n4))?{
resultList.add(0,n4);
return?true;
}
Node?n5?=?new?Node(n.getLeftPeo(),n.getLeftSavage()+2,n.getRightPeo(),n.getRightSavage()-2,n.getStateBoatLeft(),n.getNodesCheckSum(),0,2);
if(dfs(n5))??{
resultList.add(0,n5);
return?true;
}
}
return?false;
}
public?ListNode?getResultList()?{
return?resultList;
}
}
Node.java
import?java.util.ArrayList;
import?java.util.List;
public?class?Node?{
private?ListInteger?nodesCheckSum?=?new?ArrayListInteger();
private?int?leftPeo;
private?int?rightPeo;
private?int?leftSavage;
private?int?rightSavage;
private?int?CURR_STATE?=?0;
private?int?onBoatPeoNum?=?0;
private?int?onBoatSavageNum?=?0;
private?final?int?STATE_BOAT_LEFT?=?0;
private?final?int?STATE_BOAT_RIGHT?=?1;
public?Node(int?leftPeo,?int?leftSavage,?int?rightPeo,?int?rightSavage,?int?state,?List?checkSumList,?int?onBoatPeoNum,?int?onBoatSavageNum)?{
this.CURR_STATE?=?state;
this.leftPeo?=?leftPeo;
this.leftSavage?=?leftSavage;
this.rightPeo?=?rightPeo;
this.rightSavage?=?rightSavage;
this.nodesCheckSum.addAll(checkSumList);
this.onBoatPeoNum?=?onBoatPeoNum;
this.onBoatSavageNum?=?onBoatSavageNum;
}
public?int?getLeftPeo()?{
return?leftPeo;
}
public?void?setLeftPeo(int?leftPeo)?{
this.leftPeo?=?leftPeo;
}
public?int?getRightPeo()?{
return?rightPeo;
}
public?void?setRightPeo(int?rightPeo)?{
this.rightPeo?=?rightPeo;
}
public?int?getLeftSavage()?{
return?leftSavage;
}
public?void?setLeftSavage(int?leftSavage)?{
this.leftSavage?=?leftSavage;
}
public?int?getRightSavage()?{
return?rightSavage;
}
public?void?setRightSavage(int?rightSavage)?{
this.rightSavage?=?rightSavage;
}
@Override
public?String?toString()?{
return?leftPeo+","+leftSavage+","+rightPeo+","+rightSavage+","+CURR_STATE;
}
public?int?getCURR_STATE()?{
return?CURR_STATE;
}
public?void?setCURR_STATE(int?cURR_STATE)?{
CURR_STATE?=?cURR_STATE;
}
public?int?getStateBoatLeft()?{
return?STATE_BOAT_LEFT;
}
public?int?getStateBoatRight()?{
return?STATE_BOAT_RIGHT;
}
public?int?calcCheckSum()?{
return?1*getCURR_STATE()+10*getLeftPeo()+100*getLeftSavage()+1000*getRightPeo()+10000*getRightSavage();
}
public?void?addCheckSum()?{
int?checkSum?=?calcCheckSum();
nodesCheckSum.add(checkSum);
}
public?boolean?hasVisited()?{
int?sum?=?calcCheckSum();
for?(Integer?checkSum?:?nodesCheckSum)?{
if(checkSum==sum)?return?true;
}
return?false;
}
public?ListInteger?getNodesCheckSum()?{
return?nodesCheckSum;
}
public?int?getOnBoatPeoNum()?{
return?onBoatPeoNum;
}
public?void?setOnBoatPeoNum(int?onBoatPeoNum)?{
this.onBoatPeoNum?=?onBoatPeoNum;
}
public?int?getOnBoatSavageNum()?{
return?onBoatSavageNum;
}
public?void?setOnBoatSavageNum(int?onBoatSavageNum)?{
this.onBoatSavageNum?=?onBoatSavageNum;
}
}
人工智能(Artificial Intelligence)是計算機科學(xué)的一個分支,英文縮寫為AI。它是研究、開發(fā)用于模擬、延伸和擴展人的智能的理論、方法、技術(shù)及應(yīng)用系統(tǒng)的一門新的科學(xué)技術(shù)。(人工智能是一門技術(shù))
Java是一門面向?qū)ο蟮木幊陶Z言,用來編寫桌面應(yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序等。編程語言除了java,還有c++,phtyon等等。(java是一種編程語言)
在計算機領(lǐng)域,所有的技術(shù)都是依靠代碼來實現(xiàn)的,代碼是計算機工作的唯一指令。編程語言可以理解為操縱代碼的工具。
綜上所述,人工智能是可以用java做的,也可以用c++做,還可以用phtyon做。只是每種編程語言都有自己的特點,在不同的領(lǐng)域,每種語言都有各自的優(yōu)劣勢,人工智能領(lǐng)域常用的是phtyon語言。
人工智能專業(yè)代碼是080717T
人工智能(Artificial Intelligence)是中國普通高等學(xué)校本科專業(yè)。人工智能,是一個以計算機科學(xué)為基礎(chǔ),由計算機、心理學(xué)、哲學(xué)等多學(xué)科交叉融合的交叉學(xué)科、新興學(xué)科,研究、開發(fā)用于模擬、延伸和擴展人的智能的理論、方法、技術(shù)及應(yīng)用系統(tǒng)的一門新的技術(shù)科學(xué)。
發(fā)展歷程
2018年4月3日,中國高校人工智能人才國際培養(yǎng)計劃啟動儀式在北京大學(xué)舉行。時任教育部國際合作與交流司司長許濤透露,教育部將進一步完善中國高校人工智能學(xué)科體系,在研究設(shè)立人工智能專業(yè),推動人工智能一級學(xué)科建設(shè)。教育部在研究制定《高等學(xué)校人工智能創(chuàng)新行動計劃》,通過科教融合、學(xué)科交叉、進一步提升高校人工智能科技創(chuàng)新能力和人才培養(yǎng)能力。
2019年3月21日,教育部印發(fā)了《教育部關(guān)于公布2018年度普通高等學(xué)校本科專業(yè)備案和審批結(jié)果的通知》,經(jīng)申報、公示、審核等程序,根據(jù)普通高等學(xué)校專業(yè)設(shè)置與教學(xué)指導(dǎo)委員會評議結(jié)果,并征求有關(guān)部門意見,確定新增審批專業(yè)名單。根據(jù)通知,全國共有35所高校獲首批「人工智能」新專業(yè)建設(shè)資格。
2020年2月21日,教育部印發(fā)了《教育部關(guān)于公布2019年度普通高等學(xué)校本科專業(yè)備案和審批結(jié)果的通知》,在新增備案本科專業(yè)名單中,“人工智能”專業(yè)新增最多。此外,“智能制造工程”“智能建造”“智能醫(yī)學(xué)工程”“智能感知工程”等智能領(lǐng)域相關(guān)專業(yè),也同樣是高校的新增備案和新增審批本科專業(yè)名單中的熱門。
培養(yǎng)目標
以培養(yǎng)掌握人工智能理論與工程技術(shù)的專門人才為目標,學(xué)習(xí)機器學(xué)習(xí)的理論和方法、深度學(xué)習(xí)框架、工具與實踐平臺、自然語言處理技術(shù)、語音處理與識別技術(shù)、視覺智能處理技術(shù)、國際人工智能專業(yè)領(lǐng)域最前沿的理論方法,培養(yǎng)人工智能專業(yè)技能和素養(yǎng),構(gòu)建解決科研和實際工程問題的專業(yè)思維、專業(yè)方法和專業(yè)嗅覺。
課程體系
《人工智能、社會與人文》、《人工智能哲學(xué)基礎(chǔ)與倫理》、《先進機器人控制》、《認知機器人》、《機器人規(guī)劃與學(xué)習(xí)》、《仿生機器人》、《群體智能與自主系統(tǒng)》、《無人駕駛技術(shù)與系統(tǒng)實現(xiàn)》、《游戲設(shè)計與開發(fā)》、《計算機圖形學(xué)》、《虛擬現(xiàn)實與增強現(xiàn)實》、《人工智能的現(xiàn)代方法I》、《問題表達與求解》、《人工智能的現(xiàn)代方法II》、《機器學(xué)習(xí)、自然語言處理、計算機視覺等》。
發(fā)展前景就業(yè)方向?qū)嶋H應(yīng)用:
機器視覺,指紋識別,人臉識別,視網(wǎng)膜識別,虹膜識別,掌紋識別,專家系統(tǒng),自動規(guī)劃,智能搜索,定理證明,博弈,自動程序設(shè)計,智能控制,機器人學(xué),語言和圖像理解,遺傳編程等??佳蟹较蛴嬎銠C科學(xué)與技術(shù)、軟件工程、人工智能
能夠使用計算機表達的算法,就是可以轉(zhuǎn)換為數(shù)學(xué)語言來描述。謂詞演算其實就是將事物歸類,具體的說就是將A和B兩個事物的共同點進行歸納,并下一個數(shù)學(xué)定義來描述這個共同點。如果下一個輸入的事物如C,就對C進行判斷,看C是否符合A和B的共同點,如果是則C與A和B同屬于這一類。
如一個簡單的一元謂詞:
定義1:樹都有樹葉。
定義2:A是樹;
定義3:B與A是同一類植物;
則可知B是樹并且有樹葉。
其實謂詞演算就是對于數(shù)學(xué)包含關(guān)系的判斷。
如果體現(xiàn)在編程中,就是變量的對比,轉(zhuǎn)換,替換和傳遞等。