求java中随机生成1到n之间不同的t个整数的方法

来源:百度知道 编辑:UC知道 时间:2024/06/22 09:51:31
从1到n(包含n)之间随机的不重复的t个整数,最好写在一个方法里,如public int[] fn(int n,int t)
{

}
返回一个整形数数组
求java代码
要求是
1、随机的
2、不重复的
3、整数
4、在1~n之间的

public int[] fn(int n,int t)
{
ArrayList<int> numbers=new ArrayList();
int[] rtnumbers=new int[t];
for(int i=0;i<n;i++){ //初始化数组
numbers.add(i+1);
}
for(int j=0;j<t;j++){
int raNum=(int)(Math.random()*numbers.size());
rtnumbers[j]=numbers.get(raNum);
numbers.remove(raNum);
}
return rtnumbers;
}
思路就是一开始把数放到一个list中,然后根据随机生成下标数raNum,从list中取出数放到rtnumbers中,再把list中的这个数删除,以便达到不重复目的. 楼上几个写的根本不对,不知所云

public class Test {
public static void main(String[] args) {
//程序入口,调用随即函数
fn(400, 10);
}

// 从1到n(包含n)之间随机的不重复的t个整数,最好写在一个方法里,如
public static int[] fn(int n, int t) {
//实例化数组,长度为t
Random r = new Random();
int tem[] = new int[t];
//循环从1到n
for (int i = 1; i < n; i++) {
//生成t个整数
if (i <= t) {
//生成1到n之间的随机数
int result = r.nextInt(n);
for (int