一、java如何产生随机数?
1.打开eclipse
2.新建java项目,例如取名为“suijishu”点击完成
3.新建一个类进行测试
4.首先要在头部插入一个包
输入import java.util.Random;
5.输入代码:
public static int suiji = new Random().nextInt(10);
public static void main(String[] args) {
System.out.print(suiji);
}
其中,public static int suiji = new Random().nextInt(10);这一行是生成随机数的关键,它可以生成0到9的一个随机数
packagesuijishu;importjava.util.Random;public classsuijishu{public static int suiji =new Random().nextInt(10);public static voidmain(String[] args){
System.out.print(suiji);
}
}
6.测试输出,就可以看到生成的随机数
二、java如何实现生成不重复的随机数
packagesuijishu;importjava.util.Random;public classsuijishu{public static int suiji =new Random().nextInt(10);public static voidmain(String[] args){
System.out.print(suiji);
}//设定几位数
private static final int LENGTH = 8;/*** 这是典型的随机洗牌算法。
* 流程是从备选数组中选择一个放入目标数组中,将选取的数组从备选数组移除(放至最后,并缩小选择区域)
* 算法时间复杂度O(n)
*@return随机8为不重复数组*/
public staticString generateNumber() {
String no= "";//初始化备选数组
int[] defaultNums = new int[10];for (int i = 0; i < defaultNums.length; i++) {
defaultNums[i]=i;
}
Random random= newRandom();int[] nums = new int[LENGTH];//默认数组中可以选择的部分长度
int canBeUsed = 10;//填充目标数组
for (int i = 0; i < nums.length; i++) {//将随机选取的数字存入目标数组
int index =random.nextInt(canBeUsed);
nums[i]=defaultNums[index];//将已用过的数字扔到备选数组最后,并减小可选区域
swap(index, canBeUsed- 1, defaultNums);
canBeUsed--;
}if (nums.length > 0) {for (int i = 0; i < nums.length; i++) {
no+=nums[i];
}
}returnno;
}/*** 交换方法
*@parami 交换位置
*@paramj 互换的位置
*@paramnums 数组*/
private static void swap(int i, int j, int[] nums) {int temp =nums[i];
nums[i]=nums[j];
nums[j]=temp;
}/*** 获取8位数
*@return
*/
public staticString generateNumber2() {
String no= "";int num[] = new int[8];int c = 0;for (int i = 0; i < 8; i++) {
num[i]= new Random().nextInt(10);
c=num[i];for (int j = 0; j < i; j++) {if (num[j] ==c) {
i--;break;
}
}
}if (num.length > 0) {for (int i = 0; i < num.length; i++) {
no+=num[i];
}
}returnno;
}
}
测试输出就会发现每次生成的随机数都不一样