随机数:
测试代码1:
package test.randomnumber.com;
import java.util.Random;
public class RandomNumberGenerator {
private Random rand = new Random();
public void generateRandomNumbers() {
// 生成一个[0, 100)之间的随机整数
int randomInt = rand.nextInt(100);
System.out.println("Random Integer (0-99): " + randomInt);
// 生成一个指定范围内的随机整数,比如[5, 20]
int minInt = 5;
int maxInt = 20;
int randomIntInRange = rand.nextInt(maxInt - minInt + 1) + minInt;
System.out.println("Random Integer in Range [" + minInt + ", " + maxInt + "]: " + randomIntInRange);
// 生成一个[0.0, 1.0)之间的随机浮点数
double randomDouble = rand.nextDouble();
System.out.println("Random Double (0.0-1.0): " + randomDouble);
// 生成一个指定范围内的随机浮点数,比如[5.0, 20.0]
double minDouble = 5.0;
double maxDouble = 20.0;
double randomDoubleInRange = minDouble + (maxDouble - minDouble) * rand.nextDouble();
System.out.println("Random Double in Range [" + minDouble + ", " + maxDouble + "]: " + randomDoubleInRange);
}
public static void main(String[] args) {
RandomNumberGenerator generator = new RandomNumberGenerator();
generator.generateRandomNumbers();
}
}
运行结果如下:
测试代码2:一个简单的洗牌程序。
package test.randomnumber.com;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
// 定义一个枚举表示花色
enum Suit {
HEARTS, DIAMONDS, CLUBS, SPADES
}
// 定义一个扑克牌类
class Card {
private Suit suit; // 花色
private String rank; // 牌面(数字或花牌)
public Card(Suit suit, String rank) {
this.suit = suit;
this.rank = rank;
}
@Override
public String toString() {
return rank + " of " + suit;
}
}
public class ShuffleCards {
public static void main(String[] args) {
// 创建一个列表来存储所有扑克牌
List<Card> deck = new ArrayList<>();
// 添加普通牌
String[] ranks = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King", "Ace"};
for (Suit suit : Suit.values()) {
for (String rank : ranks) {
deck.add(new Card(suit, rank));
}
}
// 使用Collections.shuffle()进行洗牌
Collections.shuffle(deck);
// 打印洗牌后的牌
for (Card card : deck) {
System.out.println(card);
}
}
}
运行结果如下:
测试代码3:模拟彩票程序。
package test.randomnumber.com;
import java.util.Arrays;
import java.util.Random;
public class LotteryProgram {
public static void main(String[] args) {
// 创建Random对象
Random random = new Random();
// 生成红球号码(不重复)
int[] redBalls = new int[6];
boolean[] used = new boolean[34]; // 用于跟踪哪些数字已被选中
int count = 0;
while (count < 6) {
int num = random.nextInt(33) + 1; // 生成1到33之间的随机数
if (!used[num]) { // 如果这个数还没被用过
redBalls[count++] = num;
used[num] = true;
}
}
Arrays.sort(redBalls); // 对红球号码进行排序
// 生成蓝球号码
int blueBall = random.nextInt(16) + 1; // 生成1到16之间的随机数
// 打印结果
System.out.println("红球号码:");
for (int ball : redBalls) {
System.out.print(ball + " ");
}
System.out.println("\n蓝球号码:" + blueBall);
}
}
运行结果如下:
测试代码4:模拟彩票程序。
package test.randomnumber.com;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Random;
import java.util.Scanner;
public class ComplexLotteryProgram {
// 假设的中奖号码
private static final int[] WINNING_RED_BALLS = {2, 5, 12, 18, 23, 31};
private static final int WINNING_BLUE_BALL = 8;
// 生成一组彩票号码
private static List<Integer> generateRedBalls(Random random) {
boolean[] used = new boolean[34];
List<Integer> redBalls = new ArrayList<>();
while (redBalls.size() < 6) {
int num = random.nextInt(33) + 1;
if (!used[num]) {
redBalls.add(num);
used[num] = true;
}
}
return redBalls;
}
// 生成蓝球号码
private static int generateBlueBall(Random random) {
return random.nextInt(16) + 1;
}
// 生成指定数量的彩票
private static List<List<Integer>> generateTickets(int count, Random random) {
List<List<Integer>> tickets = new ArrayList<>();
for (int i = 0; i < count; i++) {
List<Integer> redBalls = generateRedBalls(random);
int blueBall = generateBlueBall(random);
List<Integer> ticket = new ArrayList<>(redBalls);
ticket.add(blueBall); // 将蓝球添加到彩票列表中
tickets.add(ticket);
}
return tickets;
}
// 假设的中奖检查函数
private static void checkWinningTickets(List<List<Integer>> tickets) {
for (int i = 0; i < tickets.size(); i++) {
List<Integer> ticket = tickets.get(i);
boolean win = ticket.containsAll(Arrays.asList(WINNING_RED_BALLS)) && ticket.contains(WINNING_BLUE_BALL);
if (win) {
System.out.println("恭喜!第 " + (i + 1) + " 张彩票中奖!");
}
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Random random = new Random();
System.out.print("请输入您想要购买的彩票数量:");
int ticketCount = scanner.nextInt();
List<List<Integer>> tickets = generateTickets(ticketCount, random);
// 打印所有彩票号码
for (int i = 0; i < tickets.size(); i++) {
List<Integer> ticket = tickets.get(i);
System.out.println("第 " + (i + 1) + " 张彩票:红球 " + ticket.subList(0, 6) + ",蓝球 " + ticket.get(6));
}
// 假设的中奖检查
checkWinningTickets(tickets);
scanner.close();
}
}
运行结果如下: