-1
A
回答
1
public class Test {
private static void swap(int[] p, int i, int j) {
int t= p[i];
p[i]= p[j];
p[j]= t;
return;
}
private static boolean nextPerm(int[] p) { // need p.length > 1
int n= p.length;
int i= n;
if (i-- < 1) return false;
for(;;) {
int ii= i--;
if (p[i] < p[ii]) {
int j= n;
while (!(p[i] < p[--j]));
swap(p, i, j);
for (j= n; j > ii; swap(p, --j, ii++));
return true;
}
if (i == 0) {
for (int j= n; j > i; swap(p, --j, i++));
return false;
}
}
}
public static void main(String[] args) {
int x = 123;
String s = "" + x;
int n = s.length();
int[] p = new int[n];
for (int i = 0; i < n; i++){
p[i] = i;
}
do {
for (int i = 0; i < n; i++){
System.out.print(s.charAt(p[i]));
}
System.out.println();
}
while (nextPerm(p));
}
}
-1
終於讓我找到,下面是代碼,
class ShuffleNumber {
private static int[] a = {1,2,3};
private static void print(int[] a) {
for (int i = 0; i < a.length; i++)
System.out.print(" " + a[i]);
System.out.println();
}
private static void shuffle(){
int[] b = (int[])a.clone();
for (int i = b.length - 1; i > 0; i--) {
int j = (int)Math.floor(Math.random() * (i+1));
int temp = b[j];
b[j] = b[i];
b[i] = temp;
}
print(b);
}
public static void main(String[] args) {
for (int i = 0; i < 10; i++)
shuffle();
}
}
+0
這洗牌,但不會產生所有排列組合 –
相關問題
- 1. 洗牌隨機整數,打印所有的可能性
- 2. 打印字符作爲整數
- 3. pg_fetch_all()打印整數作爲字符串
- 4. 如何洗牌整數數組?
- 5. 程序不打印數字
- 6. 洗牌()作爲一個關聯數組
- 7. 打印整數作爲字符,小數點,浮點數
- 8. NASM Linux程序集打印整數
- 9. java:卡洗牌,
- 10. Double Values作爲整數打印
- 11. 洗牌整數測試的方法
- 12. 打印整數
- 13. 在java中洗牌兩個數組
- 14. 在Java中洗牌二維數組
- 15. 洗牌iOS中一個希臘字打印未知符號
- 16. Python 3.5.2字典每次打印出來都會重新洗牌
- 17. 陣列洗牌java
- 18. 爲什麼不打印出一個洗牌清單?
- 19. 打印排序整數數組元素
- 20. AngularJS:整潔的方法來打印數組作爲字符串
- 21. 打印字符串作爲整數在python 3
- 22. 代碼洗牌字符串不是整數
- 23. C#程序打印數字三角形?
- 24. 程序打印最多元音字數
- 25. 打印整數mips
- 26. 只打印整數?
- 27. 打印整數NASM
- 28. 打印的整數
- 29. 如何洗牌字符串數組
- 30. 無法打印出讀取整數:java
你如何決定,只有前3位的選擇? – nhahtdh
[你有什麼嘗試?](http://whathaveyoutried.com) –
至少,告訴我們在問這個問題之前你已經做了多少努力:) –