四色(定理/猜想)染色算法小软件Version1.11 2025.6.24 开发者:孝感动天/卧冰求鲤
四色(定理/猜想)染色算法小软件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