首页 > 其他分享 >一个有意思的分钱模拟问题

一个有意思的分钱模拟问题

时间:2022-10-11 21:38:42浏览次数:55  
标签:分钱 有意思 int money ++ length 100 com 模拟

大家好,我是吴师兄,今天来分享一个有意思的分钱模拟问题,为了帮助大家理解,采取了可视化的方式。

这个问题描述是这样的:房间里有 100 个人,每人都有 100 元钱,他们在玩一个游戏。每轮游戏中,每个人都要拿出一元钱随机给另一个人,最后这 100 个人的财富分布是怎样的?

猜一下,经过 10000 次的交换,你们认为最后的结果会是怎么样子的?

5

4

3

2

1

登登登,答案是这个样子的。


一个有意思的分钱模拟问题_数据

和你的直觉想法有出入吗?是不是一开始认为是平均分布的?

事实上,很多人一开始都没想到结果会是这样子的。

我们借助 Java GUI 来可视化的理解这个问题。

首先初始化数据,一开始每人都有 100 元钱。

// 初始化数据
money = new int[100];
for(int i = 0 ; i < money.length ; i ++)
money[i] = 100;


一个有意思的分钱模拟问题_初始化_02

初始状态

然后每轮游戏中,每个人都要拿出一元钱随机给另一个人

for(int i = 0 ; i < money.length; i ++){
if(money[i] > 0){
int j = (int)(Math.random() * money.length);
money[i] -= 1;
money[j] += 1;
}
}


一个有意思的分钱模拟问题_数据_03

不够直观?那我们可以先排序再显示。

Arrays.sort(money);
for(int i = 0 ; i < money.length; i ++){
if(money[i] > 0){
int j = (int)(Math.random() * money.length);
money[i] -= 1;
money[j] += 1;
}
}


一个有意思的分钱模拟问题_初始化_04

排序

我们可以发现,初始时所有人的财富值相等,随着游戏的进行,财富值差距越来越大,而不是均匀分布。

感兴趣继续研究的小伙伴可以下载下方的源码。

完整代码:https://github.com/MisterBooo/AmazingAlgo

参考阅读:

  • 看的见的算法:https://coding.imooc.com/class/138.html
  • 该如何面对这个残酷的世界?:https://www.sohu.com/a/162310796_99952273



标签:分钱,有意思,int,money,++,length,100,com,模拟
From: https://blog.51cto.com/csnd/5748019

相关文章

  • [2022.10.11 模拟赛] 联通块
    题意简述给定一颗树,每个点有点权\((a_i,b_i)\)。问满足\(\suma_i\lem\)的连通块的\(\sumb_i\)的最大值。\(n\le10^3,m\le10^4\)分析有一个显然的\(\mat......
  • 电路与模拟电子学
    KCLKVL节点电压法叠加定理齐次原理戴维宁定理诺顿定理受控源电路分析外加电源法......
  • CCF CSP认证注册、报名、查询成绩、做模拟题等答疑
    CCFCSP认证注册、报名、查询成绩、做模拟题等答疑CCFCSP认证中心将考生在注册,或报名,或查询成绩,或历次真题练习时遇到的问题进行汇总,并给出解决方法,具体如下:1、注册......
  • 学习常用模型及算法1.模拟退火算法
    title:学习常用模型及算法1.模拟退火算法excerpt:学习数学建模常用模型及算法tags:[数学建模,matlab]categories:[学习,数学建模]index_img:https://picture-......
  • 模拟TCP建连接及建连接后异常情况
    一、机器准备本次实验使用两台机器,一台作为服务端,一台作为客户端,运行linux系统。服务端192.168.12.36客户端192.168.12.37两台机器各自运行某模块......
  • HttpClient 403 Forbiddenn问题 模拟浏览器请求头
    403Forbiddenn问题模拟浏览器请求头重点配置如下://创建httpGET请求HttpGethttpGet=newHttpGet(uri);httpGet.setHeader("User-Agent","Mozilla/5.0(Windows;U......
  • div模拟下拉框
    滚动条显示overflow-x:hidden;//横向超出部分隐藏overflow-y:auto;//竖向超出滚动条显示html:<divclass="mod_select"><ul><li><spancla......
  • Codeforces:B. New Year and Ascent Sequence[模拟]
    题面Asequencea=[a1,a2,…,al]oflengthlhasanascentifthereexistsapairofindices(i,j)suchthat1≤i<j≤landai<aj.Forexample,thesequence[0,2......
  • 用代码模拟用户登录输入密码场景
    #每日美图分享#描述:用代码模拟用户登入输入密码的场景,输入密码三次错误即退出程序。#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>intmain(){inti=0;charpi......
  • 围棋术语有意思
    小猴子脸大猴子脸驴脸or马脸天王山“天王山”一词在围棋中指的是双方大模样(势力)消涨的要点,意思是特别重要,有如天王山一般。源出日本“山崎合战”史事。天正十年(1582......