用java.util.Radom類中的方法.
成都創(chuàng)新互聯(lián)公司主營(yíng)招遠(yuǎn)網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,app軟件定制開發(fā),招遠(yuǎn)h5小程序開發(fā)搭建,招遠(yuǎn)網(wǎng)站營(yíng)銷推廣歡迎招遠(yuǎn)等地區(qū)企業(yè)咨詢
Random rd=new Random();
int persion_id=rd.nextInt(10);//這樣可以得到0-10之間的一個(gè)隨機(jī)數(shù)(假如總共有十個(gè)學(xué)生.)
然后用,threeStudent.add(students[stu_id])實(shí)現(xiàn).
有了這個(gè)以后,就好說(shuō)了.循環(huán)取得三個(gè)學(xué)生.送到threeStudent中去.
public void chooseThree()
{
Random rd=new Random();
for(int i=0;i3;i++)
{
threeStudent.add(students[stu_id]);
}
}
祝你好運(yùn)...
抽取問(wèn)題, 重點(diǎn)是 同一個(gè)學(xué)號(hào)不能重復(fù)被抽取.
解決辦法很多,
比如數(shù)組可以使用下標(biāo)來(lái)標(biāo)記,號(hào)碼是否被使用,使用了就繼續(xù)下一次抽取
也可以使用集合來(lái)抽取,把集合順序打亂,然后隨便抽幾個(gè)就可以了
參考代碼:數(shù)組法
import?java.util.Random;
public?class?Test?{
public?static?void?main(String[]?args)?{
int?stuNums=30;
int[]?nums=new?int[stuNums];//存儲(chǔ)學(xué)號(hào)的數(shù)組
boolean[]?flags=new?boolean[stuNums];//標(biāo)記,用于標(biāo)記對(duì)應(yīng)下標(biāo)的學(xué)號(hào)是否已經(jīng)被抽取過(guò)了
for?(int?i?=?0;?i??stuNums;?i++)?{
nums[i]=i+1;//給學(xué)號(hào)賦值
}
Random?r=new?Random();
while(true){
int?index?=?r.nextInt(stuNums);
if(!flags[index]){
System.out.println("A等:"+nums[index]);
flags[index]=true;?//標(biāo)記已經(jīng)被使用過(guò)了
break;
}
}
for?(int?i?=?0;?i??2;?i++)?{
int?index?=?r.nextInt(stuNums);
if(!flags[index]){
System.out.println("B等:"+nums[index]);
flags[index]=true;
}else{
i--;//如果已經(jīng)被抽取過(guò)了?,那么i建議,再次循環(huán)
}
}
for?(int?i?=?0;?i??3;?i++)?{
int?index?=?r.nextInt(stuNums);
if(!flags[index]){
System.out.println("c等:"+nums[index]);
flags[index]=true;
}else{
i--;
}
}
}
}
集合法
import?java.util.ArrayList;
import?java.util.Collections;
public?class?Test2?{
public?static?void?main(String[]?args)?{
int?stuNums=20;
ArrayListInteger?list=new?ArrayListInteger();
for?(int?i?=?0;?i??stuNums;?i++)?{
list.add(i+1);
}
System.out.println("有序"+list);
Collections.shuffle(list);//打亂順序
System.out.println("亂序"+list);
System.out.println("A等"+list.get(0));
System.out.println("B等"+list.get(1));
System.out.println("B等"+list.get(2));
System.out.println("C等"+list.get(3));
System.out.println("C等"+list.get(4));
System.out.println("C等"+list.get(5));
}
}
public class test {
public static void main(String[] args) {
//定義人名數(shù)組
String [] name = {"張三","李四","王五","八神庵","不知火舞","大蛇","景天","唐雪見","李逍遙","趙靈兒"};
//隨機(jī)生成數(shù)組下標(biāo)、
int num = (int)(Math.random() * 1000);
//對(duì)生成的隨機(jī)數(shù)進(jìn)行判斷,如果小于數(shù)組下標(biāo),就跳出循環(huán)
while (numname.length-1) {
if (num=name.length-1) {
break;
}
num = (int)(Math.random() * 1000);
}
//將數(shù)組下標(biāo)設(shè)置成隨機(jī)數(shù),就可以實(shí)現(xiàn)人名的隨機(jī)抽取
System.out.println(“被抽到的同學(xué)是:”+name[num]);
}
}