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 相关文章推荐
JQUERY复选框CHECKBOX全选,取消全选
Aug 30 Javascript
JS在TextArea光标位置插入文字并实现移动光标到文字末尾
Jun 21 Javascript
js动态给table添加/删除tr的方法
Aug 02 Javascript
javascript自启动函数的问题探讨
Oct 05 Javascript
如何提高javascript加载速度
Dec 26 Javascript
使用JavaScript开发跨平台的桌面应用详解
Jul 27 Javascript
前端跨域的几种解决方式总结(推荐)
Aug 16 Javascript
解决html-jquery/js引用外部图片时遇到看不了或出现403的问题
Sep 22 jQuery
JavaScript编程设计模式之观察者模式(Observer Pattern)实例详解
Oct 25 Javascript
Angular 4根据组件名称动态创建出组件的方法教程
Nov 01 Javascript
VUE2.0+Element-UI+Echarts封装的组件实例
Mar 02 Javascript
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
PHP学习笔记之数组篇
2011/06/28 PHP
php中数字、字符与对象判断函数用法实例
2014/11/26 PHP
利用PHP如何统计Nginx日志的User Agent数据
2019/03/06 PHP
jQuery each()小议
2010/03/18 Javascript
javascript面向对象之Javascript 继承
2010/05/04 Javascript
jQuery Deferred和Promise创建响应式应用程序详细介绍
2013/03/05 Javascript
JSP跨iframe如何传递参数实现代码
2013/09/21 Javascript
JavaScript简单实现弹出拖拽窗口(一)
2016/06/17 Javascript
封装的dialog插件 基于bootstrap模态对话框的简单扩展
2016/08/10 Javascript
javaScript如何跳出多重循环break、continue
2016/09/01 Javascript
python读取html中指定元素生成excle文件示例
2014/04/03 Python
Python和Ruby中each循环引用变量问题(一个隐秘BUG?)
2014/06/04 Python
Python自动调用IE打开某个网站的方法
2015/06/03 Python
将Python的Django框架与认证系统整合的方法
2015/07/24 Python
Python对数据库操作
2016/03/28 Python
Python的IDEL增加清屏功能实例
2017/06/19 Python
对Python3中的print函数以及与python2的对比分析
2018/05/02 Python
python opencv对图像进行旋转且不裁剪图片的实现方法
2019/07/09 Python
python使用writerows写csv文件产生多余空行的处理方法
2019/08/01 Python
在Python3 numpy中mean和average的区别详解
2019/08/24 Python
Python笔试面试题小结
2019/09/07 Python
Python 3.6打包成EXE可执行程序的实现
2019/10/18 Python
python科学计算之narray对象用法
2019/11/25 Python
python中get和post有什么区别
2020/06/19 Python
使用keras框架cnn+ctc_loss识别不定长字符图片操作
2020/06/29 Python
We Fashion荷兰:一家国际时装公司
2018/04/18 全球购物
日本亚马逊官方网站:Amazon.co.jp
2020/04/14 全球购物
英文版银行求职信
2013/10/09 职场文书
大学生毕业自我评价范文分享
2013/11/11 职场文书
2013年保送生自荐信格式
2013/11/20 职场文书
会计专业自我评价
2014/02/12 职场文书
乡镇挂职心得体会
2014/09/04 职场文书
毕业设计指导教师评语
2014/12/30 职场文书
冰雪公主观后感
2015/06/16 职场文书
领导干部学习三严三实心得体会
2016/01/05 职场文书
python 使用tkinter与messagebox写界面和弹窗
2022/03/20 Python