do while实现九宫格概率抽奖

简介: do while实现九宫格概率抽奖
function lottery() {
  const prizes = [
    { name: 'prize 1', probability: 0.1 },
    { name: 'prize 2', probability: 0.2 },
    { name: 'prize 3', probability: 0.3 },
    { name: 'prize 4', probability: 0.05 },
    { name: 'prize 5', probability: 0.15 },
    { name: 'prize 6', probability: 0.1 },
    { name: 'prize 7', probability: 0.08 },
    { name: 'prize 8', probability: 0.01 },
    { name: 'prize 9', probability: 0.01 }
  ];
  let selectedPrize;
  let randomNum;
  do {
    randomNum = Math.random();
    for (let i = 0; i < prizes.length; i++) {
      if (randomNum <= prizes[i].probability) {
        selectedPrize = prizes[i];
        break;
      } else {
        randomNum -= prizes[i].probability;
      }
    }
  } while (!selectedPrize);
  return selectedPrize;
}
console.log(lottery());

在循环中,我们使用 do-while 结构。首先,生成一个随机数 randomNum,它是一个0到1之间的浮点数。


然后,我们使用一个 for 循环遍历奖品列表。在每次循环中,我们将随机数与当前奖品的概率进行比较。如果随机数小于等于当前奖品的概率,表示抽中了该奖品,我们将其赋值给 selectedPrize 变量,并跳出循环。否则,我们将随机数减去当前奖品的概率,继续进行下一轮循环,以便进行下一次比较。


当选中奖品时,即 selectedPrize 不为空时,循环结束。


最后,我们调用 lottery 函数来执行抽奖,并将结果输出到控制台。


相关文章
|
12月前
|
算法 索引
算法训练Day32|● 122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II
算法训练Day32|● 122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II
|
2月前
|
图形学 开发者 容器
【Unity实战】按物品掉落率,随机掉落战利品物品系统(附项目源码)
【Unity实战】按物品掉落率,随机掉落战利品物品系统(附项目源码)
44 0
|
3月前
|
JavaScript
|
3月前
uniapp九宫格概率抽奖功能
uniapp九宫格概率抽奖功能
46 0
|
3月前
|
索引
实现九宫格概率抽奖(与往常不同的方法哦)
实现九宫格概率抽奖(与往常不同的方法哦)
89 0
|
3月前
|
小程序
html+css+js实现带有转盘的抽奖小程序
html+css+js实现带有转盘的抽奖小程序
84 0
|
3月前
|
开发者
如何在游戏中实现一个好看的金币效果
如何在游戏中实现一个好看的金币效果
51 1
|
3月前
|
算法 开发者
一个超级好用的中奖概率控制器,可以应用于你的游戏中
一个超级好用的中奖概率控制器,可以应用于你的游戏中
42 0
|
JavaScript
Vue 3 实现九宫格概率抽奖
Vue 3 实现九宫格概率抽奖
161 0
|
JavaScript 索引
vue3按照概率实现九宫格抽奖
vue3按照概率实现九宫格抽奖
155 0