生成随机数并找到最小/最大值作为Java类变量

时间:2013-01-27 13:32:34

标签: java class variables random

我是一个完整的Java新手。我正在研究类和方法。我正在尝试创建一个类变量来存储随机数生成器的最小值。

它必须是变量,而不是方法中的变量。有任何想法吗?我想使用Math.random()生成器。类似的东西:

int ranNum = Math.random();

这会给我一个随机数,但我怎样才能找到最小值(或最大值)?

5 个答案:

答案 0 :(得分:0)

我假设你要求这个:

int min = 50;
int max = 100;
int ranNum = min+(int)(Math.random()*((max-min) + 1));

这将生成从min到max(包括)的随机数

答案 1 :(得分:0)

使用此:

import java.util.Random;
Random rand = new Random();
int i = rand.nextInt( 7 - 0 + 1 ); // where 7 is max and 0 is min

答案 2 :(得分:0)

以下将为您提供0-100

的随机数

也会给你最小的:

 import java.util.Random;

   public class AcademicController 
  {
   private static int i,a=0,small=500;


  public static void main(String[] args)
  { 
    Random ran=new Random();
    for(i=0;i<100;i++)//enter the range here
    {

    a=ran.nextInt(100);//gives you any number from 0-99
    System.out.println(a);

    if(a<small)//if given number is < than previous, make this number small
    small=a;
    }

    System.out.println("small is :"+small);
    }
 }

答案 3 :(得分:0)

您可以根据它制作自己的随机方法。

/**
 * Returns a random real number between 0 and x. The number is always
 * smaller than x.
 * 
 * @param x The maximum range
 * @return A random real number
 */
public static int random(int x){
    return (int) (Math.floor(Math.random() * x));
}

/**
 * Returns a random real number between x1 (inclusive) and x2 (exclusive).
 * 
 * @param x1 The inclusive
 * @param x2 The exclusive
 * @return A random real number between x1 and x2
 */
public static int random_range(int x1, int x2){
    return (int) (Math.floor(x1 + (Math.random() * (x2 - x1))));
}

希望这些简单的方法可以帮助你。

答案 4 :(得分:0)

如果你只是想为你的班级保持状态,可能就是这样:

public class MyRandom {

    private static final MyRandom INSTANCE = new MyRandom();

    public static MyRandom getInstance(){
        return INSTANCE;
    }

    private int low;

    private int high;

    private Random r = new Random();

    private MyRandom(){

    }

    public int getHigh() {
        return high;
    }

    public int getLow() {
        return low;
    }

    public synchronized int getRandom(){
        int next = r.nextInt();
        if (next < low){
            low = next;
        }
        if (next > high){
            high = next;
        }
        return next;
    }


}

请注意,此类是单例,应在应用程序范围内使用以生成随机值。