使用java语言基于这三个奖品来写一个抽奖代码
时间: 2024-06-06 12:08:40 浏览: 10
import java.util.Random;
public class Lottery {
public static void main(String[] args) {
String[] prizes = {"一等奖", "二等奖", "三等奖"};
int[] chances = {1, 2, 5}; //中奖概率分别为1/8,2/8,5/8
Random random = new Random();
int sum = 0;
for (int i = 0; i < chances.length; i++) {
sum += chances[i];
}
int rand = random.nextInt(sum); //生成0到sum-1的随机数
int index = -1;
for (int i = 0; i < chances.length; i++) {
if (rand < chances[i]) {
index = i;
break;
}
rand -= chances[i];
}
System.out.println("恭喜你获得了:" + prizes[index]);
}
}
相关问题
用java写一个转盘抽奖代码
好的,以下是一个简单的 Java 转盘抽奖代码:
import java.util.Random;
public class LuckyDraw {
public static void main(String[] args) {
String[] prizes = {"一等奖", "二等奖", "三等奖", "谢谢参与"};
int[] probabilities = {1, 2, 3, 94}; // 中奖概率分别为 1%, 2%, 3%, 94%
int totalProbability = ;
for (int probability : probabilities) {
totalProbability += probability;
}
Random random = new Random();
int luckyNumber = random.nextInt(totalProbability);
int cumulativeProbability = ;
for (int i = ; i < probabilities.length; i++) {
cumulativeProbability += probabilities[i];
if (luckyNumber < cumulativeProbability) {
System.out.println("恭喜您获得了" + prizes[i] + "!");
break;
}
}
}
}
这个代码中,我们定义了一个奖品数组和一个中奖概率数组,然后计算出所有奖品的中奖概率之和。接着,我们使用 Java 的 Random 类生成一个随机数,作为中奖号码。最后,我们遍历中奖概率数组,累加概率,如果中奖号码小于等于当前累加概率,就输出对应的奖品。
写一个转盘抽奖的java代码
以下是一个简单的 Java 转盘抽奖程序,供您参考:
```java
import java.util.Random;
import java.util.Scanner;
public class LuckyDraw {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Random rand = new Random();
String[] prizes = {"一等奖", "二等奖", "三等奖", "谢谢参与"};
int[] probabilities = {1, 2, 3, 94};
int[] angles = {0, 90, 180, 270};
System.out.println("欢迎参加抽奖活动!");
System.out.println("按任意键开始抽奖:");
sc.nextLine();
// 随机生成一个 0-100 的整数,用于确定中奖概率
int num = rand.nextInt(100) + 1;
// 根据中奖概率确定中奖奖项
int prizeIndex = 0;
for (int i = 0; i < probabilities.length; i++) {
if (num <= probabilities[i]) {
prizeIndex = i;
break;
} else {
num -= probabilities[i];
}
}
// 随机生成一个角度,用于确定转盘停留位置
int angleIndex = rand.nextInt(4);
int angle = angles[angleIndex];
System.out.println("恭喜您获得了:" + prizes[prizeIndex]);
System.out.println("转盘停在了:" + angle + "度位置");
}
}
```
该程序使用了一个 `prizes` 数组来存储奖项,一个 `probabilities` 数组来存储各奖项的中奖概率(以百分比表示),以及一个 `angles` 数组来存储转盘各个位置对应的角度。
程序首先通过 `Scanner` 类获取用户输入,然后使用 `Random` 类生成一个随机整数,用于确定中奖概率。接着,在一个 `for` 循环中,程序根据中奖概率确定中奖奖项,并随机生成一个角度,用于确定转盘停留位置。最后,程序输出中奖奖项和转盘停留位置。
请注意,该程序是一个简单的演示程序,实际的抽奖程序需要考虑更多的因素,例如奖品数量、已中奖名单、防止重复中奖等。