java产生从负数到正数范围的随机数方法

2025-09-27 18:00:54

1、第一步 熟悉原理

Java中的random函数产生的随机数都是自然数,因此要产生负数自然需要我们去构造。

我的想法是这样的:

1)首先产生随机数0-10;

2)判断数字:1、3、5、7、9判别为产生负数,其余产生正数。(做这一步主要是为了随机产生正数或者负数,当然这个作为判断是要产生负数还是正数的随机数你可以设多大都行,只不过太大的话判断语句会很长)。

3)负数部分产生的数字首先存入字符串,在字符串前添加“-”的方法形成负数,然后调用 Integer.parseInt()方法转为实数。正数就正常产生就行了。

4)循环调用就能产生很多数字了。

2、第二步 实现代码

//产生随机数

int RD(){

     Random random = new Random();

     int n = random.nextInt(10);

      if(n==1||n==3||n==5||n==7||n==9){

          //如果是13579进入负数生产机器

          String str = "-"+random.nextInt(Math.abs(number));//加个负号

          int a = Integer.parseInt(str);//把字符串str封装成实数a

          return a;

        }else{

                //否则产生正数,也就是说02468产生正数

                int a = random.nextInt(Math.abs(number));

                return a;

               }

}

3、第三步 关于random函数

random(10),产生的随机数在区间[0,10),也就是从0-9.

4、第四步 完整代码 

至于调用方法嘛:

写个test测试下;(这个方法不好代码看起来很乱,你也可以实例化,然后另写一个test调用)

复制代码注意包名需要改成代码所在的包名,我的包名是求平均数

package 求平均数;

import java.util.Arrays;

import java.util.Random;

public class test1 {

   static int[] a = new int[10];//设置十个吧

public static void main(String[] args){//主函数

CunChu();

Print();         

      }

//存数组

static void CunChu(){

for(int i = 0;i<a.length;i++){

            a[i] = RD();//存进a数组

          }

}

//打印出数组来看看

static void Print(){

   System.out.println(Arrays.toString(a));

}

//随机数产生机器

static int min = -10;

static int max = 10;

static int RD(){

    Random random = new Random();

    int n = random.nextInt(10);

    if(Math.abs(min)>Math.abs(max)){//这里去了最大的绝对值最为正负数的范围,需要负数部分直产生负数的话可以分开做

     if(n==1||n==3||n==5||n==7||n==9){

         //如果是13579进入负数生产机器

         String str = "-"+random.nextInt(Math.abs(min));//加个负号

         int a = Integer.parseInt(str);//把字符串str封装成实数a

         return a;

       }else{

               //否则产生正数,也就是说02468产生正数

               int a = random.nextInt(Math.abs(min));

               return a;

              }

    }else{

    if(n==1||n==3||n==5||n==7||n==9){

         //如果是13579进入负数生产机器

         String str = "-"+random.nextInt(Math.abs(min));//加个负号

         int a = Integer.parseInt(str);//把字符串str封装成实数a

         return a;

       }else{

               //否则产生正数,也就是说02468产生正数

               int a = random.nextInt(Math.abs(min));

               return a;

              }

    }

}

}

5、第五步 运行结果

完成啦,代码复制就可以用啦,亲测的呢!

1、喜欢点赞啦。

2、有更好的办法觉得这个方法烂的不要喷得太伤,给我留点自尊心。

3、喜欢百度一下“秋枫雁飞”。

java产生从负数到正数范围的随机数方法

java产生从负数到正数范围的随机数方法

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢