本文目錄一覽:
- 1、在java中 如何隨機排列幾個數字
- 2、java 0-30隨機輸出5個隨機數並從大到小排序,求大神解答。
- 3、1到 n 隨機排序 java
- 4、如何對java集合中的元素進行隨機排序?
- 5、java中對數組中的數據進行隨機排序
在java中 如何隨機排列幾個數字
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Random;
public class test1 {
public static void main(String arg[]){
String str=””;
Random rd=new Random();
int num;
System.out.print(“請輸入幾個數字,用逗號分隔開:”);
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
try{
str=br.readLine();
}catch(Exception e){
e.printStackTrace();
}
String[] array=str.split(“,”);
boolean[] bool=new boolean[array.length];
System.out.print(“隨機排列這些數字如下:”);
for(int i=0;iarray.length;i++){
do{
num=rd.nextInt(array.length);
}while(bool[num]);
bool[num]=true;
System.out.print(array[num]+”,”);
}
}
}
java 0-30隨機輸出5個隨機數並從大到小排序,求大神解答。
import java.util.Arrays;
import java.util.Random;
public class Test3 {
public static void main(String[] args) {
//定義長度為5的數組,存放產生的5個隨機數
int[] n=new int[5];
//創建隨機數對象
Random random=new Random();
//循環產生5個隨機數
for (int i = 0; i n.length; i++) {
//隨機數的大小設定為0到30
n[i]=random.nextInt(30);
}
//對5個隨機數排序,順序為由小到大
Arrays.sort(n);
//創建臨時數組,用來將5個隨機數順序倒置成由大到小
int []temp=new int[5];
//將數組n中數據由大到小存入臨時數組
for (int i = 0; i n.length ; i++) {
temp[i]=n[n.length-i-1];
}
//將n數組的引用指向臨時數組,這樣數組n的數據就和臨時數組中的一樣,即順序變成了由大到小
n=temp;
//將臨時數組引用清空
temp=null;
//由大到小順序輸出隨機數
for (int i = 0; i n.length; i++) {
System.out.print(n[i]+” “);
}
}
}
有不明白的請繼續問
1到 n 隨機排序 java
思路有兩個
1、利用Random.nextInt(n)得到處於0~n-1的隨機數,加1後並按順序放入數組。放入之前需要先判斷數組中是否已經有了該數。
2、先初始化數組a[n],存放1~n的整數,然後交換任意兩個位置的數任意次數,這也能得到隨機。交換次數定多少,這個我沒法確定。
我把第一種方法代碼貼出來
static Random r = new Random();
@Test
public void test() {
printArray(getArray(20));
}
public void printArray(int[] a) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i a.length; i++) {
sb.append(a[i] + ” , “);
}
System.out.print(sb.toString());
}
public int[] getArray(int n) {
int[] a = new int[n];
while ((n–) 0) {
int temp = this.getNum(a.length);
while (true n = 0) {
if (check(temp, a)) {
temp = this.getNum(a.length);
} else {
a[n] = temp;
break;
}
}
}
return a;
}
public boolean check(int t, int[] a) {
boolean flag = false;
for (int i = 0; i a.length; i++) {
if (t == a[i]) {
flag = true;
break;
}
}
return flag;
}
public int getNum(int n) {
return r.nextInt(n)+1;
}
注釋我就不加了,你應該看得懂
如何對java集合中的元素進行隨機排序?
List l=new ArrayList(
input);
//將input數組放入arraylist,input為集合
List res=new ArrayList();
//用來存放隨機產生元素的結果
Random r=new Random();//隨機數
int size=l.size();
for(int i=0;isize;i++){
res.add(l.remove(
r.nextInt(l.size())));
//為了保證不重複,每次隨機產生後都刪除該元素。
}
//此時res中存放的就是隨機排序的結果。
java中對數組中的數據進行隨機排序
對數組進行隨機排序分為兩種形式,一種是完全隨機排序,一種是不完全隨機排序,區別是完全隨機對數組中原先任意的數據不會出現在原來的位置上,那麼,一般來說,完全隨機排序的需求會相對較大,我在此先給出完全隨機方式,如果你需要不完全隨機排序,可以再說:
舉個例子:有一批數據,共n個,依次為a1,a2,a3,…,an-1,an,需要對它們進行完全隨機排序。排序方法類似於直接選擇,從左至右,即從ai+1~an中隨機抽取一個數據與ai交換(1≤i≤n-1)。先排序第一個數據a1:從a2~an中隨機抽出一個數據與a1交換;再排第二個數據a2:從a3~an中隨機抽取一個數據與a2交換;再排第三個數據a3:從a4~an中隨機抽取一個數據與a3交換;…;最後排第n-1個數據an-1:從an~an中隨機抽取一個數據與an-1交換;第n個數據已不需要排序。這樣,總共需要排n-1次。 從以上的演算法分析中可以看出,每個待排序數據都會與其它數據交換位置,所以,每個數據都不會出現在原先的位置上,這是完全隨機排序。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/236957.html