您的位置:首页 > 编程语言 > Java开发

java如何产生随机数

2015-12-06 19:13 489 查看
一、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的一个随机数

package suijishu;

import java.util.Random;

public class suijishu{
public static int suiji =new Random().nextInt(10);
public static void main(String[] args){
System.out.print(suiji);
}
}


6.测试输出,就可以看到生成的随机数



二、java如何实现生成不重复的随机数

package suijishu;

import java.util.Random;

public class suijishu{
public static int suiji =new Random().nextInt(10);
public static void main(String[] args){
System.out.print(suiji);

}

//设定几位数

private static final int LENGTH = 8;

/**

  * 这是典型的随机洗牌算法。

  * 流程是从备选数组中选择一个放入目标数组中,将选取的数组从备选数组移除(放至最后,并缩小选择区域)

  * 算法时间复杂度O(n)

  * @return 随机8为不重复数组

  */

public static String generateNumber() {

String no = "";

// 初始化备选数组

int[] defaultNums = new int[10];

for (int i = 0; i < defaultNums.length; i++) {

defaultNums[i] = i;

}

Random random = new Random();

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];

}

}

return no;

}

/**

* 交换方法

* @param i 交换位置

* @param j 互换的位置

* @param nums 数组

*/

private static void swap(int i, int j, int[] nums) {

int temp = nums[i];

nums[i] = nums[j];

nums[j] = temp;

}

/**

* 获取8位数

* @return

*/

public static String 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];

}

}

return no;

}
}


测试输出就会发现每次生成的随机数都不一样
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: