花几千上万学习Java,真没必要!(十二)

随机数:

测试代码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();  
    }  
}

运行结果如下:

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值