package day1;import java.util.Random;public class getBall { public static int[] getDoubleBall(){
int[] polls = {
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
};
int[] ball = new int[7];
boolean[] index = new boolean[20];
Random ran = new Random();
for(int i=0; i<6; i++){
int a = ran.nextInt(20); //a[0-19]
if(index[a] == true){
continue;
}
ball[i] = polls[a];
index[a] = true;
}
ball[6] = polls[ran.nextInt(10)];
return ball;
}}package day1;import java.util.Arrays;public class DoubleBall {
public static void main(String[] args) {
// TODO Auto-generated method stub
getBall ball = new getBall();
int[] t = ball.getDoubleBall();
System.out.println(Arrays.toString(t));
}
}选7个球,前6个球在1至20号球里随机选出6个,不能重复,第7个球在1至10号球里选出一个,可以与前6个球有重复,但是跑出来的结果是有0号球,而且有重复,这是为什么?谁能看一下,谢谢。
int[] polls = {
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
};
int[] ball = new int[7];
boolean[] index = new boolean[20];
Random ran = new Random();
for(int i=0; i<6; i++){
int a = ran.nextInt(20); //a[0-19]
if(index[a] == true){
continue;
}
ball[i] = polls[a];
index[a] = true;
}
ball[6] = polls[ran.nextInt(10)];
return ball;
}}package day1;import java.util.Arrays;public class DoubleBall {
public static void main(String[] args) {
// TODO Auto-generated method stub
getBall ball = new getBall();
int[] t = ball.getDoubleBall();
System.out.println(Arrays.toString(t));
}
}选7个球,前6个球在1至20号球里随机选出6个,不能重复,第7个球在1至10号球里选出一个,可以与前6个球有重复,但是跑出来的结果是有0号球,而且有重复,这是为什么?谁能看一下,谢谢。
方案:continue;改为i--;continue;就行了
* 第7个球在1至10号球里选出一个,可以与前6个球有重复*/
import java.util.Random;class Ball {
int poll[];
Ball(int a[]){
poll = a;
}
}
public class java_1 {
static int op[] = new int[7];
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int a[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
Ball b = new Ball(a);
Random ran = new Random();
op[0] = b.poll[ran.nextInt(20)];
for(int i = 1; i< 6; i++) {
op[i] = b.poll[ran.nextInt(20)];
for(int j = i-1; j>=0; j--)
if(op[i]==op[j])
i--;
else continue;
}
op[6] = b.poll[ran.nextInt(10)];
for(int i = 0; i<7; i++)
System.out.print(op[i]+" ");
}}
import java.util.Random;
public class DoubleBall {
public static void main(String[] args) {
// TODO Auto-generated method stub
getBall ball = new getBall();
int[] t = ball.getDoubleBall();
System.out.println(Arrays.toString(t));
}
}
class getBall { public static int[] getDoubleBall(){
int[] polls = {
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
};
int[] ball = new int[7];
Random ran = new Random();
ball[6] = polls[ran.nextInt(10)];
for(int i=0; i<6; )
{
int a = ran.nextInt(20); //a[0-19]
if(polls[a]!=0)
{
ball[i] = polls[a];
i++;
polls[a]=0;
}
}
return ball;
}} /code]
import java.util.Random;
public class DoubleBall {
public static void main(String[] args) {
// TODO Auto-generated method stub
getBall ball = new getBall();
int[] t = ball.getDoubleBall();
System.out.println(Arrays.toString(t));
}
}
class getBall { public static int[] getDoubleBall(){
int[] polls = {
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
};
int[] ball = new int[7];
Random ran = new Random();
ball[6] = polls[ran.nextInt(10)];
for(int i=0; i<6; )
{
int a = ran.nextInt(20); //a[0-19]
if(polls[a]!=0)
{
ball[i] = polls[a];
i++;
polls[a]=0;
}
}
return ball;
}}
import java.util.Random;
public class DoubleBall { public static void main(String[] args) {
// TODO Auto-generated method stub
getBall ball = new getBall();
int[] t = ball.getDoubleBall();
System.out.println(Arrays.toString(t)); }}class getBall{
public static int[] getDoubleBall(){
int[] polls = {
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
};
int[] ball = new int[7];
Random ran = new Random();
ball[6] = polls[ran.nextInt(10)];
for(int i=0; i<6; )
{
int a = ran.nextInt(20); //a[0-19]
if(polls[a]!=0)
{
ball[i] = polls[a];
i++;
polls[a]=0;
}
}
return ball;
}
}
引用 7 楼 shirui8653719 的回复:
Quote: 引用 5 楼 lihoujun123 的回复:这里有一个更简单的方法
Java code?1234567891011121314151617181920212223242526272829303132333435363738394041 [import java.util.Arrays; import java.util.Random; public class DoubleBall { public static void main(String[] args) { // TODO Auto-generated method stub getBall ball = new getBall(); int[] t = ball.getDoubleBall(); System.out.println(Arrays.toString(t)); } } class getBall { public static int[] getDoubleBall(){ int[] polls = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 }; int[] ball = new int[7]; Random ran = new Random(); ball[6] = polls[ran.nextInt(10)]; for(int i=0; i<6; ) { int a = ran.nextInt(20); //a[0-19] if(polls[a]!=0) { ball[i] = polls[a]; i++; polls[a]=0; } } return ball; } } /code]
嗯,你这个方法比我那个更简单一点。[code=java]import java.util.Arrays;
import java.util.Random;
public class DoubleBall {public static void main(String[] args) {
// TODO Auto-generated method stub
getBall ball = new getBall();
int[] t = ball.getDoubleBall();
System.out.println(Arrays.toString(t));}}class getBall{
public static int[] getDoubleBall(){
int[] polls = {
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
};
int[] ball = new int[7];
Random ran = new Random();
ball[6] = polls[ran.nextInt(10)];
int i=0;
do {
int a = ran.nextInt(20); //a[0-19]
if(polls[a]!=0)
{
ball[i] = polls[a];
i++;
polls[a]=0;
}
}while(i>5);
return ball;
}
}