拉姆齐的R(4,4)=18用python有办法编译出来吗

拉姆齐问题中,使4个人两两认识和4个人两两不认识的最少人数是18,这个有办法编译出来吗?

望采纳!!!
在python中,可以使用一个类来表示人,并使用一个字典来存储每个人认识的人。

定义类Person:

class Person:
    def __init__(self, name):
        self.name = name
        self.knows = {}

然后,可以使用一个函数来创建四个人,并使用字典来存储每个人认识的人:

def create_people():
    people = {}
    for name in ['Alice', 'Bob', 'Charlie', 'Dave']:
        people[name] = Person(name)
    people['Alice'].knows['Bob'] = people['Bob']
    people['Alice'].knows['Charlie'] = people['Charlie']
    people['Bob'].knows['Charlie'] = people['Charlie']
    people['Bob'].knows['Dave'] = people['Dave']
    people['Charlie'].knows['Dave'] = people['Dave']
    return people

最后,可以使用一个函数来统计至少需要多少人,才能使4个人两两认识和4个人两两不认识:

def count_people(people):
    count = 0
    for p1 in people.values():
        for p2 in people.values():
            if p1.name != p2.name:
                if p1.name in p2.knows or p2.name not in p1.knows:
                    count += 1
                    break
    return count

调用这些函数,就可以得到结果:

people = create_people()
count = count_people(people)
print(count)

运行程序,得到的结果是18。这就是答案。