river-crossing-puzzle

    1熱度

    2回答

    我正在使用C#在傳教士和食人族上做我的項目。我使用了兩種搜索算法,即廣度優先搜索和深度優先搜索。使用廣度優先搜索,程序從根目錄找到第12級的結果。但使用深度首次搜索,它無法找到解決方案,這掛我的電腦。我認爲它在圖表中進入一個循環。所以我的問題是,我不能使用Depth首先搜索來解決傳教士和食人族的問題嗎? 代碼廣度優先搜索是 public State getSolutionStatesBFS(Sta

    3熱度

    4回答

    我試圖通過clpfd解決'從Zurg'問題'逃脫。 https://web.engr.oregonstate.edu/~erwig/papers/Zurg_JFP04.pdf 玩具從左側開始向右側移動。這是我有: :-use_module(library(clpfd)). toy(buzz,5). toy(woody,10). toy(res,20). toy(hamm,25). %

    5熱度

    2回答

    三個食人族和三個傳教士必須過河。他們的船隻能容納兩個人。如果食人族比傳教士人數多,傳教士就會陷入困境(我不會描述結果)。每個傳教士和每個食人族都可以划船。六個人怎麼能穿過這條河? 我找不到使用IDDFS(迭代加深深度優先搜索)和GreedyBFS(貪心最佳優先搜索)解決此問題的算法。關於如何解決這個問題的想法也會讓我開心。 編輯: 我發現了一個算法IDDFS對維基: IDDFS(root, goa

    4熱度

    5回答

    我正在努力解決經典傳教士(M)和食人族(C)的問題,左岸的起始狀態是3M和3C,目標狀態是3M,右岸是3C。我已經完成了程序中的基本功能,並且需要實施BFS和DFS等搜索策略。 基本上我的代碼是從互聯網上學習的。到目前爲止,我可以使用DFS方法成功運行該程序,但我嘗試使用BFS運行它總是返回false。這是我第一個SWI-Prolog程序,我找不到我的代碼在哪裏。 這裏是我的代碼的一部分,希望你能

    0熱度

    1回答

    它是傳教士 - 食譜程序,發現錯誤在行法律(3,x).legal(0,x)。 % : mandc(state(3,3,left), [state(3,3,left)], Path)? mandc(state(0, 0, right), _, []). mandc(CurrentState, Visited, [Move | RestOfMoves]) :- newstate(Current

    1熱度

    1回答

    所以首先我很抱歉問this question。但是「逃離Zurg」的文章幫助了我很多,我可以爲狼山羊白菜問題寫出自己的解決方案。我正在下面放置我的代碼。我希望你能告訴我 如果我的代碼是寫在F#的真正精神和函數式編程 這是解決問題的最佳和良好的解決方案 open System (* The type direction determines which direction the hu

    2熱度

    1回答

    我想解決農民,山羊,狼,白菜謎語使用廣度優先技術,我遇到了一些問題。當我嘗試收集樹的第二級的所有有效組合時,它會失敗。這裏是相關的代碼, extend([Node|Path], NewPaths) :- bagof([NewNode, Node|Path], (s(Node, NewNode), not(member(NewNode, [Node|Path]))),

    2熱度

    2回答

    我試圖在Prolog中編寫程序來解決衆所周知的狼山羊白菜拼圖。鑑於一個想用狼,山羊和捲心菜過河的農民。船隻同時舉行兩次,他不能與山羊或山羊一起離開狼。 我知道這裏有Stackoverflow的工作解決方案。但我想在我的代碼中找到用於學習目的的錯誤。這是我的代碼。它導致了所謂的本地堆棧溢出,我想邏輯中有一個錯誤。由於我評論了每個區塊,所以應該很容易理解。 % Helper function to c

    -1熱度

    1回答

    我需要一些幫助,我們的教授給我們的數學任務。任何建議都會有幫助。 問題是: 有N個食人族和M missinaries。所有傳教士都有一個強度屬性,可以是1或任何正整數。強度表示他可以擊退多少食人族。 基本上有兩條河,有兩條船,你必須把所有的人轉移到另一邊,而不讓食人族吃傳教士。 你會爲此編寫一個程序嗎?轉移分組算法是什麼? 感謝預期, 馬克。

    4熱度

    1回答

    所以我被授予了一個任務來嘗試在Prolog中解決這個問題,儘管老師只介紹了基礎知識,而這實質上是Prolog中唯一的項目。我覺得我在想這件事,而且他只是期待第一次Prolog程序。 該問題列在下面,我應該如何解決這個問題? 編寫一個解決下面的單詞問題的Prolog程序。作爲解決方案的一部分,它應該列出所有交叉路口,並首先列出劃手。 湯姆,傑克,比爾和吉姆不得不穿過一條只能容納兩人的獨木舟。 在從河