Java SE学问Random

这篇文章是在网络上的文章内容摘要学习以及自己的小练习,感谢您的无私分享。

昨天在项目中想使用几个随机数。结果使用Random时竟然出现随机数同样的情况。忍不住查了些资料。

现将代码总结例如以下:

package SE;

import java.util.Random;

public class RandomUnit {

	/**
	 *
	 * <p>
	 * 无种子參数的构造方法使用一个和当前系统时间相应的相对时间有关的数字作为种子数。
	 * 然后使用这个种子数构造Random对象。
	 * </p>
	 * @author zhangjunshuai
	 * @date 2014-10-28 上午11:07:53
	 */
	static void randomNull(){
		for (int i = 0; i < 100; i++) {
			Random r = new Random();
			System.out.println("无种子參数:"+r.nextInt());
		}
	}
	/**
	 * <p>
	 * 在种子參数是同一个数字的时候。出现仅仅有一个随机数的情况
	 * </p>
	 * @author zhangjunshuai
	 * @date 2014-10-28 上午11:18:17
	 */
	static void randomHave(){
		for (int i = 0; i < 100; i++) {
			Random r = new Random(37);
			System.out.println("有种子參数:"+r.nextInt());
		}
	}

	/**
	 *
	 * <p>
	 * 注意random调用方法的顺序变化之后,产生的随机值才会变
	 * </p>
	 * @author zhangjunshuai
	 * @date 2014-10-27 下午6:54:17
	 */
	static void random(){
		Random r = new Random(47);
		System.out.println(r.nextInt());
		System.out.println(r.nextBoolean());
		Random w= new Random(47);
		System.out.println(w.nextInt());
		System.out.println(w.nextBoolean());
		Random h= new Random(47);
		System.out.println(h.nextFloat());
		System.out.println(h.nextInt());

		System.out.println(h.nextBoolean());
	}
	/**
	 *
	 * <p>
	 * 利用setSeed方法实现伪随机数
	 * </p>
	 * @author zhangjunshuai
	 * @date 2014-10-28 上午11:29:02
	 */
	static void setSeed(){
		Random r = new Random();
		for (int i = 0; i < 100; i++) {

			System.out.println("有种子參数:"+r.nextInt(270));
			r.setSeed((long)r.nextLong());
		}
	}
	/**
	 * <p>
	 * </p>
	 * @author zhangjunshuai
	 * @date 2014-10-28 上午10:56:48
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		//randomNull();
		//randomHave();
		//random();
		setSeed();

	}

}

參考:

http://lehsyh.iteye.com/blog/646658

版权声明:本文博主原创文章,博客,未经同意不得转载。

时间: 2024-12-26 14:27:34

Java SE学问Random的相关文章

Java SE —— 专栏总集篇

前言: Java 语言,是相对于其他语言而言,门槛低,而且功能还强大的一门编程语言,本人十分看好这一门语言,但是,它也是有深度的,看过本人的<数据结构与算法>专栏的同学们有福了,因为本人在那个专栏中的编程以及讲解方法,都是向Java语言编程规范靠拢的,所以相对而言,学习过的同学,在观看本人博文学习的过程中会相对比较轻松些.当然,没有学习过的同学也不必心急,因为本人在本专栏的讲解过程中讲解也十分细腻. 若是同学们直接学习Java,并且在之前没有接触过编程语言,本人也给出了相应的"补救&

安卓里面JSON处理和JAVA SE里面的JSON包

今天编译安卓项目遇到这个问题 com.android.dex.DexException: Multiple dex files define的解决办法 大致意思就是引用了 相同的包 在JAVA SE里面我使用的是 import net.sf.json.JSONObject; 这个就不多说了,网上大家都可以下载到,但是当吧这个jar放到安卓里就出现引用相同的包的问题了 看了下android.jar 里面有个org.json 一样可以处理 问题解决

java中的Random()函数

java中存在两种Random函数: 一.java.lang.Math.Random; 调用这个Math.Random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是[0.0,1.0)的左闭右开区间,返回值是一个伪随机选择的数,在该范围内(近似)均匀分布. 在使用Math.Random()的时候需要注意的地方时该函数是返回double类型的值,所以在要赋值给其他类型的变量的时候注意需要进行塑形转换. 例子: 1 for(i=0;i<10;i++) 2 { 3

java书籍推荐:《Java SE 6 技術手册》

Java SE 6 技術手册 或  Java SE 6 技術手册 Java SE 6 技術手册 為什麼選擇用 Markdown?仅仅是單純把文件又一次排版太無聊了,不如趁這個機會學些新東西.所以我就藉這個機會來學著用 Markdown,並看看它有什麼好處與壞處 ... 假设你须要 PDF 與 epub 格式.而又有點懶自己轉換,那麼能够考慮在 Google Play 或 Pubu 上向便當價致敬,假设你须要 mobi 格式,能够使用 calibre 把 epub 轉為 mobi ... :) 我

【Java SE】如何用Java实现直接选择排序

摘要:直接选择排序属于选择排序的一种,但是它的排序算法比冒泡排序的速度要快一些,由于它的算法比较简单,所以也比较适合初学者学习掌握. 适宜人群:有一定Java SE基础,明白Java的数据类型,数组的定义.初始化以及常用数组的方法,还有Java的循环操作. 前期准备:最好有一个开发工具比如说:eclipse或者myeclipse都可以,当然你使用DOS系统进行编译运行都可以,只不过改bug会麻烦一点. 排序原理:直接选择排序的原理是将指定排序位置与其他数组元分别对比,如果满足条件就交换位置的值,

Java SE 基础:标识(zh&#236;)符

Java SE 基础:标识(zhì)符 一.标识符定义 标识符,就是给类.接口.方法.变量等起名字时的字符序列 二.组成规则与注意事项 1.组成规则 英文大小写字母 数组 $ 和 _ 2.注意事项 不能以数组开头 不能是 Java 关键字(见关键字表:) 书写时区分大小写(大写和小写表示两个不同的标识符,如 public 和 Public 是不同的) 三.Java 中标识符的命名规则要做到:见名知意 包(package):包其实就是文件夹,用于区分项目中文件的结构,包名应当使用小写 单级包:to

Java SE Development Kit 5/6/7下载地址

Java SE Development Kit 7 http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html Java SE Development Kit 6 http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html

JAVA SE、JAVA EE、JAVA ME的联系与区别

Java 平台有三个版本,这使软件开发人员.服务提供商和设备生产商可以针对特定的市场进行开发: * Java SE(Java Platform,Standard Edition).Java SE 以前称为 J2SE. 它允许开发和部署在桌面.服务器.嵌入式环境和实时环境中使用的 Java 应用程序. Java SE 包含了支持 Java Web 服务开发的类,并为 Java Platform,Enterprise Edition(Java EE)提供基础. * Java EE(Java Plat

Java SE (5)之 线程使用

JAVA有两种线程的方法Thread 和Runnable 能够使用,这是为了弥补不能多继承的缺陷 首先是 Thread package com.sunzhiyan03; /* * 演示线程 * */ public class Demo1 { public Demo1() { // TODO Auto-generated constructor stub } public static void main(String[] args) { // TODO Auto-generated method