微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

平面图上的6个颜色定理的递归实现

如何解决平面图上的6个颜色定理的递归实现

此刻我正在练习递归技巧,并遇到了6种颜色定理,指出:

每个平面图可以用6种颜色着色。

该定理是根据以下观察得出的:每个平面图 G 都有一个顶点v,其度数小于或等于5。

这个想法很简单:选择v小于或等于5的v。对v使用第6 颜色。

我试图用伪代码递归地实现该定理:

colorPlanargraph(planar Graph G=(V,E)) 
    if |V| <= 6 then 
        color every node with a different color 0,...,5
    
    v = vertex with degree less than or equal to 5
    G' = colorPlanargraph(G-v)
    colors = [true,true,true] 
    
    foreach u in Adj[v] do
        colors[u.color] = false; 
    for i=0 to 5 do 
        if colors[i] then 
             v.color = i
             break

此伪代码是否正确,我可以将每个归纳证明转换为递归算法吗?

解决方法

此伪代码正确吗

对我来说很好。我们必须查看详细信息以了解其复杂性,但这当然是有道理的。

我可以将每个归纳证明都转换为递归算法吗?

我不确定这个问题是否有意义。证明不一定转化为可以用算法描述的东西。可能这将有助于证明存在性定理。 (我们在这里证明了6色的存在。)但我什至不确定。在其他情况下,我不知道这意味着什么。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。