关于抽奖的概率算法~你能算出来吗? [问题点数:40分,结帖人csjxing]

Bbs1
本版专家分:0
结帖率 98.28%
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Blank
红花 2005年8月 其他开发语言大版内专家分月排行榜第一
Blank
黄花 2005年7月 其他开发语言大版内专家分月排行榜第二
Bbs1
本版专家分:0
Blank
红花 2005年8月 其他开发语言大版内专家分月排行榜第一
Blank
黄花 2005年7月 其他开发语言大版内专家分月排行榜第二
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:0
C#&PHP&Java实现Alias Method概率抽奖算法
最近在做<em>抽奖</em>服务端接口,会涉及到<em>抽奖</em>概率的问题,网上查资料找到一个比较好的<em>抽奖</em>概率的算法,Alias Method概率<em>抽奖</em>算法。今天就来分享一下这个算法的C#、PHP以及Java的实现。 举个例子,游戏中玩家推倒了一个boss,会按如下概率掉落物品:10%掉武器 20%掉饰品 30%掉戒指 40%掉披风。现在要给出下一个掉落的物品类型,或者说一个掉落的随机序列,要求符合上述概率。
抽奖概率-三种算法
最近接触到一个<em>抽奖</em>需求,加上平时玩的暗黑3很少掉暗金装备,就抽空学习下这类概率问题,暂时按网络称为掉宝类型概率。 例如游戏中打败一个boss,会掉落下面其中一个物品,而每个物品都有一定概率: 1. 靴子 20% 2. 披风 25% 3. 饰品 10% 4. 双手剑 5% 5. 金币袋 40% 现在的问题就是如何根据概率掉落一个物品给玩家。 一. 一般算法:生成一个列表,分成几个
抽奖概率算法
奖品public class MGood { // ....... 其他描述字段 public int lotteryPriority; } <em>抽奖</em>逻辑public class GoodLotteryLogic { // 奖品仓库 private List gifts = new LinkedList(); private boolean
php编写的抽奖程序中奖概率算法
本文给大家分享的是php中奖<em>概率算法</em>,可用于刮刮卡,大转盘等<em>抽奖</em>算法。用法很简单,代码里有详细注释说明,一看就懂,有需要的小伙伴参考下吧。先完成后台PHP的流程,PHP的主要工作是负责配置奖项及对应的中奖概率,当前端页面点击翻动某个方块时会想后台PHP发送ajax请求,那么后台PHP根据配置的概率,通过<em>概率算法</em>给出中奖结果,同时将未中奖的奖项信息一并以JSON数据格式发送给前端页面。先来看概率计算...
大转盘/刮刮乐中奖概率算法
我们先完成后台PHP的流程,PHP的主要工作是负责配置奖项及对应的中奖概率,当前端页面点击翻动某个方块时会想后台PHP发送ajax请求,那么后台PHP根据配置的概率,通过<em>概率算法</em>给出中奖结果,同时将未中奖的奖项信息一并以JSON数据格式发送给前端页面。  先来看概率计算函数 function get_rand($proArr) { $result = ''; //概率数组
asp.net关于抽奖概率算法,多谢大家帮忙指点下思路,或者有实例源码更好!急急急!!!!
我可以根据用户设置的概率或者一个计算概率的公式,然后根据设置的概率或者公式来<em>抽奖</em>,我自己想了一个思路,但是感觉我这样每次都往数组中添加那么多数是不明智的做法,谁能帮指点下,我把我的贴出来大家理解看一下
asp.net做的大转盘,自己写的概率算法
asp.net做的大转盘,自己写的<em>概率算法</em>,自己觉得挺好!
php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法
php中奖<em>概率算法</em>,可用于刮刮卡,大转盘等<em>抽奖</em>算法。用法很简单,代码里有详细注释说明,一看就懂 <?php /* * 经典的<em>概率算法</em>, * $proArr是一个预先设置的数组, * 假设数组为:array(100,200,300,400), * 开始是从1,1000 这个概率范围内筛选第一个数是否在他的出现概率范围之内, * 如果不在,则将概率空间,也就是k的值减去刚刚的那个数字的概
中奖概率算法(可用于刮刮乐、转盘抽奖
说明 使用简单的用法 ,高效的<em>概率算法</em>实现<em>抽奖</em>逻辑 使用php语法,laravel框架总结示例代码<?php /** * <em>抽奖</em>类 */class AwardController { /** * 中奖逻辑实现 */ function getIndex() { /** * 奖项数组 * 是一个二维数组,记
PHP抽奖程序之几率算法
http://www.nonb.cn/blog/php-probability.html 做PHP确实很少接触算法问题 前几天遇到一个PHP几率算法问题,很有意思, 大致就是一个<em>抽奖</em>程序 贵重物品出现几率低,便宜物品出现几率高 网上找打了答案,在下面评论中看到了另一种方法,我觉得更好,效率更高 转来这个问题,和我之前遇到的差不多, 问题是这样子的:在一个物品合成系统中,需要使
抽奖算法的实现
最近的一个业务需求是开发一个<em>抽奖</em>管理功能,要求在一个奖池中放一堆奖品,分别给它们设置不同的数量和概率,在奖品没有发完的情况下,概率高的被抽中的几率就大,反之则低。另外,概率为0的不能被抽中,概率为100则一定要被抽中。 这里只讨论下其中的核心算法的设计及一个示例函数,算法之外的系统控制暂不提及。 实现<em>抽奖</em>的方法应该有很多,没有仔细去考察和搜索那些非常复杂的算法,这里仅做了一个简单的假设,并在此
Java 抽奖概率算法
-
php 中奖概率算法
上次项目中有个<em>抽奖</em>活动,中奖<em>概率算法</em>整理成一篇笔记 /** * 中奖<em>概率算法</em> * v表示中奖概率,注意其中的v必须为整数,可以将对应的奖项的v设置成0,即意味着该奖项抽中的几率是0,数组中v的总和(基数),基数越大越能体现概率的准确性。本例中v的总和为100,那么 特等奖 对应的中奖概率就是1%,如果v的总和是10000,那中奖概率就是万分之一。 * *...
关于抽奖概率
<em>关于</em><em>抽奖</em>概率 最近做一个<em>抽奖</em>系统,对现在已经有的<em>抽奖</em>系统<em>关于</em>概率的这个东西进行了一些了解。于是想想针对这样的一些<em>抽奖</em>概率作为一些说明: 首先我们来说说比较常见的随机概率: 这就好像我们说的,我有一百个乒乓,其中一个是红色。然后把这些放到一个盒子里面,然后你在进行摸。当你摸完一次以后,在把你摸到的乒乓放回到盒子里面,在进行摸。这些,你每次摸中红色球的概率都是1/100。于是这样就产生的一个
PHP控制中奖概率的抽奖算法
<em>抽奖</em>算法需要满足的需求如下: 1.可以控制中奖的概率 2.具有随机性 3.最好可以控制奖品的数量 4.根据用户ID或者ip、手机号、QQ号等条件限制<em>抽奖</em>次数 初期就这些需求,然后根据网上的资料,采用了一种阶段式抽取的方法,大家下面看一下整体的程序: 该程序是在ThinkPHP框架下完成的,使用了一些框架自带的类库和函数,下面我会逐一进行说明,控制器部
求php抽奖概率的算法
我有个<em>抽奖</em>的轮盘 想 根据自己设置的概率 输出 0 1 2 3 4 5 6 7 这8个奖项 请问 要怎么写这个概率 比如 7 就高概率的 抽到
【项目实战】——Java根据奖品权重计算中奖概率实现抽奖(适用于砸金蛋、大转盘等抽奖活动)
Java根据奖品的权重判断奖品<em>抽奖</em>概率的实现,适用于砸金蛋、大转盘等多种<em>抽奖</em>的场景。
通过概率实现抽奖的算法
该算法是通过概率获取相应奖品的简单算法 /** * List :奖品信息集合 */ public static int randomInt(List prize) {       int randomNum = new Random().nextInt(100) + 1;      //定义一个集合用来存储每个奖品的概率或者说权重,概率或者权重用1到100之间的数来表示
js 中奖几率计算!
执行结果 0:{name: "广告五", num: 331} 1:{name: "广告四", num: 262} 2:{name: "广告三", num: 194} 3:{name: "广告一", num: 132} 4:{name: "广告二", num: 81} 参照网络php几率计算函数: function get_rand($proArr) {   $resul
php 抽奖概率算法
/* * 不同概率的<em>抽奖</em>原理就是把0到*(比重总数)的区间分块 * 分块的依据是物品占整个的比重,再根据随机数种子来产生0-* 中的某个数 * 判断这个数是落在哪个区间上,区间对应的就是抽到的那个物品。 * 随机数理论上是概率均等的,那么相应的区间所含数的多少就体现了<em>抽奖</em>物品概率的不同。 */ function get_rand($proArr) { $result
Java 抽奖算法
java实现的幸运<em>抽奖</em>算法,算法虽然简单,但是效率高而且精确
抽奖-算法
最近在搞<em>抽奖</em>活动的项目开发,涉及到<em>抽奖</em>算法和高并发,本文讨论一下<em>抽奖</em>的算法实现。 目标 首先算法要满足几个目标: 奖品尽量在活动期间被平均分布(不要在活动一开始就被抽完)大奖尽量在后面才被抽中奖品尽量不要有剩余每个奖品可以设置抽中概率 对于最后一点,因为活动前并不知道参加活动人数,所以设置的概率反而影响了前面几点。如果概率大了可能活动一开始就被抽完,如果太小参与人数不多可能
4类抽奖算法总结
第一类是常见的有等级的<em>抽奖</em>活动,如一等、二等、三等奖等等 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 // 分别为一、二、三、四等将的奖品数
不同中奖概率的多奖包抽奖几种算法
不同中奖概率的多奖包<em>抽奖</em>几种算法需求描述:总共有很多个奖包,每个奖包的中奖概率是人为自由设定的,规定每次<em>抽奖</em>必须抽中。 算法分类: 一、最初自行编写的算法: array
一个简单抽奖算法的实现以及如何预防超中
一个简单<em>抽奖</em>算法的实现以及如何预防超中 需求 每个用户每天有3次<em>抽奖</em>机会; <em>抽奖</em>奖池一共分为6档内容:现金红包1元,2元,3元,5元,iphone6s,谢谢参与; 支持每天调整和配置<em>抽奖</em>的获奖概率; 算法介绍 每种奖品都有一个权重 对应一个区间 若落入该区间就表示中奖 调整区间大小就可改变获奖概率 即调整权重值即可 奖品 权重 区间
java实现一个抽奖概率类
现实生活中,有时需要用概率返回
.net 抽奖概率计算
公司需要做一个大转盘<em>抽奖</em>的活动,其实最关键的地方就是奖品的概率计算了,不过前两天做的这个计算规则挺简单: 设置每个奖品的概率,所有奖品概率之和  乘以 随机值(0-1之间的double类型小数)=抽中值 然后循环判断每个奖品的概率,直到大于抽中值就是中奖的奖品。
php简单的抽奖概率算法
['name' => '苹果电脑' ,'v' => '2'], 1 => ['name' => '苹果手表' ,'v' => '3'], 2 => ['name' => '小米手环' ,'v' => '5'], 3 => ['name' => '谢谢参与' ,'v' => '90'],
thinkphp 抽奖算法
最近公司要做一个<em>抽奖</em>的小程序,经过两天的查阅资料,终于鼓捣出来一个
PHP概率算法(适用于抽奖、随机广告)
在电视节目中有一种<em>抽奖</em>形式暂且叫做翻板<em>抽奖</em>,台上有一个墙面,墙面放置几个大方块,主持人或者<em>抽奖</em>者翻开对应的方块即可揭晓中奖结果。类似的<em>抽奖</em>形式还可以应用在WEB中,本文将使用PHP+jQuery为您讲解如何实现翻板<em>抽奖</em>程序。 翻板<em>抽奖</em>的实现流程:前端页面提供6个方块,用数字1-6依次表示6个不同的方块,当<em>抽奖</em>者点击6个方块中的某一块时,方块翻转到背面,显示<em>抽奖</em>中奖信息。看似简单的
PHP指定概率算法
PHP指定<em>概率算法</em>,可用于刮刮卡,大转盘等<em>抽奖</em>算法。
最近在做一个抽奖转盘,在这做个小结,好记性不如写博客~~
未经允许,不得转载!! 水平有限,不周之处欢迎指正、交流。 博客原文:http://blog.csdn.net/ime33 现在市面上很多商家为了促进交易,采取各种各样的营销方案,转盘<em>抽奖</em>就是里面比较经典的一种!但是商家真正的随机中奖,基本那是不可能的! 在市面上看到的<em>抽奖</em>90%以上的中奖概率都是商家程序内定的,中奖概率极低。 要做<em>抽奖</em>主要有几下几种方法: 第一种:纯前
真正完整的抽奖脚本.rar
诛仙私服422真正完整的<em>抽奖</em>脚本 绝对完整可用
paip.刮刮卡砸金蛋抽奖概率算法跟核心流程.
paip.刮刮卡砸金蛋<em>抽奖</em><em>概率算法</em>跟核心流程.   #---<em>抽奖</em>算法需要满足的需求如下: 1 #---<em>抽奖</em>核心流程 1 #---问题???更好的算法 2 #---实际使用的扩展<em>抽奖</em>算法(带奖品送完判断和每用户最大中奖判断) 2 #-------网上的<em>抽奖</em>算法Php 3 #----java版本的.. 4 参考 5     #---<em>抽奖</em>算法需要满足的需求如下:   1.可以控
java实现抽奖概率
该方法构造一个别名表,每次采样时,通过两次rand()来决定采样值,构造的Alias表如下: Alias table val 1 2 3 4 alias 3 4 4 - prob 0.4 0.8 0.6 1.0 根据该表,采样的过
已整理了一个中奖概率算法,请问是否有更好的?
设置中奖概率 1等奖千分之1; 2等奖千分之10; 3等奖千分之50; 为了保证各个奖项的真实性,我的算法是想在表中生成1000条数据,其中标记1等奖的1条,标记2等奖的10条,标记3等奖的50条,其
概率算法总结
一、分类 1)数字算法 利用随机性求数字问题的近似解,<em>概率算法</em>获得的答案是近似的,通常执行时间越长,精度就越高,误差就越小。 举例:Pi值的估计;数字积分(计算定积分的值);概率计数(求集合X的势) 2)Sherwood算法 总是给出正确的答案。减少消除好的和坏的实例之间的差别,即平滑不同输入实例的执行时间。比起确定性算法A,<em>概率算法</em>B为取得均匀性增加了时间成本S(n),所以平均的执行时
PHP中奖概率算法
?php /* * 经典的<em>概率算法</em>, * $proArr是一个预先设置的数组, * 假设数组为:array(100,200,300,400), * 开始是从1,1000这个概率范围内筛选第一个
PHP中奖概率算法-按概率值排序
header("Content-type: text/html; charset=utf-8"); $prize_arr = array( '0' => array('id'=>1,'prize'=>'平板电脑','v'=>1), '1' => array('id'=>2,'prize'=>'数码相机','v'=>5), '2' => array('id'=>3,'prize'=>'音箱设备','
随机获取礼物活动总结(抽奖算法)
/** * 奖励金(礼物)模型 * Created by tong.hua on 2017-10-26. */ public class BountyItem extends ToString{ private static final long serialVersionUID = -4046365922597449030L; //礼物编号 private int
关于抽奖概率算法
        @Test         public void test(){              //0表示谢谢参与              int index = 0;              //------奖品-------              Map&amp;lt;Integer, String&amp;gt; map = new HashMap&amp;lt;&amp;gt;();       ...
关于抽奖概率算法~求解
现在要做一套<em>抽奖</em>系统,奖品配置如下:rnrn奖品 | 数量 | 概率rn奖品1 | 1 | 0.01% rn奖品2 | 10 | 0.6%rn奖品3 | 50 | 5%rn奖品4 | 400 | 10%rnrn每个奖品的中奖概率是按最右列的概率计算,奖品设定数量上限,如果奖品抽完,再抽中该奖品,视为不中奖。rnrn请问 如何计算总的中奖概率,开始觉得是把最右边的概率相加就是(0.01+0.6+5+10=15.61%),但后来又把自己给否定了,应该不是这么个算法,求解。。。。。。rn
java 抽奖算法
废话不说,直接上货,代码很简单 <em>抽奖</em>工具类: import java.util.ArrayList; import java.util.Collections; import java.util.List; /** * 不同概率<em>抽奖</em>工具包 */ public class LotteryUtil { /** * <em>抽奖</em> * * @param orignalRates 原始的概...
C++如何避免使用rand() % xxx的方式实现类似抽奖概率类的问题
头文件: #pragma once #include #include class Weight { public: template static int GetWeightIndex( const T *pSrcWeight, size_t Size ) { if( 0 == pSrcWeight || 0 == Size ) { return ~0;
java抽奖算法
公司的一些活动之类的,经常有<em>抽奖</em>,这里介绍一种比较简单的思路。假设有这些奖品和他们的概率分别为一等奖 iphone x           0.1二等奖荣耀10              0.15三等奖1000元京东卡   0.5看看,我们怎么设置。首先,找出分母,这里是100,思路如下:所有概率中小数位的最长位数为N,则分母为10的N次方,这里是0.15,是2,然后10的2次方==100其次,在...
抽奖活动(一)-Alias算法
<em>抽奖</em>活动在项目开发中其实是比较常见的问题,这篇文章主要介绍一下Alias算法解决随机类型概率问题: 对于开发<em>抽奖</em>活动的任务来说,奖品一般放置在数据库中,而概率分为一下两种: 第一种是:所有奖项的概率和为1,也就是说本次活动所有参与人员都会中奖,中奖的等级随奖品的概率而定; 第二种是:所有的奖项的概率和小于1,也就是说存在未中奖的情况,其实这种情况也可以归结为第一种,将剩余的概 率归到未中奖
【Math】Random获取随机数
一、原理Math.random()获取的是[0,1)的随机数;然后根据需要变更; 二、实例1、如何获取一个0-100的随机数?Math.random() * 1002.如何获取一个2-98的随机数?public class random1 { public static void main(String[] args) { double a=Math.random();
抽奖活动 源码及页面 算法
里面包含 4个 <em>抽奖</em> 活动源码 及模板,希望能帮助有所需要的人。
大转盘抽奖算法
最近要做大转盘活动,苦恼了很久,后台使用怎样的<em>抽奖</em>算法。 最后在网上找到了一个,用着感觉不错,在这里记录一下。 /*  * 经典的<em>概率算法</em>,  * $proArr是一个预先设置的数组,  * 假设数组为:array(100,200,300,400),  * 开始是从1,1000 这个概率范围内筛选第一个数是否在他的出现概率范围之内
简单抽奖用的算法
/* 每种奖品的概率          * 总概率为333          * */         int a1 = 1;         int a4 = 200;         int a6 = 50;         int a8 = 1;         int a9 = 80;         int a10 = 1;         /*对应奖品*/     ...
JAVA抽奖算法
最近因项目需要,设计<em>抽奖</em>功能,在网上学习了很多前辈的思路,但感觉跟项目需求有偏差,因此按业务逻辑重新设计了一下。          东西很Low,但好歹是个成果,希望拿出来和大家分享,也希望大家提出批评,我喜欢在学习中进步的感觉。          奖项设置:          一等奖(1名)、二等奖(3名)、三等奖(5名)、四等奖(50名);          <em>抽奖</em>规则:      
抽奖算法总结
两类,第一类是常见的有等级的<em>抽奖</em>活动,如一等、二等、三等奖等等,废话不多说,直接贴代码:
一个简单的抽奖算法
通过随机数的区间分布实现一个<em>抽奖</em>算法。接受一个包含奖品中奖概率的list,返回中奖的奖品。 先定义一个抽象奖品类。 public abstract class AbstractPrize { /** * 奖品概率 */ private double probability; public double getProbability() {
抽奖-高并发
上一篇写了<em>关于</em><em>抽奖</em>算法的实现,本文就<em>抽奖</em>的高并发做简单的介绍 其实<em>抽奖</em>和秒杀系统的很多相似的地方,都会有这几个问题: 防止用户非法请求并发请求比较大数据库压力大 方案: 负载均衡缓存多线程异步… 流程: 初始化-把<em>抽奖</em>活动和奖品数据都放到redis缓存当有用户参与<em>抽奖</em>活动就从redis把奖品列表取出来调用之前提到的算法如果中奖更新redis数据,同时提交任务
美团抽奖算法js
Document   window.onload=function(){             var zs1=parseInt(prompt('请输入上证指数'));             var zs2=parseInt(prompt('请输入深证指数'));             var sum=parseInt(prompt('请输入前一天的总人数'));
C#大转盘,后台可控制概率,包可以转起来
虽然分有点多,但是真的话了我不少时间去做,去修改,去收集,保证可以转起来。
砸金蛋抽奖软件,可以设置金蛋数量、大小和位置,可控概率
砸金蛋<em>抽奖</em>软件,可以设置金蛋数量、大小和位置,可控概率。<em>抽奖</em>界面可以完全自定义化。操作很简单。
每天学一点flash(57)简单抽奖方式实现
  //获取新数组 private function getNewArray(myarray:Array):Array { var Temp:Array=new Array(); for (var i:int=0; i<myarray.length; i++) { if (myarray[i]!=0) { Temp.push(my
抽奖/红包算法
;
【项目实战】从抽奖算法感受算法奥妙
【前言】            最近因为公司年会需要,组长让我们花几天时间开发了个<em>抽奖</em>系统。虽然就是cs的一个小例子,不过自己设计算法的过程还是蛮有意思的。下面先给大家看看,最后成品的样子。主要实现的就是excel表的导入导出和<em>抽奖</em>功能, 这篇就讲一下<em>抽奖</em>功能的实现。目前实现的效果是点击开始时,全屏隐去,只剩下名字在滚动显示,需要停止时在datagridview中显示出获奖人信息。 【正文
一些比较实用的算法
1. <em>抽奖</em>算法 1. <em>抽奖</em>算法 在一次转盘摇奖项目中用到的一个<em>抽奖</em>算法,原理是给每个奖品分配不用的权值,然后根据总权值筛选每个奖品,必然会有一个奖品会被抽到。 public function get_rand($proArr) { $result = ''; //概率数组的总概率精度 $proSum = array_sum($proArr)...
从n个人中选择k个人的选法
题目从n个人中选选k个人组成一个委员会的不同组合数。解答分析从n-1个人到n个人,增加一个人,这个人可能被选中,也可能不被选中。若第n个人被选中则是从n-1个人中选择k-1个人,若第n个人没被选中,则是从n-1个人中选择k个人。即得以下公式: 由n个人里选k个人的组合数= 由n-1个人里选k个人的组合数+由n-1个人里选k-1个人的组合数;递归法得出推导公式: F(n,0) = 1; F(n,
Java根据奖品权重计算中奖概率实现抽奖
现在在许多网站上都会有<em>抽奖</em>的活动,<em>抽奖</em>的算法也是多种多样,这里介绍一下如何根据每种奖品的权重来<em>抽奖</em>,适用于多种<em>抽奖</em>形式。 实体: public class Prize { private int id;//奖品id private String prize_name;//奖品名称 private int prize_amount;//奖品(剩余)数量
文章热词 机器学习 机器学习课程 机器学习教程 深度学习视频教程 深度学习学习
相关热词 c#能开发软件吗 c#能跨平台吗 c++能制作外挂吗 c++能开发android 吗 电气工程能学习人工智能吗 python入门教程你
我们是很有底线的