前端时间做了个小程序,用到了抽奖功能,主要在算概率这块卡了一会。

需求:设置奖项等级,并且按照数量的比例进行抽奖。

数据字段: prizename  奖项名字   renumber 奖项数量(这个数量可根据每次抽取的数量,后台做逐次递减,因而每次获得的数量是有变化的)。

步骤:一、首先计算每次的抽奖概率的数组为 。

二、取一个随机数 index=Math.random() *a    这个乘以的数据,看奖项的数量设置。

三、按照每个数值的概率,判断每个数值属于[0~a]的哪个区间,属于则判定属于改个奖项值。

给出代码

//prize为奖项信息
//prob[]为每个奖项的概率
var prob=[];var prizeprob=0;for (var j = 0; j < this.data.prize.length; j++) {prizeprob = this.data.prize[j].renumber + prizeprob}
if (prizeprob == 0) {wx.showToast({content: 'Sorry 该轮抽奖已结束',duration: 3000,success: () => { },});return;}for (var j = 0; j < this.data.prize.length; j++) {prob.push(this.data.prize[j].renumber/prizeprob);}var Index1 = Math.random() *100000//随机产生数var Index2=0var rotat= 0// 计算权值var i = 0for (var j = 0; j < prob.length; j++) {if (i==0){rotat = rotat+ prob[j] * 100000if (Index1 <= rotat){Index2=ji=i+1}}}

微信小程序大转盘抽奖概率算法实现相关推荐

  1. 微信小程序,转盘抽奖

    微信小程序大转盘 代码源码:https://github.com/yewook/Lottery-turntable 转载于:https://www.cnblogs.com/yewook/p/97171 ...

  2. 微信小程序大转盘完整代码

    微信小程序大转盘完整代码 效果图 wxml片段 <!--index.wxml--> <view class="container"><image sr ...

  3. 微信小程序实现转盘抽奖

    <!--pages/component/lottery/lottery.wxml--> <view class="canvas-container">< ...

  4. 微信小程序实现转盘抽奖(有效果图)

    效果图如下所示 .wxml <view class="index"><view class="xian"></view>&l ...

  5. 如何实现消息功能_如何实现微信小程序的轮盘抽奖功能

    为了吸引用户,商家会做一些活动,利用赠送或充值的积分来进行抽奖,现在来讲下微信小程序如果实现轮盘抽奖的功能,先看下图: 上面展示的就是轮盘抽奖,一共有六个奖项,其中一个是"不中奖" ...

  6. 入门微信小程序[第六篇]微信小程序 -- 大樱桃的安排

    经过一番努力,我的直接上司"大樱桃"终于满意了并且交给了我第一个小程序项目. 小乖猴助手 老沙很高兴,终于可以实际的编码了,对于一个100%的码农来说,这是何等的愉悦. 这是一个家 ...

  7. 微信小程序仿唯聚时代,微信小程序商城,微信小程序大作业源码,小程序源码下载

    1.首页 轮播图 大菜单 广告 公告 本周上新 商品分类 广告 商品列表 2.分类 左右分类布局 3.我的 头像 购物订单/置换服务 经销服务 用户服务 源码下载 以上就是功能点分析,下面看效果图: ...

  8. 在微信小程序上实现抽奖功能

    前言 本教程是基于 "apifm-wxapi" 模块,教你快速实现小程序开发,所以你可能需要先了解以下知识点: <创建 HelloWorld 项目> <使用 &q ...

  9. 微信小程序——走马灯式抽奖

    目录 前言 一.效果展示 二.实现代码 1.wxml代码 2.wxss代码 3.js代码 4.app.js代码 三.实现思路 说明 前言 (1)利用定时器setInterval每隔固定时间改变下一个格 ...

最新文章

  1. java怎么求两组整数的或集,确定整数是否在具有已知值集的两个整数(包括)之间的最快方法...
  2. 科大星云诗社动态20210306
  3. Altium Designer 09 使用要点:电气连接工具
  4. Python元组,列表,解构和循环
  5. Android单元测试(七):Robolectric,在JVM上调用安卓的类
  6. 数据库 设计中的英文术语
  7. pandas 保存csv 不要序号
  8. jquery常用遍历方法
  9. 【cluvfy】集群验证工具cluvfy使用方法——stage
  10. 《Python简明教程》一
  11. termios 详解
  12. java 求梯形面积
  13. 【org.mybatis.spring.MyBatisSystemException】There is no getter for property named ‘array‘‘
  14. Verilog语言语句介绍
  15. 数学故事(统计学的妙用)
  16. mysql怎么输出列表的次序_MySQL metalock的一些技巧(写大于读的案例,以及获得锁的顺序)...
  17. python3中生成图片验证码和短信验证码的程序
  18. 计算机窗口的大小是什么单位,电脑软件窗口大小调整
  19. 大气简洁手绘风商务计划书PPT模板
  20. 你有什么道理后悔没早点知道

热门文章

  1. python验证身份证号码大全_身份证遭盗用 公安县一老汉被误当逃犯十多年
  2. 深入理解Java序列化中的SerialVersionUid
  3. SAP 采购订单的批量修改
  4. 可达鸭冲冲冲:学习HTML的笔记
  5. 二分查找算法(折半查找算法)
  6. 【第十六篇】 理想视口pc端浏览器移动端浏览器元素单位
  7. 【UI设计No4】字体设计
  8. SqlSession
  9. RFM的精细化客户管理笔记总结
  10. C++设计模式——迭代器模式(iterator pattern)