产生不相同的随机数

来源:互联网 发布:淘宝91邀请码多少钱 编辑:程序博客网 时间:2024/05/01 12:10

算法一:

/*要求生成十个不相同的随机数!!! */public class NoSameRandom {public static void main(String args[]) {int n = 10;int a[] = new int[n];for (int i = 0; i < n; i++) {a[i] = (int) (Math.random() * 10); // 生成0-9的随机整数for (int j = 0; j < i; j++) {if (a[j] == a[i]) {i--; // i--这在的妙用!!!break;}}}for (int i = 0; i < n; i++) {System.out.print("  " + a[i]);}}}

算法二:

//思路不同,本程序用了while循环,经典!!!public class NoSameRandom2 {public static void main(String args[]) {int array[] = new int[10];int i = 0;boolean flag = true;int counter = 0;while (i < 10) {flag = true;// 此句必须写,否则死循环!!!int k = (int) (Math.random() * 10);for (int j = 0; j < i; j++) {if (k == array[j]) {flag = false;counter++;// 记录生成相同随机数的次数break;}}if (flag) {array[i] = k;i++;}}for (i = 0; i < 10; i++)System.out.print(" " + array[i]);System.out.println("\nCounter=" + counter);}}


0 0