java随机分钱_今天用java可视化写一个随机分钱的程序

100个人每个人有100块钱,他们在玩一个游戏。每轮游戏中每个人都要拿出一元钱随机给另一个人,最后这100个人的财富分布是怎么样的?(部分代码)

首先创建个数组,容纳这一百个人:

aabffde44fbea7c6b5dd7643a6658f10.png

然后编写随机给别人一块钱:

1f6dc54d44160c749c01e923943a59a1.png

好先让我们来看看运行结果:

bfc81b1af4931132924bdd908076a479.png

我们看到刚开始差距并不是很大。

接下来我们开始深入这个游戏,那我们怎么加快游戏速度看到变化呢,其实非常简单,我们只需要定义一个k

5c8f572f6daef035422994561e912908.png

a5a1fcb4b7662842fc567d5396491eed.png

这样我们可以清晰的看到每个人财富的变化,变的不平均,其实这样还是不好看出每个人财富分布,我们可以进行排序来实现:

c9f489a339302ce6b0c4831a64864ae1.png

c335128df04a69fd5b4bfa704105be6d.png

当然这都是我们在绘制每个人手上大于0元钱的时候,肯定也会有负债的人,让我们来绘制出来:

cdf384aaba60f446abb9490ed57fe549.png

4c2cd5bab19ff5da11d936a376e02ce3.png

b1044d9916359841123f3f6831292209.png

当我们没做这个实验的时候我们一定觉得钱会保持一个平均状态,但是为什么会出现这样的一个结果呢?

其实我们可以把这个看作一个数学问题,就是把10000块钱分给100个人有多少种分法,平均分给每个人的概率其实非常小,大部分都是不平均的,这就可以解释为什么会出现这种情况。

原文:https://www.cnblogs.com/xwseven/p/11216034.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值