简单实现微信抢红包的功能(Java)
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class RedPacket {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入红包金额:");
double totalAmount = sc.nextDouble();
System.out.println("请输入红包个数:");
int totalPeople = sc.nextInt();
List
System.out.println("红包金额分配如下:");
for (Double amount : redPacketList) {
System.out.println(amount);
}
System.out.println("请输入抢红包的人数:");
int grabPeople = sc.nextInt();
List
System.out.println("抢到的红包金额如下:");
for (Double amount : grabList) {
System.out.println(amount);
}
}
public static List
List
Random random = new Random();
double leftAmount = totalAmount;
int leftPeople = totalPeople;
for (int i =0; i < totalPeople -1; i++) {
double amount = random.nextDouble() * (leftAmount / leftPeople) *2;
redPacketList.add(amount);
leftAmount -= amount;
leftPeople--;
}
redPacketList.add(leftAmount);
Collections.shuffle(redPacketList);
return redPacketList;
}
public static List
List
Random random = new Random();
for (int i =0; i < grabPeople; i++) {
int index = random.nextInt(redPacketList.size());
double amount = redPacketList.remove(index);
grabList.add(amount);
}
return grabList;
}
}
在这个简单的模拟微信抢红包的小程序中,我们首先通过divideRedPacket方法来模拟红包的分配过程。用户输入红包的总金额和总人数后,程序会随机生成每个红包的金额,并将其添加到一个List中。最后一个红包的金额是剩余的金额,确保总金额不变。
接着,我们通过grabRedPacket方法来模拟抢红包的过程。用户输入抢红包的人数后,程序会随机从红包列表中抽取红包金额,并将其添加到另一个List中。
最后,程序会输出分配的红包金额和抢到的红包金额,让用户可以查看每个人抢到的金额。
这个小程序虽然简单,但是实现了微信抢红包的基本功能。用户可以通过输入不同的参数来模拟不同的红包分配和抢红包的情况,体验类似微信抢红包的乐趣。希望这个简单的示例能够帮助你更好地理解Java编程和模拟算法的应用。