题目
1 随机100次
2 随机的数字1到100之间new Random().nextInt(100);
3 随机的100个数放到长度100的int数组里
考点:只能100次随机 随机出1到100的数字,不能重复!
废话:我看到这道题想了一会,经过我天才的思考,15分钟就写出来了,自己想的,我真聪明!
点明:有两个袋子 A袋子 空的 B袋子里面有100个球,球上1到100的数字,我说道这你知道怎么写程序了吗?这是我编的场景
点明2 :定义1个数组空100容量 ,定一个list有1到100个数,下标0到100,每次随机1到100的数,然后看做算百分率,每次取list的中对应百分率的下标,然后移除掉已经取的那个
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.Random;
public class RandomTest {
//声明两个袋子 一个用于装随机出来的数 另一个用于装 1到100
private static int[] bag1 = new int[100];
private static List<Integer> bag2 = putNumber();
public static void main(String[] args) {
for (int i = 0; i < 100; i++) {
bag1[i] = getNumber(getLocation());
}
System.out.println(Arrays.toString(bag1));
}
//放入100个数
private static List<Integer> putNumber() {
List<Integer> bag2 = new LinkedList<>();
for (int i = 0; i < 100; i++) {
bag2.add(i + 1);
}
return bag2;
}
//返回从bag2里面拿的数
private static int getNumber(int location) {
//获取随机位置
int number = bag2.get(location);
bag2.remove(location);
return number;
}
private static int getLocation() {
//随机出的百分率位置
int a = new Random().nextInt(100);
int location = bag2.size() * a / 100;
return location;
}
}
我真聪明= =