You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调整Python图着色代码使节点a和f颜色不同?

问题根因

你当前代码中a和f颜色相同的核心原因是邻接表没有将a和f定义为相邻节点,原有图着色逻辑仅校验相邻节点颜色不能重复,对非相邻节点无约束,因此二者同色符合现有代码逻辑。

解决方案

根据你的实际需求二选一即可:

方案1:a和f本应为相邻节点(漏写邻接关系)

直接更新邻接表,给两个节点互相添加为邻居即可,无需修改其他逻辑:

neighbours = {}
neighbours['a'] = ['b', 'c','d','e', 'f'] # 新增f为a的邻居
neighbours['b'] = ['a', 'f', 'd']
neighbours['c'] = ['a', 'f', 'd']
neighbours['d'] = ['a', 'f', 'b']
neighbours['e'] = ['a', 'c', 'f']
neighbours['f'] = ['b', 'c', 'd', 'e', 'a'] # 新增a为f的邻居

方案2:a和f确实不相邻,但业务要求必须颜色不同

无需修改邻接表,直接在校验函数中新增a和f的同色拦截规则即可:

def promising(vertice, colour):
    for neighbour in neighbours.get(vertice): 
        colour_of_neighbour = colours_of_vertices.get(neighbour)
        if colour_of_neighbour == colour:
            return False
    # 新增a和f不同色的特殊校验
    if (vertice == 'a' and colours_of_vertices.get('f') == colour) or (vertice == 'f' and colours_of_vertices.get('a') == colour):
        return False
    return True

修改完成后重新运行代码,输出的a和f颜色就会不同。


内容的提问来源于stack exchange,提问作者Vishakha Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 09:36:00