Java Random seed伪随机

在指定区间内获得随机数,随机的几种方式。

方法:

	/**
	 * 在指定区间[min,max)通过种子seed设置伪随机数
	 * @param min 最小值
	 * @param max 最大值
	 * @param seed 种子
	 */
	public static int random(int min, int max, long seed) {
		Random random = new Random(seed);
		final int size = 100;
		for (int i = 0; i < size ; i++) {
			int randomNum = random.nextInt(max);
			if (randomNum > min && randomNum < max) {
				return randomNum;
			}
		}
		// 确保生成随机数。
		return random(min, max, send + size);
	}

测试:

	public static void main(String[] args) {
		for (int j = 0; j < 3; j++) {
			System.out.println(String.format("第%d遍", j));
			for (int i = 0; i < 10; i++) {
				System.out.print(random(0,100, i) + "		");
			}
			System.out.println();
		}
	}

结果:
在这里插入图片描述

Apache.commons.lang3包中也有RandomUtils生成随机数, 一般的需求足够了。但是没法加seed,无法生成可控的随机数!

	<-- org.apache.commons.lang3 -->
      <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.8.1</version>
        </dependency>

方法:

    public static int random(int min, int max)  {
		return RandomUtils.nextInt(min, max);
	}

测试:

	public static void main(String[] args) {
		for (int j = 0; j < 3; j++) {
			System.out.println(String.format("第%d遍", j));
			for (int i = 0; i < 10; i++) {
				System.out.print(RandomUtils.nextInt(0,100) + "		");
			}
			System.out.println();
		}
	}

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值