代码地址如下:
http://www.demodashi.com/demo/13558.html

证明拉普拉斯的《概率分析论》观点Demo

必要环境

  1. Nodejs
  2. npm
  3. coffeescript的npm包工具

单一demo结构清晰如下

注意源码包如下

审题与证明步骤

题目:假设有四个盒子,一个是全部黑球(0),一个是全部白球(1),剩下两个黑白球不一。依次从一个盒子随机取一个球放到下一个盒子里面,再从下一个盒子里面随机取一个球放到再下一个盒子里面,依次循环。证明当N次后,所有盒子内部的黑白球比例一致。

立题假设:每个盒子有100个球,第一个全是黑球,第二个全是白球,第三个30个黑球70个白球,第四个30个白球70个黑球。然后随机取放,打印出每次取放后相应的球比例。

代码解答环节

  1. 模拟四个盒子

    box0 = []
    box1 = []
    box2 = []
    box3 = []
    
  2. 相关数据配置

    boxIndex = 0 # 盒子编号
    times = 0 # 起始次数
    maxTimes = 1e3 # 转移次数
    
  3. 填充盒子内部的球

    box0.push(0) for i in [0..99] # 第一个盒子全是0,即黑球
    box1.push(1) for i in [0..99] # 第二个盒子全是1,即白球
    for i in [0..99] # 第三个盒子0占30%if i < 30box2.push(0)elsebox2.push(1)for i in [0..99] # 第四个盒子1占30%if i < 30box3.push(1)elsebox3.push(0)
    
  4. 计算黑球,即0所占比例函数

    get0Radio = (array) ->array0 = array.filter((item) -> item is 0)(array0.length / array.length).toFixed(2)
    
  5. 换球操作函数,得是个递归啊

    changeNumber = ->box = eval("box#{boxIndex}") # 获取取数的盒子change = box.splice(Math.floor(Math.random() * 99), 1)[0] # 随机取出boxIndex += 1 # 盒子编号加一,即下个盒子boxIndex = 0 if boxIndex > 3 # 如果盒子编号越界,则回到第一个box = eval("box#{boxIndex}") # 获取下一个盒子box.splice(Math.floor(Math.random() * 99), 0, change) # 随机插入times += 1# 打印转以后的各个盒子0所占比例console.log get0Radio(box0), get0Radio(box1), get0Radio(box2), get0Radio(box3)return if times > maxTimes # 如果操作次数超过设定则跳出递归changeNumber() # 递归
    
  6. 游戏开始

    changeNumber()

完整代码如下

# 四个盒子
box0 = []
box1 = []
box2 = []
box3 = []boxIndex = 0 # 盒子编号
times = 0 # 起始次数
maxTimes = 1e3 # 转移次数box0.push(0) for i in [0..99] # 第一个盒子全是0
box1.push(1) for i in [0..99] # 第二个盒子全是1
for i in [0..99] # 第三个盒子0占30%if i < 30box2.push(0)elsebox2.push(1)for i in [0..99] # 第四个盒子1占30%if i < 30box3.push(1)elsebox3.push(0)# 计算0所占比例函数
get0Radio = (array) ->array0 = array.filter((item) -> item is 0)(array0.length / array.length).toFixed(2)# 移动数字
changeNumber = ->box = eval("box#{boxIndex}") # 获取取数的盒子change = box.splice(Math.floor(Math.random() * 99), 1)[0] # 随机取出boxIndex += 1 # 盒子编号加一,即下个盒子boxIndex = 0 if boxIndex > 3 # 如果盒子编号越界,则回到第一个box = eval("box#{boxIndex}") # 获取下一个盒子box.splice(Math.floor(Math.random() * 99), 0, change) # 随机插入times += 1# 打印转以后的各个盒子0所占比例console.log get0Radio(box0), get0Radio(box1), get0Radio(box2), get0Radio(box3)return if times > maxTimes # 如果操作次数超过设定则跳出递归changeNumber() # 递归changeNumber() # 执行递归函数

这里是测试1000次的结果:

1.00 0.01 0.30 0.70
1.00 0.01 0.30 0.70
1.00 0.01 0.29 0.70
1.00 0.01 0.29 0.70
1.00 0.02 0.29 0.70
1.00 0.02 0.29 0.70
1.00 0.02 0.29 0.69
1.00 0.02 0.29 0.69
1.00 0.03 0.29 0.69
1.00 0.03 0.29 0.69



0.48 0.54 0.54 0.44
0.47 0.54 0.54 0.44
0.47 0.54 0.54 0.44
0.47 0.54 0.54 0.45
0.48 0.54 0.54 0.44
0.48 0.53 0.54 0.44
0.48 0.53 0.54 0.44
0.48 0.53 0.54 0.45
0.49 0.53 0.54 0.44
0.48 0.53 0.54 0.44

可以尝试将1e3换成1e4甚至更高,结果只会稳定在0.50左右,至此,证明完毕。。。

我会定期更新一下趣味Demo,有兴趣的请关注我,谢谢证明一下拉普拉斯的《概率分析论》观点

代码地址如下:
http://www.demodashi.com/demo/13558.html

注:本文著作权归作者,由demo大师发表,拒绝转载,转载需要作者授权

证明一下拉普拉斯的《概率分析论》观点相关推荐

  1. 标准化拉普拉斯矩阵特征值范围为什么小于等于2?(证明)

    目录 0. 前言 1. 正文 1.1 标准化拉普拉斯是非满秩矩阵 1.1.1 拉普拉斯是非满秩矩阵 1.1.2 标准化拉普拉斯是非满秩矩阵 1.1.3 拉普拉斯矩阵及标准化拉普拉斯矩阵特征值与特征向量 ...

  2. 王幼军:拉普拉斯概率理论的历史研究

     拉普拉斯概率理论的历史研究 http://www.doc88.com/p-917707463935.html 绪论 一,研究的意义 从中国数学史研究的角度来说,拉普拉斯的概率理论的历史可以为我们 ...

  3. 差分隐私与可穿戴式设备调查【笔记】

    A Systematic Literature Review on Wearable Health Data Publishing under Differential Privacy 论文笔记 概述 ...

  4. [论文翻译]A review on image segmentation techniques

    引介 1993年Pattern Recognition的文章. Abstract 许多图像分割技术在文献中是可用的.这些技术中的一些仅使用灰度级直方图,有些使用空间细节,而其他技术则使用模糊集理论方法 ...

  5. 电磁兼容谐波电流测试怎么做?看完这篇文章90%的人都能明白

    在正式学习谐波电流测试之前,先给大家分享一个故事: 1807年时年39岁的法国数学家傅里叶于法国科学学会上展示了一篇论文"热的传播"(Mémoire sur la propagat ...

  6. 田泽安老师——混沌第1章备忘

    来源:http://www.benznet.cn/benz/education/tza/tza1.html   经典的动力学理论认为:任何一个系统只要知道了它的初始状态,就可以根据动力学规律推算出它随 ...

  7. AI识别彻底懵逼,这到底是“牛”还是“鲨”?

    来源:AI科技评论 作者:耳洞打三金 本文约6200字,建议阅读15分钟 是牛or鲨鱼? 看到封面和标题,PA的一下我就点进来了,很快啊...... 大家好我是三金,求大家快来帮帮我! 我和编辑部的同 ...

  8. 这个播放量200万的视频燃爆了!它讲透了:希尔伯特计划是如何被哥德尔与图灵“打脸”的?...

    作者:陈彩娴.琰琰 编辑:刘冰一 转自:AI科技评论 1930年,临近退休前,著名数学家大卫·希尔伯特在于柯尼斯堡召开的全德自然科学及医学联合会代表大会上做了题为<自然认知及逻辑>的4分钟 ...

  9. Science子刊带来新遗传证据:早期人类驯化了自己

    来源:中国生物技术网 在开始驯化狗.猫.绵羊和牛等动物前,人类可能已经有了驯化一种完全不同动物的传统,就是我们人类自己.近日,发表在<Science Advances>上的一项新研究引用从 ...

最新文章

  1. Warshall算法多源点之间最短路径的算法最短距离
  2. C# Revert 单词反转字符串!『测试通过』
  3. Matlab问题汇总!
  4. 最长上升子序列 (LIS算法(nlong(n)))
  5. Spring自学教程-注解的使用(三)
  6. python ndarray append_9-Python-NumPy数组元素的添加与删除
  7. 计算机仿真在哪学,计算机仿真软件有哪些
  8. android P OTA差分升级时报错记录
  9. linux ulimit
  10. 对话指令集创始人兼CEO潘爱民:面向未来的新型物联网操作系统 | 人物志
  11. EL表达式中fn函数
  12. 电磁兼容(EMC)标准结构的划分与分类
  13. 阿里云语音合成1.0版
  14. 331. 验证二叉树的前序序列化
  15. Java中的数据类型
  16. 欧拉线 Euler line
  17. 简信CRM:什么是在线CRM?在线CRM有什么好处?
  18. Dubbo源码分析(一):Dubbo源码的结构概述
  19. 【HTML】学习笔记——表单、框架
  20. C#之控制台RPG类魔塔游戏

热门文章

  1. STM32 利用空闲中断接收数据
  2. STM32F103_SPI读写外部FLASH
  3. STM32使用LWIP库新建tcp_sever
  4. sqlyong导出sql没有数据_sqlyog怎么导入外部数据库-sqlyog导入数据库的方法 - 河东软件园...
  5. 【C语言】一维数组排序(函数,数组和循环结构语句)
  6. 计算机职称考试知识点,职称计算机考试复习知识点
  7. arm 饱和指令_ARM内核全解析,从ARM7,ARM9到CortexA7,A8,A9,A12,A15到CortexA53,A57
  8. (4)散列函数设计:除留余数法
  9. struct sk_buff与struct socket及struct sock 结构体分析
  10. 分支语句---- if …… else if …… else