项目描述
上传时间
浏览人数
开发项目:web前端
开发环境:WebStorm
开发者:汐ゆゆ
项目详情:
1.界面展示
这次做的是一个简易的计算概率(数学期望)的小demo
灵感来源于生活中的各种随机问题(彩票,抽奖等等)
这次的练习可以解决这些不需要很严谨的概率问题
2.功能介绍
增加项目卡片 模拟大转盘的一个奖项
点击卡片右上角 删除一个奖项
清空按钮 清除所有奖项
运算按钮 进行概率运算
3.功能实现
最开始打开页面时是没有奖项的
需要我们手动添加奖项
第一个输入框是奖金(或者需要计算的数值)
第二个输入框是概率(只能输入整数 不需要单位 1代表1%)
点击添加 会增加奖项卡片
这是使用声明游离标签创造节点 并插入到结构中
然后绑定上卡片的删除事件
与此同时使用了数组push()方法
这里介绍一下常用的数组增删方法
该方法可以在数组的最后面,添加一个或者多个元素
例: arr.push(值)
返回值:返回的是添加元素后数组的长度.
该方法可以在数组的最后面,删除一个元素
例: arr.pop(值)
返回值:返回的是刚才删除的元素.
该方法可以在数组的最前面,添加一个或者几个元素
例: arr.unshift(值)
返回值: 返回的是添加元素后数组的长度
该方法可以在数组的最前面,添加一个元素
例: arr.shift(值)
返回值: 返回的是刚才删除的元素.
每添加一个卡片 会显示当前的总概率
只有总概率为100(象征100%)的时候才能执行计算
计算时会根据卡片的价值和概率生成一个对应的数组
然后会采用Math对象方法中的取随机数
Math.ceil(Math.random()*100);
首先取一次随机数将他乘以100放大100倍
然后又进行了一次向上取证
这里介绍一下常用Math对象方法
ceil(x) 对数进行向上取整
floor(x) 对数进行向下取整数
random() 返回 0 ~ 1 之间的随机数。
round(x) 把数四舍五入为最接近的整数。
最后模拟了一个很大数据量的结果
把结果取一次平均值 得到一个不太精确的期望值
已经足够应付生活中大多数的不需要很严谨的问题了
假如这里有一个抽奖活动
5元抽一次
80的概率会得到1元
15的概率会得到5元
4的概率会得到10元
1的概率会得到50元
这时我们生成卡片 并进行计算
期望可以赢得的奖金结果大概是2.45元左右
但是我们需要花钱5元抽一次奖 这明显是亏本的
所以你可能血赚 但是卖家永远不亏
4.总结
这次的小练习源于生活 计算过程不太严谨
期间也研究了许多关于概率的问题
所了解的还是冰山一角 需要加深学习
欢迎多多交流指教 感谢阅读!