java实现输入指定的数字和抢到红包尾数出现指定数字的概率的抢红包程序
时间: 2024-03-12 08:43:19 浏览: 145
这个问题涉及两个部分:生成随机红包金额和计算尾数出现指定数字的概率。
首先,我们可以使用Java的Random类生成随机红包金额。具体来说,可以定义一个函数,输入红包总金额和红包个数,输出一个数组,包含每个红包的金额。
```java
import java.util.*;
public class RedPacket {
public static int[] generate(int totalAmount, int count) {
Random random = new Random();
int[] result = new int[count];
for (int i = 0; i < count; i++) {
if (i == count - 1) {
result[i] = totalAmount;
} else {
int maxAmount = (totalAmount - (count - i - 1)) / 2;
int amount = random.nextInt(maxAmount) + 1;
result[i] = amount;
totalAmount -= amount;
}
}
return result;
}
}
```
接下来,我们需要计算尾数出现指定数字的概率。具体来说,可以定义一个函数,输入一个数组和一个数字,输出出现该数字的概率。
```java
public class Probability {
public static double calculate(int[] amounts, int digit) {
int count = 0;
for (int amount : amounts) {
if (amount % 10 == digit) {
count++;
}
}
return (double)count / amounts.length;
}
}
```
最后,我们可以将两个函数结合起来,实现抢红包程序。具体来说,可以定义一个函数,输入红包总金额、红包个数和尾数指定数字,输出抢到该数字的概率。
```java
public class RedPacketGame {
public static double play(int totalAmount, int count, int digit) {
int[] amounts = RedPacket.generate(totalAmount, count);
return Probability.calculate(amounts, digit);
}
}
```
使用示例:
```java
public class Main {
public static void main(String[] args) {
int totalAmount = 100;
int count = 10;
int digit = 6;
double probability = RedPacketGame.play(totalAmount, count, digit);
System.out.println("The probability of getting digit " + digit + " is " + probability);
}
}
```
阅读全文