生成随机数 shuffle 的用法

本文介绍了一种利用Java API中的shuffle方法实现考试系统随机生成不同顺序试题的方法。通过将题库中的题目ID放入list并打乱顺序,确保每位考生获取到的试题不同,实现了公平性和随机性的要求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要做一个考试系统:

     涉及到生成考卷 每个人考某一门课程的时候生成的试题都不能相同(题目 和 题目的顺序)

 

 

大概思路:

     从题库你取出所有题目的ID 把它放到一个list中 打乱顺序,每次都从list中取前20个记录作为题目

 

这就涉及到一个 怎么去打乱一个list的顺序,找了半天终于 在API 中看到 了一个 shuffle方法

public class TestShuffle {
	 public static void main(String[] args) {

		List<Integer> list = new ArrayList<Integer>();
	    for (int i = 0; i < 10; i++)
	        list.add(new Integer(i));
	    System.out.println("初始数据:");
	    System.out.println(list);

	    for (int j = 1; j < 10; j++) {
	        System.out.println("第" + j + "次打乱:");
	        Collections.shuffle(list);
	        System.out.println(list);
	    }
	 }
}

 

 

初始数据:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
第1次打乱:
[3, 7, 0, 1, 9, 2, 4, 5, 8, 6]
第2次打乱:
[5, 8, 1, 2, 6, 9, 7, 3, 0, 4]
第3次打乱:
[0, 7, 5, 6, 4, 1, 3, 8, 9, 2]
第4次打乱:
[1, 3, 2, 7, 9, 8, 6, 5, 0, 4]
第5次打乱:
[8, 7, 1, 2, 6, 4, 9, 5, 3, 0]
第6次打乱:
[6, 3, 7, 1, 0, 8, 2, 9, 4, 5]
第7次打乱:
[8, 5, 9, 0, 3, 1, 7, 4, 2, 6]
第8次打乱:
[9, 7, 3, 2, 4, 5, 8, 0, 1, 6]
第9次打乱:
[8, 7, 6, 0, 4, 5, 9, 1, 2, 3]

 

 

问题解决了。

 

结论:看来API 还是需要 经常看的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值