java如何产生随机数
一、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;
}
}
测试输出就会发现每次生成的随机数都不一样
java如何产生随机数的更多相关文章
- 为什么说Java中的随机数都是伪随机数?
什么是伪随机数? 1.伪随机数是看似随机实质是固定的周期性序列,也就是有规则的随机. 2.只要这个随机数是由确定算法生成的,那就是伪随机,只能通过不断算法优化,使你的随机数更接近随机. (随机这 ...
- Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom
Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom 文中的 Random即:java.util.Random,ThreadLocalRandom 即: ...
- Java中产生随机数的两个方法
Java中产生随机数的两个方法 一.利用random方法来生成Java随机数. 在Java语言中生成Java随机数相对来说比较简单,因为有一个现成的方法可以使用.在Math类中,Java语言提供了一个 ...
- Java中利用随机数的猜拳游戏
Java中利用随机数的猜拳游戏,实现非常简单,重难点在于随机数的产生. 首先GameJude类是用于判断输赢的一个类: package testGame; public class GameJudge ...
- java怎么产生随机数
随机数的产生在一些代码中很常用,也是我们必须要掌握的.而java中产生随机数的方法主要有三种: 第一种:new Random() 需要借助java.util.Random类来产生一个随机数发生器,也是 ...
- Java学习之随机数的用法
•前言 随机数的产生在一些代码中很常用,也是我们必须要掌握的. 而 Java 中产生随机数的方法主要有三种: new Random() Math.random() currentTimeMillis( ...
- java Math.random()随机数的产生
Math.random()是java内置产生随机数的函数,Math.random()能够产生[0,1)的浮点数,当我们要产生特定范围的数时,可以采用如下办法: 1.Math.random()*(最大数 ...
- Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom(转)
文中的 Random即:java.util.Random,ThreadLocalRandom 即:java.util.concurrent.ThreadLocalRandomSecureRandom即 ...
- [转]Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom
详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp84 Random即:java.util.Random, ThreadL ...
随机推荐
- Java for LeetCode 171 Excel Sheet Column Number
Related to question Excel Sheet Column Title Given a column title as appear in an Excel sheet, retur ...
- Java内存分配和内存管理
首先是概念层面的几个问题: Java中运行时内存结构有哪几种? Java中为什么要设计堆栈分离? Java多线程中是如何实现数据共享的? Java反射的基础是什么? 然后是运用层面: 引用类型变量和对 ...
- jar包和war包的区别
jar包和war包的区别: jar包就是别人已经写好的一些类,然后将这些类进行打包,你可以将这些jar包引入你的项目中,然后就可以直接使用这些jar包中的类和属性了,这些jar包一般都会放在lib目录 ...
- tomcat The file is absent or does not have execute permission
[root@centos02 bin]# ./startup.sh Cannot find ./catalina.sh The file is absent or does not have exec ...
- 如何解决adb devices 端口被占用的问题zz
在win xp ,win 7 上使用adb时, 越来越多的人出现了 adb devices 命令长时间无响应.adb start-server 失败.eclipse adt初始化时卡在dbms-ini ...
- javascript二叉树基本功能实现
都是常用的功能. 删除是最复杂的.. <!DOCTYPE html> <html lang="en"> <head> <meta char ...
- linux下动态库so文件的一些认识
转自:http://mypyg.iteye.com/blog/845915 个人创作,欢迎指错. 牵扯到ELF格式,gcc编译选项待补,简单实用的说明一下,对Linux下的so文件有个实际性的认识. ...
- 我对序列化(Serializable)的理解
转自:http://blog.tianya.cn/blogger/post_show.asp?BlogID=764&PostID=3231409 序列化是把一个对象的状态写入一个字节流的过程. ...
- android 完美退出所有Activity的demo
项目地址:https://github.com/libill/myapplication 利用android的wheel和参考android完美退出程序做出来的demo,结束掉所有打开的Activit ...
- node.js打开浏览器
通过nodejs的child_process识别环境, 用不同的CLI打开默认浏览器: var child_process = require("child_process"); ...