怎么编程模拟酒吧问题?

酒吧问题是指这样一个博弈:有一群人,比如总共有100人,每个周末均要决定,是去附近的一个酒吧活动还是呆在家里。该酒吧的容量是有限的,比如空间是有限的,或者座位是有限的。我们假定酒吧的容量是60人,或者说座位是60个。如果去酒吧的人数少于60,并且他也去了,他的决定就是正确的;或者,如果去酒吧的人超过60人,而他没有去——当然这只有事后才知道,他的决定也是正确的。否则,其决定是错误的。 这里,我们假定他们之间不存在信息交流。我们看到,每个人根据对总的去酒吧人数的预测,而决定去酒吧与否。如果他预测去酒吧的人数超过60人,他将做出“不去酒吧”的决定,如果其预测不超过60人,他将做出“去酒吧”的决定。

怎么编写程序来模拟这个问题,并得到最终结果即去酒吧与不去酒吧的人数比。

这个问题可以使用随机模拟来解决。下面是一个用 Python 编写的模拟酒吧问题的程序:

import random

num_people = 100
bar_capacity = 60
num_at_bar = 0
num_at_home = 0

for i in range(num_people):
    prediction = random.randint(0, num_people)
    if prediction < bar_capacity:
        num_at_bar += 1
    else:
        num_at_home += 1
    if num_at_bar + num_at_home > bar_capacity:
        num_at_home -= 1

print("Number of people at the bar: ", num_at_bar)
print("Number of people at home: ", num_at_home)