トピックの要件: 整数配列を作成します。10 個の異なる乱数を生成し、整数配列に保存してください。生成中に繰り返しがある場合は、再生成されます。
Random メソッドを使用して乱数を生成する、インポート import java.util.Random;
問題解決のアイデア: 配列はすべて 0 に初期化されるため、区別するために、まず配列を -1 に初期化し、次にループを使用します。生成された乱数を変数 Number に格納し、乱数が生成されるたびにこの出力を調べ、重複がある場合は戻って再生成します。
繰り返される数値を取得し、それらを再生成するにはどうすればよいでしょうか? 生成された数値が配列で繰り返されない場合は、添え字+ 1 を制御します
。
public class RadnTest001 { public static void main(String[] args) { int []arr=new int[10]; ランダム r=new ランダム(); for (int i=0;i<arr.length;i++)//初期化{ arr[i]=-1; }
int k=0;
while (k<arr.length)
{
int key=r.nextInt(10);//为了方便测试我们让生成的随机数小于10
if(find(arr,key))//如果find返回true,则k++,否则会一直进行while循环生成新的随机数
{
arr[k++]=key;
}
}
for (int i=0;i<arr.length;i++)
{
System.out.print(arr[i]);
System.out.print(" ");
}
}
public static boolean find(int arr[],int k)
{
for (int i=0;i<arr.length;i++)//遍历数组,如果和k相等返回false
{
if(arr[i]==k)
{
return false;
}
}
return true;
}
}
テスト: