按学号随机倒霉蛋(java)

发布时间 2023-09-26 19:24:17作者: 繁花似锦终凋零

话不多说,直接上代码

 

import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
public class TimeBasedRandom {
public static void main(String[] args) {
Boolean[] isTaken = new Boolean[62];
Arrays.fill(isTaken,false);
//建立一张表防止重复被选
System.out.println("请输入所缺人数:");
Scanner sc=new Scanner(System.in);
int n = sc.nextInt();
System.out.println("中奖的倒霉蛋");
System.out.println("↓↓↓↓↓↓↓↓↓↓");
for (int i=0;i<n;i++) {
long seed = System.currentTimeMillis(); // 获取当前时间的毫秒数作为种子
Random random = new Random(seed+((long) i *i+i)); // 使用种子创建一个Random对象
int randomNumber = random.nextInt(); // 生成整数的范围是所有可能的整数
int randomInRange = random.nextInt(62) + 1; // 生成1到62之间的整数
if(!isTaken[randomInRange]) {
System.out.print(randomInRange+" "); //输出倒霉蛋(们)的学号
isTaken[randomInRange]=true; //被选中后标记
}else i--; //被二次选中的倒霉蛋 不应该浪费人数
}
}
}

等我学完数据库之后会再更新,数据库批量导入数据~
每个数字对应数据库里那个人的名字,虽然创建结构体/类也能实现,但手打导入数据真的好麻烦o.O?