美文网首页
百人百钱问题

百人百钱问题

作者: small瓜瓜 | 来源:发表于2019-05-01 18:03 被阅读0次

问题:在一间房间里有一百个人,每个人身上有一百块钱,每过一分钟就随机让一个人让他将自己的一块钱给随机的另一个人,问在经过很长时间后,所以人的钱分布情况如何?

我们大多是人的直接感觉应该是所有人的钱应该都在一百元左右,出现偏差也应该是个别现象。但是事实是怎样的呢?作为一个程序员,我觉到这应该要show一下计算机模拟的结果了

用python写出模拟算法

from random import randint
import pygame


def swap(arr):
    one = randint(0, 99)
    two = randint(0, 98)
    if one <= two:
        two += 1
    arr[one] -= 1
    arr[two] += 1


pygame.init()
width = 805
height = 1000
width_center = width // 2
height_center = height // 2
cell_width = 8
screen = pygame.display.set_mode((width, height))
clock = pygame.time.Clock()
arr = [100] * 100
running = True
count = 0
while running:

    # clock.tick(60)
    swap(arr)
    if count % 10000 == 0:
        events = pygame.event.get()
        for event in events:
            if event.type == pygame.QUIT:
                running = False
                break
        screen.fill((255, 255, 255))
        pygame.draw.line(screen, (0, 255, 255), (0, height_center + 20), (width, height_center + 20))
        pygame.draw.line(screen, (0, 255, 255), (0, height_center), (width, height_center))
        pygame.draw.line(screen, (0, 255, 255), (0, height_center - 20), (width, height_center - 20))

        index = 0
        for i in arr:
            pygame.draw.line(screen, (255, 0, 0) if i > 0 else (0, 0, 0), (index * cell_width + 3, height_center),
                             (index * cell_width + 3, height_center - i // 10),
                             cell_width - 1)
            index += 1

        mi = min(arr)
        ma = max(arr)
        font = pygame.font.SysFont("arial", 50, True)
        text = font.render("Max:{},Min:{}".format(str(ma), str(mi)), True, (0, 0, 0))
        screen.blit(text, (10, height - 100))
        pygame.display.update()
    count += 1
结果1 结果2

结果还是令人费解的,最终会出现很大的“贫富差距”,也许这可能是电脑产生的随机数是伪随机数的原因吧。

相关文章

  • 面子

    和友人聊天,谈到面子问题,觉得这个问题挺复杂,百人百面,百人百心,认识肯定会有好多不同。 人生存于世,也就是为了一...

  • 面子

    和友人聊天,谈到面子问题,觉得这个问题挺复杂,百人百面,百人百心,认识肯定会有好多不同。 人生存于世,也就是为了一...

  • 百人百钱问题

    问题:在一间房间里有一百个人,每个人身上有一百块钱,每过一分钟就随机让一个人让他将自己的一块钱给随机的另一个人,问...

  • 心佛

    百人心 百人问 百人听佛百种义 百人恨 百人离 百人问佛百种世 佛为人 人为佛 人佛蹉跎多交错 佛求人 人求佛 互...

  • 001启动

    这是百人计划4期的启动课,课程中,IDO老徐给我们讲解了什么是百人计划,百人计划怎么学,以及百人计划的核心使命,或...

  • 有多少个现在

    今日看望几百人之老大,几百人之精神支柱,几百人之标杆,几百人的帜,。。。心之感概,生命无常,可能发生在任何之不可能...

  • 百人计划之79

    因为账号问题,停更一段时间,现在我又回来啦!继续我的百人计划,第79幅人像。

  • 养心殿1

    一米百人千样,吃出疾病健康。 心念生问题,浑浑噩噩好养? 业障,业障,并足摇摆绝望。

  • 每月挣三千,八十岁的农村老婆婆都瞧不起

    由于厂里近一两年不景气,订单减少,工厂在缩小,原先一千五六百人的工厂,现在不到六百人。 就是这不到的六百人,厂...

  • 百人接力小说(39)|体验游戏

    本文参加百人接力写小说征文活动 百人接力写小说【目录】 上一章:百人接力小说(38)|换个账号给你们讲故事 本章:...

网友评论

      本文标题:百人百钱问题

      本文链接:https://www.haomeiwen.com/subject/wajwnqtx.html