实现九宫格概率抽奖(与往常不同的方法哦)

简介: 实现九宫格概率抽奖(与往常不同的方法哦)

使用到了do-while的方法

function lottery() {  
  // 九宫格中奖概率  
  const probabilities = [10, 20, 30, 40, 50, 40, 30, 20, 10];  
  // 总概率值  
  const totalProbability = probabilities.reduce((sum, probability) => sum + probability, 0);  
  // 当前剩余概率值  
  let currentProbability = totalProbability;  
  // 中奖的格子索引  
  let winnerIndex = -1;  
  do {  
    // 在九宫格中随机选择一个格子  
    winnerIndex = Math.floor(Math.random() * probabilities.length);  
    // 检查当前概率是否大于 0  
    if (probabilities[winnerIndex] > 0) {  
      // 中奖,更新剩余概率值和选中格子的概率值  
      currentProbability -= probabilities[winnerIndex];  
      probabilities[winnerIndex] = 0;  
      // 检查是否有其他格子的概率大于 0,如果有则继续循环,否则结束循环  
      if (probabilities.some(probability => probability > 0)) {  
        continue;  
      } else {  
        break;  
      }  
    }  
  } while (currentProbability > 0);  
  // 返回中奖的格子索引  
  return winnerIndex;  
}

使用方法:调用 lottery() 函数即可获得中奖的格子索引。如果返回值为 -1,表示没有中奖。

相关文章
|
8月前
|
自然语言处理 测试技术 决策智能
让RAG更聪明,ViDoRAG开启视觉文档检索增强生成新范式,上阿里云百炼可直接体验
视觉丰富文档的高效检索与生成是自然语言处理领域的重大挑战。ViDoRAG(Visual Document Retrieval-Augmented Generation via Dynamic Iterative Reasoning Agents)由阿里巴巴通义实验室、中国科学技术大学和上海交通大学联合提出,通过多智能体框架和动态迭代推理机制解决此问题。其核心包括多模态混合检索策略和多智能体生成流程,同时发布的ViDoSeek数据集,专为大规模文档集合设计,提供复杂推理与精准问答的评估基准。实验表明,ViDoRAG在准确率和效率上优于传统方法,未来将优化系统性能并降低计算成本。
894 63
|
9月前
|
存储 数据可视化 搜索推荐
「从0到1搭建知识库:设计团队的效率革命」
在快节奏的设计行业中,团队协作的效率和质量至关重要。本文探讨了如何通过搭建高效的设计团队知识库解决信息分散、规范不统一等问题,提升团队协同效率。内容涵盖知识库的核心价值、常见痛点、搭建方法、运营策略及未来趋势,帮助团队实现从混乱到高效的转变。知识库不仅能统一设计规范、沉淀最佳实践,还能提高新人上手速度。文章还介绍了内容框架设计、流程化管理、工具赋能等黄金方法论,并展望了智能化与场景化的未来趋势。
477 10
|
C# 图形学
【unity小技巧】Unity音乐和音效管理器
【unity小技巧】Unity音乐和音效管理器
961 1
|
小程序 定位技术
【微信小程序-原生开发+TDesign】地图导航(wx.openLocation的使用)
【微信小程序-原生开发+TDesign】地图导航(wx.openLocation的使用)
416 0
|
JavaScript 前端开发
js中通过正则表达式验证邮箱是否合法
这篇文章提供了一个JavaScript示例,通过正则表达式在网页上验证用户输入的邮箱地址是否合法,并给出了相应的提示信息。
js中通过正则表达式验证邮箱是否合法
|
关系型数据库 MySQL 数据库
MySQL 查询结果求和详解
MySQL 查询结果求和详解
553 0
|
SQL 关系型数据库 MySQL
省市区SQL(mysql、postgrel)-接口实现(java)
省市区SQL(mysql、postgrel)-接口实现(java)
1071 0
|
Web App开发 前端开发
css小技巧——鼠标悬浮时切换图片
css小技巧——鼠标悬浮时切换图片
576 0
uniapp中组件库的丰富NumberBox 步进器的用法
uniapp中组件库的丰富NumberBox 步进器的用法
526 0
uniapp九宫格概率抽奖功能
uniapp九宫格概率抽奖功能
185 0