随机未打印出正确的最大值和最小值

问题描述 投票:0回答:2

我正在尝试允许用户将他们想要的最大和最小输入到一个新的随机数文件中。但是,当我运行程序时,生成的随机数始终小于我想要的最小值。例如,如果max = 10且min = 5,我只能得到0到5之间的数字。我想知道如何才能得到5到10之间的数字。我的假设是找到max和min该函数应该是(max-min)+1,但对我没有用。

import java.io.*;
import java.util.*;

public class chooseRandNum{
    public static void main(String[] args){
        Random rand = new Random();
        Scanner key = new Scanner(System.in);
        System.out.println("How many random numbers do you want? ");
        int totalRand = key.nextInt();
        System.out.println("What is the smallest random number? ");
        int smallRand = key.nextInt();
        System.out.println("What is the largest random number? ");
        int largeRand = key.nextInt();
        System.out.println("What filename do you want to use? ");
        String fname = key.nextLine();

        File outputFile = new File(fname);
        PrintStream outputStream = null;

        try{
            outputStream = new PrintStream(outputFile);
        }

        catch (Exception e){
            System.out.println("File not found " + e);
            System.exit(1);
        }


        for(int i = 0; i <= 5; i++){
            for(int j = 0; j <= totalRand; j++){
                int n = rand.nextInt((largeRand - smallRand) + 1);
                outputStream.print(n + ",");
            }
            outputStream.println();
        }   
    }
}
java for-loop random max min
2个回答
0
投票

问题是您没有正确生成随机数。 rand.nextInt(max-min+1)+min应该以[min,max]给出一个随机整数,因为rand.nextInt(int)调用提供了一个整数[0,int)Java Documentarion of java.util.Random.nextInt

© www.soinside.com 2019 - 2024. All rights reserved.