java 生成随机数字_java如何产生随机数

一、java如何产生随机数?

1.打开eclipse

2.新建java项目,例如取名为“suijishu”点击完成

3.新建一个类进行测试

4.首先要在头部插入一个包

输入import java.util.Random;

5417c9d6f9dad092b19a0cc3d0ef034e.png

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.测试输出,就可以看到生成的随机数

010c28337780defcbd7b41cebb2c5ad8.png

二、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;

}

}

测试输出就会发现每次生成的随机数都不一样

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值