import java.util.Random
public class random {
public static void main(String[] args) {
int[] numArray = new int[30]
for(int i=0i<numArray.lengthi++){
numArray[i]=i+1
}
Random random = new Random()
int 卜辩randomNum = numArray.length-1
int[] array=new int[7]
for(int i=0i<array.lengthi++){
int index = random.nextInt(randomNum--)
array[i]= numArray[index]
int temp=numArray[index]
numArray[index]=numArray[randomNum]
numArray[randomNum]=temp
}
Arrays.sort(array)
for(int i=0i<array.lengthi++){
System.out.print(array[i]+" ")
}
}
说下大致思路,就是先弄一个1-30的数组,弯弊燃然后随机埋虚去数组里面取数,取完一次以后把本次取的数据往数组尾部放,并把尾部没选过的数字放到中间来,然后缩小检索数组的范围(这样就不会选到选过的数字了)
就是孙谈从判指36个数中选出7个,这36个数是什么可以自己指定,但必须保证不重复,我写的一个代码则冲碰public
class
test
{
public
static
void
main(String[]
args)
{
int[]
a
=
new
int[36]
for(int
i
=
0
i
<
36
++i)
a[i]
=
i+1
for(int
i
=
0
i
<
5
++i)
randomSelect(a,
7)
}
static
void
randomSelect(int[]
a,
int
n)
{
randomShuffle(a,
7)
for(int
i
=
0
i
<
n
++i)
System.out.print(a[i]
+
"
")
System.out.println()
}
static
void
randomShuffle(int[]
a,
int
n)
{
for(int
i
=
0
i
<
n
++i)
{
int
r
=
(int)(Math.random()
*
a.length)
int
tmp
=
a[i]
a[i]
=
a[r]
a[r]
=
tmp
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)