關於狗 雞 白菜過河的演算法

2021-03-31 19:41:37 字數 915 閱讀 8721

乙個人要把所帶的乙隻狗、乙隻雞和一顆白菜過河,而船除人之外,每次只能帶一樣東西,問該如何運它們才能使雞不吃掉白菜而狗不吃掉雞?

我們用s來記所有允許的狀態:

(1,1,1,1)、(0,0,0,0)

(1,1,1,0)、(0,0,0,1)

(1,1,0,1)、(0,0,1,0)

(1,0,1,1)、(0,1,0,0)

(1,0,1,0)、(0,1,0,1)

我們把運載情況也用乙個四維向量表示,例如(1,1,0,0)表示人、狗在船上而雞不在,這樣允許的狀態d總共有4個:

(1,1,0,0)、(1,0,1,0)

(1,0,0,1)、(1,0,0,0)

我們規定s和d中元素相加時按二進位制法則進行,一次渡河就是乙個狀態和另乙個狀態的相加

我們把(1,1,1,1)與d中的四個向量各相加,如果是允許的狀態,則每一種允許的狀態繼續與d中的四個向量相加,直到出現(0,0,0,0)為至,如果是不允許的狀態則該向量停止計算。

我寫了乙個演算法來計算需要進行幾次渡河才能順利過去:

public class test,,,};

int state2 = ,,,,,

,,,,};

int a = new int[100][4];

int b = new int[100][4];

int result = new int[4];

int correct = ;

for(int i=0;i<4;i++)

a[0][i]=1;

int rows = 1;

int answer = 0;

while(true){

int rows2 = 0;

answer++;

for(int i=0;i問題是怎麼出現的答題是8?應該是奇數次才對啊,怎麼會是偶數次的?

關於棧的方法 做狼羊白菜

棧是限定僅在表尾進行插入和刪除操作的線性表。棧 者,儲存貨物或供旅客住宿的地方,可引申為倉庫 中轉站,引入到計算機領域裡,就是指資料暫時儲存的地方,所以才有進棧 出棧的說法。外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳 img cwdovspo 1572180598700 includ...

菜雞的spfa演算法出最短路。。。

emmm.寫給自己看的東西。請各位大佬給予幫助咯。桑 include include include include include using namespace std typedef structfhs 鄰接鍊錶 int head 510000 dist 510000 x,y,z,c,w,u,...

關於大學生對寵物狗及流浪狗的包容程度

關於大學生對寵物狗及流浪狗的包容程度在2018年大學的第乙個學期,我們學院的電子資訊導論課程中布置了一項任務 對於乙個感興趣的話題進行問卷調查和資料分析。我們組選擇的話題是對寵物狗及流浪狗的包容程度。本次共有25人參與了調查問卷,他們中40 為女性,60 為男性,且都為電子科技大學理科學生。其中喜歡...