js实现1,2,3,5数字按照概率生成


Posted in Javascript onSeptember 12, 2017

js按照配置的概率生成,概率规则如下:
1------------50%

2------------30%

3------------15%

5------------5%

简单的代码

function myRandom() {
 var rand = Math.random();
 if (rand < .5) return 1;
 if (rand < .8) return 2;
 if (rand < .95) return 3;
 return 5;
}

复杂点的

function prizeRand(oArr) {
 var sum = 0; // 总和
 var rand = 0; // 每次循环产生的随机数
 var result = 0; // 返回的对象的key

 console.log(oArr);

 // 计算总和
 for (var i in oArr) {
  sum += oArr[i][0];
 }

 // 思路就是如果设置的数落在随机数内,则返回,否则减去本次的数
 for (var i in oArr) {
  rand = Math.floor(Math.random()*sum + 1);
  if (oArr[i][0] >= rand) {
   result = oArr[i][0];
   break;
  } else {
   sum -= oArr[i][0];
  }
 }

 return result;

}

var oArr = {'5':[5, 'Mac'], '3':[15, 'iPhone'], '2':[30, 'iPad'], '1':[50, 'iWatch']};

console.log(prizeRand(oArr));

大家可以根据需要选择,建议查看三水点靠木的上一篇文章。

Javascript 相关文章推荐
JavaScript全排列的六种算法 具体实现
Jun 29 Javascript
原生JS实现加入收藏夹的代码
Oct 24 Javascript
处理文本部分内容的TextRange对象应用实例
Jul 29 Javascript
JavaScript 实现打印,打印预览,打印设置
Dec 30 Javascript
详解Angular.js的$q.defer()服务异步处理
Nov 06 Javascript
详解RequireJS按需加载样式文件
Apr 12 Javascript
easyui简介_动力节点Java学院整理
Jul 14 Javascript
微信小程序中进行地图导航功能的实现方法
Jun 29 Javascript
js防抖和节流的深入讲解
Dec 06 Javascript
新手快速入门微信小程序组件库 iView Weapp
Jun 24 Javascript
Vue+Vuex实现自动登录的知识点详解
Mar 04 Javascript
创建nuxt.js项目流程图解
Mar 13 Javascript
js数组实现权重概率分配
Sep 12 #Javascript
js 概率计算(简单版)
Sep 12 #Javascript
JavaScript面向对象精要(下部)
Sep 12 #Javascript
在Vue.js中使用Mixins的方法
Sep 12 #Javascript
JavaScript面向对象精要(上部)
Sep 12 #Javascript
JS库之ParticlesJS使用简介
Sep 12 #Javascript
关于预加载InstantClick的问题解决方法
Sep 12 #Javascript
You might like
图形数字验证代码
2006/10/09 PHP
十天学会php之第十天
2006/10/09 PHP
PHP中使用asort进行中文排序失效的问题处理
2014/08/18 PHP
自动检查并替换文本框内的字符
2006/06/30 Javascript
使用正则替换变量
2007/05/05 Javascript
让div层随鼠标移动的实现代码 ie ff
2009/12/18 Javascript
基于javascript实现随机颜色变化效果
2016/01/14 Javascript
JS加载器如何动态加载外部js文件
2016/05/26 Javascript
Jquery Easyui自定义下拉框组件使用详解(21)
2020/12/31 Javascript
vue 动态修改a标签的样式的方法
2018/01/18 Javascript
layui前端时间戳转化实例
2019/11/15 Javascript
uni-app如何实现增量更新功能
2020/01/03 Javascript
js实现弹幕飞机效果
2020/08/27 Javascript
Scrapy-redis爬虫分布式爬取的分析和实现
2017/02/07 Python
django用户注册、登录、注销和用户扩展的示例
2018/03/19 Python
Python、 Pycharm、Django安装详细教程(图文)
2019/04/12 Python
如何在Python中实现goto语句的方法
2019/05/18 Python
python对绑定事件的鼠标、按键的判断实例
2019/07/17 Python
python3发送邮件需要经过代理服务器的示例代码
2019/07/25 Python
简述python&amp;pytorch 随机种子的实现
2020/10/07 Python
HTML5之SVG 2D入门5—颜色的表示及定义方式
2013/01/30 HTML / CSS
摩托车和ATV零件、配件和服装的首选在线零售商:MotoSport
2017/12/22 全球购物
在线学习西班牙语、法语或其他语言:Babbel.com
2018/02/07 全球购物
娇韵诗香港官网:Clarins香港
2020/08/13 全球购物
设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
2014/12/30 面试题
超市重阳节活动方案
2014/02/10 职场文书
高中班主任评语
2014/12/30 职场文书
档案工作个人总结
2015/03/03 职场文书
电话营销开场白
2015/05/29 职场文书
暑假开始了,你的暑假学习计划写好了吗?
2019/07/04 职场文书
网络安全倡议书(3篇)
2019/09/18 职场文书
2019员工保密协议书(3篇)
2019/09/23 职场文书
Python - 10行代码集2000张美女图
2021/05/23 Python
理解python中装饰器的作用
2021/07/21 Python
Python天气语音播报小助手
2021/09/25 Python
MySQL实战记录之如何快速定位慢SQL
2022/03/23 MySQL