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 相关文章推荐
9个javascript语法高亮插件 推荐
Jul 18 Javascript
Google 静态地图API实现代码
Nov 19 Javascript
js绑定事件this指向发生改变的问题解决方法
Apr 23 Javascript
javascript匿名函数应用示例介绍
Mar 07 Javascript
javascript原型模式用法实例详解
Jun 04 Javascript
JavaScript判断手机号运营商是移动、联通、电信还是其他(代码简单)
Sep 25 Javascript
vue分页组件table-pagebar使用实例解析
Nov 15 Javascript
js实现旋转木马效果
Mar 17 Javascript
Angular2使用Guard和Resolve进行验证和权限控制
Apr 24 Javascript
Vue面试题及Vue知识点整理
Oct 07 Javascript
基于vue.js组件实现分页效果
Dec 29 Javascript
vue.js+elementUI实现点击左右箭头切换头像功能(类似轮播图效果)
Sep 05 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
ThinkPHP之A方法实例讲解
2014/06/20 PHP
php链表用法实例分析
2015/07/09 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
2018/02/07 PHP
使用laravel根据用户类型来显示或隐藏字段
2019/10/17 PHP
PHP Web表单生成器案例分析
2020/06/02 PHP
张孝祥JavaScript学习阶段性总结(2)--(X)HTML学习
2007/02/03 Javascript
EXTjs4.0的store的findRecord的BUG演示代码
2013/06/08 Javascript
js中iframe调用父页面的方法
2014/10/30 Javascript
JQuery右键菜单插件ContextMenu使用指南
2014/12/19 Javascript
javascript实现图片自动和可控的轮播切换特效
2015/04/13 Javascript
详解angularJs指令的3种绑定策略
2017/04/13 Javascript
JS库之Three.js 简易入门教程(详解之一)
2017/09/13 Javascript
Vue 中mixin 的用法详解
2018/04/23 Javascript
Vue 无限滚动加载指令实现方法
2019/05/28 Javascript
vue.js实现回到顶部动画效果
2019/07/31 Javascript
node.js实现带进度条的多文件上传
2020/03/27 Javascript
JQuery+drag.js上传图片并且实现图片拖曳
2020/11/18 jQuery
Python检测网站链接是否已存在
2016/04/07 Python
pygame实现简易飞机大战
2018/09/11 Python
Python 多线程不加锁分块读取文件的方法
2018/12/11 Python
Pytoch之torchvision.transforms图像变换实例
2019/12/30 Python
Python matplotlib画曲线例题解析
2020/02/07 Python
Keras中 ImageDataGenerator函数的参数用法
2020/07/03 Python
使用Python将语音转换为文本的方法
2020/08/10 Python
能否解释一下XSS cookie盗窃是什么意思
2012/06/02 面试题
人民教师的自我评价分享
2014/02/21 职场文书
经理助理岗位职责
2014/03/05 职场文书
租房协议书范本
2014/04/09 职场文书
《故都的秋》教学反思
2014/04/15 职场文书
预备党员思想汇报1000字
2014/10/07 职场文书
论文答谢词
2015/01/20 职场文书
人代会简报
2015/07/21 职场文书
创业计划书之都市休闲农庄
2019/12/28 职场文书
SQL Server数据定义——模式与基本表操作
2021/04/05 SQL Server
FFmpeg视频处理入门教程(新手必看)
2022/01/22 杂记