1樓:馮老師(必果學院
思路:建立資料結構,錄入資料內容,遍歷著色,輸出第一個可行的著色方案。
下面就四個方面詳細分析一下
首先分析資料結構:
對於地圖,一個區塊包含一個唯一編號資料(這個編號可以是地名,也可以是數字)用來區分該區塊和其他區塊的不同
另外要著色,還要考慮該區塊和其他區塊連線的情況
最後就是區塊本身的顏色
通過上面的分析,即可建立如下資料結構:
struct area;
然後需要錄入資料,這個請依據具體的地圖進行處理,撰寫相應的錄入函式,填入上面的資料結構
假設錄好的資料如下:
struct area city[64];//假設已經錄製好了資料,初始所有城市顏色都為0
資料錄好後,我們可以如下方式進行遍歷,嘗試著色
遍歷分為個模組:一個是遍歷模組,一個是校驗模組
校驗模組依序檢查所有的城市和其鄰接城市是否存在同色的情況,是則返回false,否則返回true
遍歷模組則逐個城市進行上色嘗試
可以考慮遞迴
下面給一個遞迴的示例:
檢測模組:
bool isok()else}}
return false;//沒有一個顏色可行,返回上一級,重新尋找
}呼叫的時候可以採用下面的方式:
if(addcity(0)==false)else}
2樓:依蘭彬歌
圖論的面著色問題。
首先是要輸入一個圖。地圖中的每一個區域在圖中成為一個頂點(vertex),兩個區域相鄰在圖中表示為兩個頂點之間的一條邊(edge)。
這個要怎麼輸入呢?測試的時候可以先在**裡直接內建圖的結構,要使用者輸入的話那就是ui的問題了。
輸入完成以後,程式的記憶體裡就有一張無向圖了,圖的表示方法,簡單的可以用鄰接矩陣來表示。
至於演算法,一個比較簡單的是深度優先搜尋。
比如總共有10個頂點,那麼至多有4^10種著色方案。
從(c1, c1, c1, c1, c1, c1, c1, c1, c1, c1)到(c4, c4, c4, c4, c4, c4, c4, c4, c4, c4)逐一判斷即可。判斷的過程中可以加入剪枝操作以提高效率。
比如(c1, c1, ...)這個方案在確定了2個頂點的顏色後已經矛盾了,那麼就直接把後面的剪掉,從(c1, c2, ...)開始搜尋
3樓:匿名使用者
著名的四色定理是指出任何平面區域圖均可用四種顏色著色,使相鄰區域著不同的顏色。本程式對給定的區域圖找出所有可能的不超過四種顏色的著色方案。程式中用 1~4 表示四種顏色。
要著色的 n 個區域用 0~n一1編號,區域相鄰關係用 adj 矩陣表示,矩陣的 i 行 j 列的元素為 1 ,表示區域 i 與區域 j 相鄰;矩陣的 i 行 j 列的元素為 0 ,表示區域 i 與區域 j 不相鄰。陣列 color 用來儲存著色結果, color[i] 的值為區域 i 所著顏色。
另外,虛機團上產品**,超級便宜
c語言問題 **如圖 取餘為什麼會出錯
4樓:璀璨星空
%1000取餘是返回整數,
要給a[0]的話需要強制轉換a[0]=(float) ();
5樓:闖蕩翰海
可以提供有償指導,我是計算機的
c語言程式問題
6樓:匿名使用者
求0-n 各個數的階乘之和。。。
當讓不能自動四捨五入了,計算可能會自動去小數部分(相當於去1法)
7樓:匿名使用者
s=__1___;這樣的賦值方式看不懂,執行也報錯,希望指點。
簡單實現四捨五入的方法,資料後+0.5,這樣自動丟失小數部分,就達到四捨五入的效果。
8樓:匿名使用者
long f(int n) //求階乘的函式void main()
最後的問題,不是vc6.0的程式可以自己四捨五入,而是printf這個函式列印的時候會幫你四捨五入列印出來,跟vc什麼的完全無關
那個k=1 去掉,沒有定義型別,也沒用到,改成我上面的**就沒錯了
做數學難題和學習語言編輯,例如:c語言 那個更枯燥? 相對來說語言編輯,若某難點被攻破,程式正
9樓:馮老師(必果學院
並沒有誰更加枯燥,而是看個人興趣而言
事實上程式設計和數學是密不可分的
很多數學問題就是用程式設計來解決的(比如四色定理,計算π等)如果個人對程式設計有興趣,那麼程式設計也就沒有什麼枯燥的瞭如果個人對數學有興趣,那麼數學也就沒有什麼枯燥的瞭如果對上述都不感興趣的人,無論做什麼,都會覺得很枯燥
10樓:_永遠的土
研究數學更枯燥吧,需要耐得住寂寞,而計算機語言的學習,**的敲打,其實還有一種和計算機互動的樂趣,你要比較也應該是演算法之類的學習。
當然只是個人觀點。
11樓:
數學比較好玩吧,當你一次次攻克完稀奇古怪的問題時特有成就感。數學範圍比較廣所以樂趣相對多一點
四色原理是怎麼證明的,黎鳴是怎麼證明四色定理的?
數學愛好者都會注意到錢學森在文章中所提的一件事 去年數學界哄動一時的一件事,是用電子計算機證明了數學上的四色定理。畫地圖要求相鄰兩國不用同一色,一幅地圖只需要四種顏色。要證明這個定理很難,數學家經過上百年的努力,證明不了。去年美國數學家用電子計算機證明了。他們看到這個問題要證明並不是不可能,而是證明...
四色印刷機怎麼調色的啊,四色印刷機是不是一次只能印四個顏色
想學就要去印刷廠學。你會ps會有一點幫助。但實際上更多的是要經驗,從對機器的瞭解開始,四色印刷顏色是靠四色網疊加得到的,黃,紅,藍,黑,四色分成四組,根據畫面裡紅黃藍黑四種顏色的分佈做出四塊絲網版,一般用晒相的原理來製作,然後用絲網版來印出一個顏色,幹後,再印第二個顏色,直到四色印完。這時,有些顏色...
訂婚四色禮和上門四色禮一樣嗎包頭訂婚給了四色禮結婚還用給嗎?
按傳統習俗來說,訂婚四色禮和上門四色禮是不一樣的。訂婚四色禮是男方家通過媒人去女方家正式求婚的一種方式。由媒人攜 四色禮 茶葉 冰糖 罐頭或果品 糕點等 去女方家正式求婚,女方家同意便接受 落話禮 並約定訂婚日期。否則,拒收此禮。訂婚,有的地方稱 提大禮 即由男方給女方及其直屬族親 姑舅 兄妹等送 ...