抽奖概率的计算

抽奖系统要给定几个概率,一等奖0.1%二等奖0.2%三等奖0.5%幸运奖1%其余不中奖如何进行判断这些概率???用什么方法来实现?写一个JAVA的方法实现这个过程如果可以... 抽奖系统
要给定几个概率,一等奖0.1% 二等奖0.2% 三等奖 0.5% 幸运奖 1% 其余不中奖
如何进行判断这些概率???
用什么方法来实现?写一个JAVA的方法实现这个过程
如果可以实现 我可以追加分
展开
 我来答
涧枫
2012-07-05
知道答主
回答量:28
采纳率:0%
帮助的人:8.6万
展开全部
/*
* 下面方法是在考虑奖项有名额限制的情况下
* 暂定一等奖1名 二等奖 2名 3等级3名 幸运奖10名
* 中奖方法适用math.random(1000)
*/
Integer one = 1;
Integer two = 2;
Integer three = 3;
Integer lucky = 10;
public Integer Lottery(){//返回值:1-一等奖 2-二等奖 3-三等奖 4-幸运奖 0-不中奖
Integer ranNum = (int)(Math.random()*1000);
System.out.println(ranNum);
if(ranNum>=0&&ranNum<10)//获奖范围内
{
if(ranNum==0)//获得0 概率为0.1%
{
if(one>0)
{
one--;
return 1;
}
if(two>0)
{
two--;
return 2;
}
if(three>0)
{
three--;
return 3;
}
if(lucky>0)
{
lucky--;
return 4;
}
}

if(ranNum>=0&&ranNum<2)
{
if(two>0)
{
two--;
return 2;
}
if(three>0)
{
three--;
return 3;
}
if(lucky>0)
{
lucky--;
return 4;
}
}

if(ranNum>=0&&ranNum<5)
{

if(three>0)
{
three--;
return 3;
}
if(lucky>0)
{
lucky--;
return 4;
}
}

if(lucky>0)
{
lucky--;
return 4;
}
}

return 0;
}
追问
有一个问题    没考虑到。
这些奖品是存放在数据库的,当抽中奖后,奖品的数量就会减少,当抽完后,那客户也就抽不到这个奖项了。这部分该怎么实现? 你这是用什么语言写的? 怎么我看不懂啊?
帐号已注销
2012-07-05 · TA获得超过751个赞
知道小有建树答主
回答量:376
采纳率:0%
帮助的人:359万
展开全部
可以给你个思路, 你可以设置一千个数字,其中只有一个数字为中奖数字,抽中为一等奖,设置其中两个数字为二等奖数字,抽中为二等奖,设置5个数字为三等奖数字,抽中为三等奖,设置十个数字为幸运奖数字,抽中为幸运奖,中奖数字都别重复,开一个随机数生成 0-1000的整数。
具体实现你可以慢慢琢磨
追问
这个我也想到了,现在就是不知道用什么方法来实现这个东西,而且当某个奖项被人抽中了的话,这个奖项应该就失效了。又该怎么办?
追答
如果说一个奖项被抽中了,你做个判断,抽中了就把那个奖项数字设置为普通数字
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zddzamsr
2012-07-05 · TA获得超过352个赞
知道答主
回答量:87
采纳率:100%
帮助的人:25.7万
展开全部
import java.util.Random;

public class NewMain {

public static void main(String[] args) {
String s = getResult();
System.out.println(s);
}

private static String getResult() {
String ss = "您未中奖";
/**
* 取0~999的随机数,
* 如果是0则中1等奖
* 1和2中2等奖
* 3 4 5 6 7中3等奖
* 8~17是幸运奖
*/
Random random = new Random();
int i = random.nextInt(1000);//取1000个随机数 0~999
System.out.println("随机数是:"+i);//可以不打印这句
//判断随机数
if(i==0){
ss = "您中了一等奖";
}else if(i==1||i==2){
ss = "您中了二等奖";
}else if(i>=3&&i<=7){
ss = "您中了三等奖";
}else if(i>=8&&i<=17){
ss = "您中了幸运奖";
}
return ss;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fylsh
2012-07-05 · TA获得超过950个赞
知道小有建树答主
回答量:1472
采纳率:0%
帮助的人:1034万
展开全部
可以考虑把1-1000的数字进行打乱,(假设1为一等奖,2、3为2等奖。。),完全打乱(打乱方式可以参照ls的,如用随机数产生)
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
永清季一恨1N
2012-07-05 · TA获得超过918个赞
知道小有建树答主
回答量:1684
采纳率:0%
帮助的人:1299万
展开全部
几个1等奖 几个2等奖 几个三等奖? 几个幸运奖?
追问
5个一等奖      10个二等奖     20个三等奖    50个幸运奖    不中奖  若干
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式