-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) –
至少,告诉我们在问这个问题之前你已经做了多少努力:) –