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 相关文章推荐
百度 popup.js 完美修正版非常的不错 脚本之家推荐
Apr 17 Javascript
用jquery ajax获取网站Alexa排名的代码
Dec 12 Javascript
基于jQuery的360图片展示实现代码
Jun 14 Javascript
js形成页面的一种遮罩效果实例代码
Jan 04 Javascript
js实现的类似于asp数据字典的数据类型代码实例
Sep 03 Javascript
jquery处理json对象
Nov 03 Javascript
Javascript动态创建表格及删除行列的方法
May 15 Javascript
全面解析Bootstrap表单使用方法(表单控件)
Nov 24 Javascript
js如何改变文章的字体大小
Jan 08 Javascript
layui实现二维码弹窗、并下载到本地的方法
Sep 25 Javascript
Node.js设置定时任务之node-schedule模块的使用详解
Apr 28 Javascript
解决Vue + Echarts 使用markLine标线(precision精度问题)
Jul 20 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
php的mkdir()函数创建文件夹比较安全的权限设置方法
2014/07/28 PHP
Yii 快速,安全,专业的PHP框架
2014/09/03 PHP
php跨服务器访问方法小结
2015/05/12 PHP
javascript判断单选框或复选框是否选中方法集锦
2007/04/04 Javascript
Bootstrap入门书籍之(一)排版
2016/02/17 Javascript
每日十条JavaScript经验技巧(二)
2016/06/23 Javascript
jQuery基本过滤选择器用法示例
2016/09/09 Javascript
Vue实现路由跳转和嵌套
2017/06/20 Javascript
JSON.stringify()方法讲解
2019/01/31 Javascript
Vue开发中遇到的跨域问题及解决方法
2020/02/11 Javascript
JS实现页面数据懒加载
2020/02/13 Javascript
JS实现随机点名器
2020/04/12 Javascript
微信小程序接入vant Weapp组件的详细步骤
2020/10/28 Javascript
vue3.0 自适应不同分辨率电脑的操作
2021/02/06 Vue.js
python实现用于测试网站访问速率的方法
2015/05/26 Python
pandas的object对象转时间对象的方法
2018/04/11 Python
python 读取鼠标点击坐标的实例
2018/12/29 Python
Python Django简单实现session登录注销过程详解
2019/08/06 Python
python实现发送form-data数据的方法详解
2019/09/27 Python
基于Python中isfile函数和isdir函数使用详解
2019/11/29 Python
无需压缩软件,用python帮你操作压缩包
2020/08/17 Python
python openpyxl模块的使用详解
2021/02/25 Python
CSS3实现精美横向滚动菜单按钮
2017/04/14 HTML / CSS
HTML5之tabindex属性全面解析
2016/07/07 HTML / CSS
为什么UNION ALL比UNION快
2016/03/17 面试题
爱国卫生月活动总结范文
2014/04/25 职场文书
小学数学教学经验交流材料
2014/05/22 职场文书
拉拉队口号
2014/06/16 职场文书
农村优秀教师事迹材料
2014/08/27 职场文书
县政府办公室领导班子个人对照检查材料
2014/09/16 职场文书
会计实训报告范文
2014/11/04 职场文书
拾金不昧表扬信怎么写
2015/05/04 职场文书
永远是春天观后感
2015/06/12 职场文书
Redis中一个String类型引发的惨案
2021/07/25 Redis
Ruby GDBM操作简介及数据存储原理
2022/04/19 Ruby
numpy array找出符合条件的数并赋值的示例代码
2022/06/01 Python