簡單迷宮問題

迷宮實驗是取自心理學的一個古典實驗。在該實驗中,把一只老鼠從一個無頂大盒子的門放入,在盒子中設置了許多墻,對行進方向形成了多處阻擋。盒子僅有一個出口,在出口處放置一塊奶酪,吸引老鼠在迷宮中尋找道路以到達出口。對同一只老鼠重復進行上述實驗,一直到老鼠從入口到出口,而不走錯一步。老鼠經過多次試驗終于得到它學習走通迷宮的路線。設計一個計算機程序對任意設定的迷宮,求出一條從入口到出口的通路,或得出沒有通路的結論。
數組元素值為1表示該位置是墻壁,不能通行;元素值為0表示該位置是通路。假定從mg[1][1]出發,出口位于mg[n][m]

用一種標志在二維數組中標出該條通路,并在屏幕上輸出二維數組。

m=[[1,1,1,0,1,1,1,1,1,1],[1,0,0,0,0,0,0,0,1,1],[1,0,1,1,1,1,1,0,0,1],[1,0,1,0,0,0,0,1,0,1],[1,0,1,0,1,1,0,0,0,1],[1,0,0,1,1,0,1,0,1,1],[1,1,1,1,0,0,0,0,1,1],[1,0,0,0,0,1,1,1,0,0],[1,0,1,1,0,0,0,0,0,1],[1,1,1,1,1,1,1,1,1,1]]
sta1=0;sta2=3;fsh1=7;fsh2=9;success=0
def LabyrinthRat():print('顯示迷宮:')for i in range(len(m)):print(m[i])print('入口:m[%d][%d]:出口:m[%d][%d]'%(sta1,sta2,fsh1,fsh2))if (visit(sta1,sta2))==0:	print('沒有找到出口')else:print('顯示路徑:')for i in range(10):print(m[i])
def visit(i,j):m[i][j]=2global successif(i==fsh1)and(j==fsh2): success=1if(success!=1)and(m[i-1][j]==0): visit(i-1,j)if(success!=1)and(m[i+1][j]==0): visit(i+1,j)if(success!=1)and(m[i][j-1]==0): visit(i,j-1)if(success!=1)and(m[i][j+1]==0): visit(i,j+1)if success!=1: m[i][j]=3return success
LabyrinthRat()

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/445537.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/445537.shtml
英文地址,請注明出處:http://en.pswp.cn/news/445537.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

qt超強繪圖控件qwt - 安裝及配置

qwt是一個基于LGPL版權協議的開源項目, 可生成各種統計圖。它為具有技術專業背景的程序提供GUI組件和一組實用類,其目標是以基于2D方式的窗體部件來顯示數據, 數據源以數值,數組或一組浮點數等方式提供, 輸出方式可以是…

BFPRT

在一大堆數中求其前k大或前k小的問題,簡稱TOP-K問題。而目前解決TOP-K問題最有效的算法即是BFPRT算法,其又稱為中位數的中位數算法,該算法由Blum、Floyd、Pratt、Rivest、Tarjan提出,最壞時間復雜度為O(n)O(n)。 讀者要會快速排序…

180°舵機的使用步驟

一.步驟 1.首先查看舵機的運行參數,包括工作的電壓和電流,轉1(60)需要的脈寬是多少。 2.根據舵機提供的參數,算出需要的PWM的周期和脈寬的范圍。 3.通過單片機或者其他數字電路產生相應的PWM波,便可以驅…

Qt開源項目

圖像處理: Krita digikam inkscape 編輯器: LiteIDE QDevelper KDeveloper Monkey Studio TeXstudio 繪圖: ZeGrapher QtiPlot qcustomplot QWT HotShots Inkscape 三維建模: QCAD FreeCAD OpenModelica LibreCAD 音樂&#xff1a…

使用Python作為計算器

數值 1.python支持基本的數學運算符,而且應用python你可以像寫數學公式那樣簡單明了。 eg: >>> 2 2 4 >>> 50 - 5*6 20 >>> (50 - 5*6) / 4 5.0 >>> 8 / 5 # division always returns a floating point number 1.6 2.除法…

java整體打印二叉樹

一個調的很好的打印二叉樹的代碼。 用空格和^v來表示節點之間的關系。 效果是這樣: Binary Tree: v7v v6v ^5^ H4H …

前綴樹

是一種哈希樹的變種。典型應用是用于統計,排序和保存大量的字符串(但不僅限于字符串),所以經常被搜索引擎系統用于文本詞頻統計。它的優點是:利用字符串的公共前綴來減少查詢時間,最大限度地減少無謂的字符…

學習4層板設計

今天是第一天嘗試設計四層PCB板,以前只畫過雙層板,所以今天花了好多時間來熟悉多層板的設計方法,現在做一下整理,也方便其他同胞少走彎路~~~我用的軟件是Altium Designer 6(AD6)步驟如下: 1、隨…

PCB設計的基本步驟

一.方案的設計 1.與客戶溝通,確定電路的功能和相關設計指標(如:電源,功耗等)。 2.畫出項目的硬件功能框圖。 3.設計出多種方案,并對多種方案進行對比,最終選出最合適的方案。 4.根據上述所…

堆應用例題三連

一個數據流中,隨時可以取得中位數。 題目描述:有一個源源不斷地吐出整數的數據流,假設你有足夠的空間來保存吐出的數。請設計一個名叫MedianHolder的結構,MedianHolder可以隨時取得之前吐出所有樹的中位數。 要求: 1…

HistCite 的使用方法

摘要 讀文獻自然要讀精品,在面對一個陌生領域,如何才能以最快速度定位精品文獻呢?本文將詳細介紹 HistCite 的使用方法,結合 Web of Science 和 Endnote ,演示如何在幾個小時之內,對某個陌生領域的文獻進行…

數組基操三連(2)

轉圈打印矩陣 題目: 給定一個整型矩陣matrix,請按照轉圈的方式打印它。例如:1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,打印結果為:1,2,3,4,5,12,16,15,14,13,9,5,6,7,11,10 要求: 額外空間復雜度為O(1&a…

數據結構課上筆記7

介紹棧和隊列基本概念和用法。 設輸入序列1、2、3、4,則下述序列中( )不可能是出棧序列。【中科院中國科技大學2005】 A. 1、2、3、4 B. 4、 3、2、1 C. 1、3、4、2 D.4、1、2、3 選…

ROC曲線與AUC值

ROC曲線與AUC值 1.概述AUC(Area Under roc Curve)是一種用來度量分類模型好壞的一個標準。這樣的標準其實有很多,例如:大約10年前在machine learning文獻中一統天下的標準:分類精度;在信息檢索(IR)領域中常…

設置SSH免密碼自動登錄(使用別名)

每次登錄服務器都要寫一大串的用戶名(username服務器地址)和登錄密碼十分的繁瑣,所以本文就告訴大家如何通過修改配置文件,達到只需要輸入:ssh jack(你起的別名)就可以一鍵登錄到服務器中。 1.創建公鑰(相當…

串的定長表示

思想和代碼都不難&#xff0c;和線性表也差不多&#xff0c;串本來就是數據受限的線性表。 串連接&#xff1a; #include <stdio.h> #include <string.h> //串的定長順序存儲表示 #define MAXSTRLEN 255 //用戶可在255以內定義最大串長 typedef unsigned cha…

周志華《Machine Learning》 學習筆記系列(1)--緒論

機器學習致力于研究如何通過計算手段&#xff0c;利用經驗來改善系統本身的性能&#xff0c;在計算機系統中&#xff0c;“經驗”通常是以“數據”形式存在的&#xff0c;所以&#xff0c;機器學習的主要內容是關于在計算機上從數據中產生“模型”的算法&#xff0c;即學習算法…

輕松理解牛頓迭代法且用其求平方根

牛頓迭代法概述 牛頓迭代法&#xff08;Newton’s method&#xff09;又稱為牛頓-拉弗森方法&#xff08;Newton-Raphson method&#xff09;&#xff0c;它是牛頓在17世紀提出的一種在實數域和復數域上近似求解方程的方法。 牛頓迭代公式 設rrr是f(x)0f(x)0f(x)0的根&#…

map+DP leetcode446

如果數字序列由至少三個元素組成并且任何兩個連續元素之間的差異相同&#xff0c;則稱為算術序列。 例如&#xff0c;這些是算術序列&#xff1a; 1&#xff0c;3&#xff0c;5&#xff0c;7&#xff0c;9 7&#xff0c;7,7&#xff0c;7 3&#xff0c;-1&#xff0c;-5&am…

如何使用cookie信息,完成自動登錄

在做爬蟲任務的時候&#xff0c;我們常常會遇到很多網頁必須登錄后&#xff0c;才可以開放某些頁面。所以登錄是爬取網頁的第一步。但是&#xff0c;通過post表單&#xff08;包含用戶名和密碼&#xff09;的方法&#xff0c;對于那些不需要輸入比較復雜的驗證碼的網頁&#xf…