首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

设置概率抽奖 js

以下是使用 JavaScript 实现概率抽奖的示例代码:

代码语言:txt
复制
// 奖品数组,每个奖品包含名称和对应的中奖概率
const prizes = [
    { name: '一等奖', probability: 0.1 },
    { name: '二等奖', probability: 0.2 },
    { name: '三等奖', probability: 0.3 },
    { name: '谢谢参与', probability: 0.4 }
];

function getRandomPrize(prizes) {
    // 计算所有奖品概率的总和
    const totalProbability = prizes.reduce((sum, prize) => sum + prize.probability, 0);
    // 生成一个 0 到总概率之间的随机数
    const random = Math.random() * totalProbability;
    let cumulativeProbability = 0;
    for (const prize of prizes) {
        cumulativeProbability += prize.probability;
        if (random < cumulativeProbability) {
            return prize.name;
        }
    }
}

// 测试抽奖函数
for (let i = 0; i < 10; i++) {
    console.log(getRandomPrize(prizes));
}

在上述代码中:

  • 首先定义了一个奖品数组,每个奖品有名称和对应的中奖概率。
  • getRandomPrize 函数用于根据概率抽取奖品。它先计算所有奖品概率的总和,然后生成一个随机数,通过比较随机数与累积概率来确定抽中的奖品。

优势:

  • 实现简单直观,易于理解和修改奖品及概率。
  • 可以灵活调整奖品的数量和概率分布。

应用场景:

  • 线上活动的抽奖环节。
  • 营销推广中的幸运抽奖。

可能出现的问题及解决方法:

  • 如果概率设置不合理,可能导致某些奖品长时间不被抽中。解决方法是重新评估和调整概率,使其更符合预期。
  • 在大量抽奖操作时,可能会出现性能问题。可以通过优化算法或使用更高效的数据结构来改善性能。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

php实现根据概率配置随机抽奖

这是我写的一个比较简单的抽奖算法,并没有很严谨,用于我自己写的wap文字游戏(美味小镇)上的随机食材,可以设定概率值 <?php /**  * Created by PhpStorm....                }             }         }         $this->arr = $arr;         return $this;     } //返回概率...array(), $odds=0)     {         $arr||$arr = $this->arr;         $odds||$odds = $this->odds;         //概率数组循环...    ),     array(        'id'=>2,        'odds'=>10//相对概率值     ),     array(        'id'=>3,        ...'odds'=>200//相对概率值     ), ) 调用方法  $a = new Rand($arr); $a->action(1); 本文为仙士可原创文章,转载无需和我联系,但请注明来自仙士可博客

1.8K10
  • iOS概率抽奖算法 & 转盘算法 &轮盘边框动画

    引言 iOS抽奖转盘:概率抽奖算法 & 转盘算法 & 转盘主视图的实现思路 (从CSDN下载完整Demo)https://download.csdn.net/download/u011018979/16651799...github.com/zhangkn/TurntableV 在app侧控制中奖奖品,有两种方式 方式一: 发起网络请求获取当前选中奖品(推荐),即由服务侧控制中奖数据,更安全 方式二:根据奖品百分比进行控制中奖概率...I、根据奖品百分比进行控制中奖概率 根据中奖概率probability 确定随机中奖范围probabilityRange 根据随机中奖范围probabilityRange,确定中奖奖品 1.1 定义奖品模型...property (nonatomic, copy) NSString *imageName; @property (nonatomic, copy) NSString *icon; /** 该奖品的中奖概率...assign) double probability; // @property (nonatomic, assign) NSRange probabilityRange; /** 根据奖品的中奖概率获取中奖奖品

    1.8K20

    【经典】抽奖系统(HTML,CSS、JS)

    一个简单但功能强大的抽奖系统的示例,用于在网页上实现抽奖。...1、添加参与者 2、多次添加 3、点击抽奖 功能介绍: 参与者添加: 用户可以输入参与者名字并点击“添加参与者”按钮将其加入列表。 添加的名字会显示在页面下方的列表中。...开始抽奖: 点击“开始抽奖”按钮,系统会随机从已添加的参与者中选出一个作为中奖者。 抽奖结果会显示在页面上。 动态更新: 参与者列表动态更新,显示所有参与者的序号和名字。...点击“开始抽奖”,查看中奖结果。 完整代码: <!...`; } 如果需要更多高级功能,例如奖品设置、多轮抽奖等,可以进一步扩展逻辑! 嗨,我是命运之光。

    48510

    iOS抽奖转盘:概率抽奖算法 & 转盘算法 & 转盘主视图的实现思路 (完整Demo)

    kunnan.blog.csdn.net/article/details/115653905 原理:利用CoreGraphics进行自定义转盘的绘制 视频:https://live.csdn.net/v/158749 I 、概率抽奖算法...& 转盘算法 iOS概率抽奖算法 & 转盘算法 &轮盘边框动画丨蓄力计划https://kunnan.blog.csdn.net/article/details/115630759 II 、转盘主视图的实现...*/ @property (nonatomic, weak) UIButton *startButton; /** 点击抽奖文字视图 */ @property (nonatomic, weak)...self.viewModel.endId = arc4random() % self.viewModel.luckyItemArray.count; // 控制中奖的方式二:另外一种是根据奖品百分比进行控制中奖概率...// NSInteger randomNum = arc4random()%100;//控制概率 // 奖品 title A ,index下标0,中奖 概率probability80%, 就是当

    5K41

    iOS抽奖转盘上篇:概率抽奖算法 & 转盘算法 &轮盘边框动画丨(内含完整Demo)

    I、根据奖品百分比进行控制中奖概率 根据中奖概率probability 确定随机中奖范围probabilityRange 根据随机中奖范围probabilityRange,确定中奖奖品 1.1 定义奖品模型...if (self.rotaryEndTurnBlock) { self.rotaryEndTurnBlock(); } } III、iOS 抽奖轮盘边框动画...:用NSTimer无限替换UIImageView的Image为互为错位的bg_horse_race_lamp_1或者bg_horse_race_lamp_2,达到跑马灯的效果 应用场景:iOS 抽奖轮盘边框动画...审核注意事项:1、在抽奖页面添加一句文案“本活动与苹果公司无关” 2、在提交审核时修改分级至17+ 3.1 实现代码 // // ViewController.m // horse_race_lamp...ViewController () /** 用NSTimer无限替换bg_horse_race_lamp_1和bg_horse_race_lamp_2,达到跑马灯的效果 应用场景:iOS 抽奖轮盘边框动画

    1.1K40

    【经典】高级动态抽奖系统(HTML,CSS、JS)

    以下是一个动态的抽奖系统示例,允许用户动态添加参与者,并可以随机抽取中奖者。参与者列表动态更新,使用简单直观的交互界面 实时动画:在抽奖过程中增加滚动效果,模仿转盘随机抽取的体验。...多轮抽奖:支持多次抽奖,并记录每轮的中奖结果。 界面展示 1、添加参与者 2、进行动态抽奖 3、清空 滚动动画: 点击“开始抽奖”后会滚动显示随机选中的名字,增加互动性。...结果区域优化: 抽奖结果显示更加动态,未中奖时显示“等待抽奖结果...”。 限制滚动时间: 滚动动画持续 3 秒后自动停止并宣布结果。...点击“开始抽奖”,体验滚动效果和随机抽奖功能。 完整代码: 等待抽奖结果...

    30110

    【项目实战】——Java根据奖品权重计算中奖概率实现抽奖(适用于砸金蛋、大转盘等抽奖活动)

    奖品设置 ----   比如现在举行一次砸金蛋活动中,奖品如下: ?   ...分析:如上图,为了便于计算和理解,设置每种奖品的权重分别为1,2,3,4,所以被抽到的概率分别为0.1,0.2,0.3,0.4(本次活动中奖概率为100%)。   ...10000次的结果如下: 一等奖:962 二等奖:2007 三等奖:3043 四等奖:3988   每类奖品获奖次数比例刚好大约为1:2:3:4,学过概率的你肯定知道抽奖次数越多,测试结果越准确~~...  Tips:   如果计划中奖率是100%的话,那么10个奖品只能抽奖10次,所以还要根据实际情况设置每种奖品数量和权重。   ...如果需要设置中奖率不为100%,可以添加一个“伪奖品”,并为其设置权重,那么抽到这个“伪奖品”的概率就是不中奖的概率。

    14.8K97

    js 设置html标签样式表,js怎么设置css样式?

    js怎么设置css样式?本篇文章就给大家介绍js设置css样式的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。...1、直接设置style对象(内联样式) 使用JavaScript设置元素样式的最简单方法是使用style属性。在我们通过JavaScript访问的每个HTML元素时都有一个 style对象。...此对象允许我们指定CSS属性并设置其值。...2、设置style属性–添加全局样式 另一种方法是将里带有CSS属性的元素注入DOM。将在设置应用于一组元素而不仅仅是一个元素的样式时,这非常有用。 首先,我们将创建一个样式元素。...以上就是js怎么设置css样式?的详细内容,更多请关注html中文网其它相关文章! 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

    24K30
    领券