產生不重複之亂數
本篇記錄解題時遇到的題目:如何產生不重複的1-10的數字
Last updated
n = (int)(Math.random()*(10-i));
arr[i] = num[n];for(int j = n; j < num.length - 1; j++)
{
num[j] = num[j+1];
}int n;
for(int i = 0; i < arr.length; i++)
{
n = (int)(Math.random()*(10-i));
arr[i] = num[n];
for(int j = n; j < num.length - 1; j++)
{
num[j] = num[j+1];
}
}
return arr;public class Example
{
public static void main(String[] args)
{
int[] num = new int[10];
System.out.print("數字: ");
for(int i = 0; i < num.length; i++)
{
num[i] = i + 1;
System.out.print(num[i]+" ");
}
System.out.print("\n隨機不重複產生5個亂數: ");
int[] Array;
Array = getRandom(num);
for(int i = 0; i < 5; i++)
System.out.print(Array[i] + " ");
}
public static int[] getRandom(int[] num)
{
int[] arr = new int[5];
int n;
for(int i = 0; i < arr.length; i++)
{
n = (int)(Math.random()*(10-i));
arr[i] = num[n];
for(int j = n; j < num.length - 1; j++)
{
num[j] = num[j+1];
}
}
return arr;
}
}num 1 2 3 4 5 6 7 8 9 10
arr 0 0 0 0 0num 1 2 3 4 5 7 8 9 10 10
arr 6 0 0 0 0num 1 2 3 4 5 8 9 10 10 10
arr 6 7 0 0 0num 1 2 3 5 8 9 10 10 10 10
arr 6 7 4 0 0