写一个抢红包的Java代码
时间: 2024-05-08 08:22:30 浏览: 13
下面是一个简单的抢红包的Java代码示例:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class RedEnvelope {
private double totalAmount; // 红包总金额
private int totalNumber; // 红包总个数
public RedEnvelope(double totalAmount, int totalNumber) {
this.totalAmount = totalAmount;
this.totalNumber = totalNumber;
}
public List<Double> divide() {
List<Double> result = new ArrayList<>();
double average = totalAmount / totalNumber;
double max = average * 2;
Random random = new Random();
for (int i = 0; i < totalNumber; i++) {
double amount = random.nextDouble() * max;
if (amount < 0.01) {
amount = 0.01;
}
if (totalAmount - amount < (totalNumber - i - 1) * 0.01) {
amount = totalAmount - (totalNumber - i - 1) * 0.01;
}
totalAmount -= amount;
totalNumber--;
result.add(amount);
}
return result;
}
public static void main(String[] args) {
RedEnvelope redEnvelope = new RedEnvelope(100, 10);
List<Double> result = redEnvelope.divide();
for (Double amount : result) {
System.out.println(amount);
}
}
}
```
该代码实现了一个简单的红包抢夺算法,通过随机生成每个红包的金额来保证公平性,并且保证每个红包的金额不小于0.01元,也不大于平均值的2倍。同时,还需要考虑剩余金额不足以支持剩余红包个数时的情况。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)