随机数生成+直接插入排序【java实现】

本文介绍了如何在Java中生成[100, 150)的随机数,通过Math.random()和简单的数学计算实现。同时,详细讲解了直接插入排序算法的编写过程,提供完整的源代码供参考。" 123372665,11960338,SpringBoot迁移SSM项目中的常见问题与解决方案,"['Spring', 'Java', 'IntelliJ IDEA', '迁移', '配置', '依赖管理']
摘要由CSDN通过智能技术生成

一、生成随机数组

  1. java.util.Random
    public int[] randomByRandom(int randomLength) {
   
        int[] insertRandomList = new int[randomLength];
        Random r = new Random(); // 若给定seed种子值,则生成的随机数恒为一样。是伪随机方法。
        for (int i  = 0; i < randomLength; i++) {
   
            insertRandomList[i] = r.nextInt();
            System.out.println(insertRandomList[i]);
        }
        return insertRandomList;
    }
  1. Math
    Math的静态方法random()返回一个 [0, 1)的随机double类型随机数
    若要求[100, 150)的随机数,就需要Math.random()*(最大值 - 最小值)+最小值
    也就是乘以50再加上100再转换为int类型。
    为什么是 Math.random()*(最大值 - 最小值)+最小值呢,其实就是一道中学的数学题:

已知 x∈[0, 1) y是x的正比例函数 求y的表达式 很容易求得y=50x+100

但是有的博主都写的是 Math.random()*(最大值-最小值+1)+最小值呢?
我是这么理解的,因为Math.random()*(最大值 - 最小值)+最小值这里的随机数是不会包含最大值的,右边的是圆括号")" 不包含的意思。
而x∈[0, 1) 这就导致了无穷大乘以x和无穷大+1再乘以x都只相差1
所以很多博主就把x的斜率那里加了个1, 后面取整的时候就可以取到最大值了。这样他们的范围y就是[最小, 最大] 而我的是[最小, 最大)
其实这里把我的公式里的截距加个1也是一样的效果。

    public int[] randomByMath(int randomLength) {
   
        int[] insertRandomList = new int[randomLength];
        for (int i  = 0; i < randomLength; i++) {
   
            double randomBase = Math.random()
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值