笔记一:简单学习Random

简介

写公司动态业务时,公司大佬没时间,让自己一个实习生先简单实现推荐动态,当自己根据协同过滤获取到动态相似度列表后,随机提取相似度列表中的数据例如每页10行。这时因为相似度一般都是浮点型0~1之间,而且相似度要取相似度较高的值,例如:0.9988… 、0.9998…,越接近1说明相似度越高,越接近0相似度越低,话痨扯远了。

实例

需求:随机获取大于0.9884603532054125的随机数(Double)

坑:可能是基础差,我最开始是这样的(永远都是一个数)

 private Random random = new Random(0.9884603532054125);
 double aDouble = random.nextDouble();
 System.out.println(aDouble);

在这里插入图片描述
最后达不到我的需求,换了一下

Double aDouble = Math.random()*(1-0.9884603532054125)+0.9884603532054125;

封装:

/**
     * 根据因子生成数
     * @param max 最大值
     * @param min 最小值
     * @return
     */
    private static Double makeRandom(double max, double min) {
        Double aDouble = (Math.random()*(max-min))+min;
        return aDouble;
    }

解析 :
实际上 Math.random() 和 Random.nextDouble()概念都是一样的,随机生成0~1浮点型的数,例如,最大值是1,最小值是0.9,取随机数,带公式,
(随机数*(1-0.9))+0.9,如果 随机数等于0.9,就是(0.9*0.1)+0.9,
0.09+0.9=0.99,就这样。

 public static double random() {
        return RandomNumberGeneratorHolder.randomNumberGenerator.nextDouble();
    }

在这里插入图片描述

Random简单用法

Random简单用法就不多说了,大家都懂了!!!
例如:

Random random = new Random();
//获取100以下的数
 System.out.println(random.nextInt(100));
 //单精浮点数
 System.out.println(random.nextFloat());

总结

心灵鸡汤:真正改变命运的,并不是我们的机遇,而是我们的态度。
喜欢的老表欢迎自己服务器小水管搭的一个博客(轮子)地址:http://121.5.147.69/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值