四色(定理/猜想)染色算法小軟件Version1.11 2025.6.24 開發者:孝感動天/臥冰求鯉
開發者:路人甲/打醬油
開發者:四色定要治理/四鄰不安/相鄰必反/草木皆兵/圍棋緊箍/不是我~干的/和我無關
開發者:不是我/不是我干的,和我無關/與我無關,身無分文/心無罣礙,路人甲/打醬油,老矮丑窮/身矮面丑一米八九
開發者:不/不是我/不是我干的/不是我干的好事/孝感動天
四色定理染色算法小軟件Version1.11 2025.6.13 開發者:不是我/不是我干的,和我無關/與我無關,身無分文/心無罣礙,路人甲/打醬油
2025-6-16增加了【自思肯普法】
為什么加上【自思】兩字?因為我也看不明英文的PDF的四色定理證明文檔,分什么成千上百種類來證明。我就是百度下,看相關介紹,然后自已思考,也不知原來的肯普法是不是這樣的,我就開發來測試了。
個人認為,四色定理,與哥德巴赫猜想和角谷猜想不太一樣,后兩者幾乎沒什么實用價值,只是玩游戲似的,驗證容易,求證艱難。但四色定理,似乎有實用性的,就算證明不出來,能染色算法出來,結果是對的,亦有實用價值乎。結果可以驗證的,就是逐個看點的鄰邊有沒有同色異色就知對錯,至于這結果用什么算法出來的,是其次的事乎。
我網上搜來的那個114點的反例圖,圖片是手工的,我要手工轉化成畫圖或PS中的圓與直線,也是一件小煩事。那個希伍德25點反例圖,是百度:五色定理,另存為得來的。
我這四色定理染色算法小軟件,是半成品,不是完美的,為了得知算法結果是不是對的,不理界面,也不理使用方便,自已能用就行,所以用起來不是很方便,自已摸索一些沒有說明的用法,比起來對原來的四色猜想一無所知,有這小軟件用下,或可以暫可以乎。
軟件為方便開發,只有一個演示項目和一個用戶項目,如果要多個,可以COPY多個本文件夾內含應用,每個COPY一個新用戶項目。這個當然可以開發更方便些,只是不想在此多花時間,因為還有更多事做。
例如肯普鏈代碼未完成等等,還有很多生活事人生事沒有做過等等。。。。。。
4環肯普鏈樹,5環肯普鏈樹,這兩功能代碼我也沒完成,發現,網上那個114點反例已經可以解決了,甚至希伍德的25點反例,也可以解決了,我有點不明,當年肯普用過自已的肯普法來解決希伍德的25點反例嗎?肯普鏈的代碼雖未完成,這個半成品,估計已可解決不少四色染色算法的實用問題了,所以發布出來分享下,獨樂樂不如眾樂樂也乎。
實際開發,想找個要用到肯普鏈的實例也難找到。所以網上證明成千上萬的分類,是咋回事,我也不明,但不影響染色算法的實用性,或許那是求證明,不是實用染色,就象驗證哥德巴赫猜想角谷猜想與證明之不同樣乎。
那個相對論中洛倫茲公式也不容易理解,兩個參照系六個參數,xt,x't',vc,是不是與現實哲學天地人相映射等等,一粒光子是不是一個宇宙,一花一世界也乎,宇宙全集光子如空集,空即一切,哲學?物理學?數學?人生哲理?無窮無盡???
這幾天臺風期間,臺風過后天氣涼爽也,梅菉到振文圩的大路邊,田野千里,空氣清新,鄉村小洋樓林立,風景不錯也。至于這小軟件的維護完美,以后慢慢來,這個半成品,頂住檔先,暫且游山玩水去也。。。。。。
簡單開發一個小軟件,很多無關因素很煩人,硬件經常莫名損壞,去年購的U盤不知咋的不能用了,后來發現裝了linux系統可能不通用文件系統造成的,主機經常無法啟動,可能硬件過時灰塵之類,各種工具軟件總是用下用下不順意,也不知錯在哪,疲勞一天沒有任何進展很常見,幸好不打算以后再以電腦為職業工作揾飯食了,否則焦慮癥心急疲勞無窮盡痛苦了。。。。
2025-6-24增加了【四環五環肯普鏈代碼】
由于現實中,我經歷過的實際地圖染色極少,以網上114點反例和網上下載的當年聽講是希伍德25點反例,都是不需要肯普鏈的,所以,我唯有在114點反例基礎上,自已增加點線,這點線是不是符合實際地圖,也是不知的,因為六國不可能兩兩互鄰一樣。我自增點線,為了調試寫肯普鏈代碼,這樣,確實比較粗略地寫出了局部四環肯普鏈代碼,可以調試,但是,實際地圖如果真的需要肯普鏈,這代碼會不會有新的BUG,這個我現在估計不到也。
將四環肯普鏈代碼,稍加修改,成了五環肯普鏈代碼,這樣,四色定理染色算法小軟件,算粗略完成了。實際應用時,會產生什么BUG,這個不清楚,需要用到這小軟件的網友,能不能到時反饋些實際遇到需要肯普鏈時的點線圖拓撲圖地圖數據給我呢,難道肯普鏈這情況實際地圖很少或根本沒有的???
下面是我的四環肯普鏈代碼,至于小軟件的完美,各種操作提示,技巧,錄入質點與定義線的小技巧,或以后慢慢理會也。
調試四環肯普鏈時,設斷點,每行一步,就改下數據表中字段顏值,以觀察代碼運行是不是象臺球碰撞水波漣漪一樣效應,因為實際上要有這種數據不容易,只能到時每步改一下來調試也。
不太容易。但是,從小就對四色定理有興趣,興趣是唯一動力也。但太難的也不行,要停下來,要有時間去買醬油,游山玩水,勞動者休息十分重要也,休息象吃飯一樣,沒有吃飯,不可能工作,同理,沒有休息也是一樣的。。。。。。
此小軟件中的點可以用鼠標拖動等操作的,但是有時不靈敏,這些以后再理會了。。。
// 4環肯普鏈樹 必定1234 ,1243,1347,1324,1423,1432,每點變一次,不是僅變兩次
? ? ? ? showmessage('4環肯普鏈樹');
? ? ? ? //showmessage('4環肯普鏈樹 必定1234');
? ? ? ? // refreshhClick(nil); // 刷新圖中各點
? ? ? ? Tcolor4pCode[0] := ADOQuery2.FieldByName('pcode').AsString;
? ? ? ? // refreshoneP(inttostr(0), Tcolor4pCode[0], 3000, clgreen);
? ? ? ? refreshoneP(inttostr(0), Tcolor4pCode[0], 0, clgreen);
? ? ? ? // ('P54', 'P55', 'P18', 'P17', 'P99')
? ? ? ? // 終于自建了一個點線狀數據測試了,可能不符合現實世界的片狀地圖。測試點線狀地圖,只為測試肯普鏈用,結果也不知有沒解。
? ? ? ? ADOQuery1.First;
? ? ? ? while not ADOQuery1.Eof do
? ? ? ? begin
? ? ? ? ? for colorindex := 1 to 4 do
? ? ? ? ? begin
? ? ? ? ? ? if ADOQuery1.FieldByName('pFC1').AsInteger = colorindex then
? ? ? ? ? ? ? Tcolor4pCode[colorindex] :=
? ? ? ? ? ? ? ? ADOQuery1.FieldByName('pcode1').AsString;
? ? ? ? ? ? if ADOQuery1.FieldByName('pFC2').AsInteger = colorindex then
? ? ? ? ? ? ? Tcolor4pCode[colorindex] :=
? ? ? ? ? ? ? ? ADOQuery1.FieldByName('pcode2').AsString;
? ? ? ? ? end;
? ? ? ? ? ADOQuery1.Next;
? ? ? ? end; // 以上為Tcolor4pCode[i]賦值
? ? ? ? // 數據正常下,不是普遍無規律的 14,3,4,13,42
? ? ? ? isHaveSameColor := False;
? ? ? ? // C1248C1111 備份字段用也
? ? ? ? adotemp.Close;
? ? ? ? adotemp.SQL.Text := 'update points set C1248C1111=FC where dprid=' +
? ? ? ? ? dprid + ' ';
? ? ? ? adotemp.ExecSQL;
? ? ? ? // refreshoneP(inttostr(1), Tcolor4pCode[1], 1000, clYellow);
? ? ? ? // refreshoneP(inttostr(2), Tcolor4pCode[2], 1000, clblue);
? ? ? ? // refreshoneP(inttostr(3), Tcolor4pCode[3], 1000, clLime);
? ? ? ? // refreshoneP(inttostr(4), Tcolor4pCode[4], 1000, clFuchsia);
? ? ? ? refreshoneP(inttostr(1), Tcolor4pCode[1], 0, clYellow);
? ? ? ? refreshoneP(inttostr(2), Tcolor4pCode[2], 0, clblue);
? ? ? ? refreshoneP(inttostr(3), Tcolor4pCode[3], 0, clLime);
? ? ? ? refreshoneP(inttostr(4), Tcolor4pCode[4], 0, clFuchsia);
? ? ? ? // looktime(10000);
? ? ? ? // looktime(-1);
? ? ? ? /// ///
? ? ? ? self.savetoLabelcaption;
? ? ? ? for p1 := 1 to 4 do // 原色點
? ? ? ? begin
? ? ? ? ? for p2 := 1 to 4 do // 取其余色時
? ? ? ? ? begin // 有一個成立就行了
? ? ? ? ? ? if p1 = p2 then
? ? ? ? ? ? ? continue;
? ? ? ? ? ? orderStep := 1;
? ? ? ? ? ? adotemp.Close;
? ? ? ? ? ? adotemp.SQL.Text := 'update points set FC=C1248C1111 where dprid='
? ? ? ? ? ? ? + dprid + ' '; // 手工調試時,將兩個字段齊改才行
? ? ? ? ? ? adotemp.ExecSQL;
? ? ? ? ? ? adotemp.Close;
? ? ? ? ? ? adotemp.SQL.Text := 'update points set C=0 where dprid=' +
? ? ? ? ? ? ? dprid + ' ';
? ? ? ? ? ? adotemp.ExecSQL;
? ? ? ? ? ? adotemp.Close;
? ? ? ? ? ? self.fromLabelcaptionC(clred);
? ? ? ? ? ? // Tcolor4pCode[3] := 1; // 肯普鏈樹開始點
? ? ? ? ? ? adotemp.SQL.Text := 'update points set FC=' + inttostr(p2) +
? ? ? ? ? ? ? ',C=1 where pco
下載這小軟件,免費免積分免VⅰP
https://download.csdn.net/download/e271828/91133349?spm=1001.2014.3001.5501