小米1233 2023-07-14 00:49 采纳率: 0%
浏览 83
已结题

拉姆齐相关的问题,求解答

是关于拉姆齐数Ramsey number的问题,即R(k),但是是特殊情况的,即每个顶点的连线都是左右对称的,而且两种颜色连线数量相同,每个点都是相同方式的连线,如图所示,图中是R(4,4) 17的证明图,即图中没有四个点的团,是完全对称的。不是求拉姆齐数,是给出一个顶点数N,求N个顶点的这种完全对称的图中,不包含大小为k和大小为m的团,即R(k,m),k和m可以相同也可以不同,k和m和N都是输入的,如果给出的N是奇数,那么两种颜色连线数量相同。如果给出N是偶数,输入的k≤m,输入的k肯定是小于等于m的,那么不包含k的团的颜色的线在每个点上的连线数量是(N-2)/2,不包含m的团的颜色的线在每个点上的连线数量是N/2,图也是完全对称的。
就是给出一个N个顶点的完全图中,只需要计算出完全对称的这种排列组合情况下,存不存在不包含大小为k和大小为m的团这种情况,如果有,给出一种计算结果就行,然后给出任意一个点上连线方式就行,点可以用1,2,3,4....n表示。
不限制编程语言,但要给出完整代码,包括开头什么的,就是可以直接运行的。

img

  • 写回答

8条回答 默认 最新

  • CSDN专家-sinJack 2023-07-20 10:03
    关注

    参考:

    import itertools
    
    def is_clique(graph, vertices):
        for v1, v2 in itertools.combinations(vertices, 2):
            if v2 not in graph[v1]:
                return False
        return True
    
    def generate_graph(N):
        graph = {}
        for i in range(1, N+1):
            graph[i] = set()
            for j in range(i+1, N+1):
                graph[i].add(j)
                graph[j].add(i)
        return graph
    
    def find_clique_free_graph(N, k, m):
        if N % 2 == 0:
            k_count = (N-2) // 2
            m_count = N // 2
        else:
            k_count = m_count = (N-1) // 2
        
        for k_comb in itertools.combinations(range(1, N+1), k):
            if not is_clique(graph, k_comb):
                for m_comb in itertools.combinations(range(1, N+1), m):
                    if not is_clique(graph, m_comb):
                        return k_comb
        
        return None
    
    # 输入参数
    N = int(input("请输入顶点数N:"))
    k = int(input("请输入k:"))
    m = int(input("请输入m:"))
    
    graph = generate_graph(N)
    result = find_clique_free_graph(N, k, m)
    
    if result:
        print("存在不包含大小为{}和{}的团".format(k, m))
        print("一种计算结果为:", result)
    else:
        print("不存在不包含大小为{}和{}的团".format(k, m))
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月21日
  • 修改了问题 7月14日
  • 赞助了问题酬金20元 7月14日
  • 修改了问题 7月14日
  • 展开全部

悬赏问题

  • ¥20 想写一个文件管理器,加载全部子文件夹后,要一级一级返回
  • ¥15 华为超融合部署环境下RedHat虚拟机分区扩容问题
  • ¥15 哪位能做百度地图导航触点播报?
  • ¥15 请问GPT语言模型怎么训练?
  • ¥15 已知平面坐标系(非直角坐标系)内三个点的坐标,反求两坐标轴的夹角
  • ¥15 webots有问题,无响应
  • ¥15 使用VH6501干扰RTR位,CANoe上显示的错误帧不足32个就进入bus off快慢恢复,为什么?
  • ¥15 大智慧怎么编写一个选股程序
  • ¥100 python 调用 cgps 命令获取 实时位置信息
  • ¥15 两台交换机分别是trunk接口和access接口为何无法通信,通信过程是如何?