Java 随机不打印正确的最大值和最小值
我试图允许用户输入他们想要的最大值和最小值到一个随机数的新文件中。然而,当我运行我的程序时,生成的随机数总是小于我想要的最小值。例如,如果max=10,min=5,我只得到0到5之间的数字。我想知道我怎样才能得到5到10之间的数字。我的假设是,要找到max和min,函数应该是(max-min)+1,但它对我不起作用Java 随机不打印正确的最大值和最小值,java,for-loop,random,max,min,Java,For Loop,Random,Max,Min,我试图允许用户输入他们想要的最大值和最小值到一个随机数的新文件中。然而,当我运行我的程序时,生成的随机数总是小于我想要的最小值。例如,如果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 m
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();
}
}
}
import java.io.*;
导入java.util.*;
公共类chooseRandNum{
公共静态void main(字符串[]args){
Random rand=新的Random();
扫描仪键=新扫描仪(System.in);
System.out.println(“您想要多少个随机数?”);
int totalRand=key.nextInt();
System.out.println(“最小的随机数是多少?”);
int smallRand=key.nextInt();
System.out.println(“最大的随机数是多少?”);
int-largeRand=key.nextInt();
System.out.println(“您想使用什么文件名?”);
字符串fname=key.nextLine();
File outputFile=新文件(fname);
PrintStream outputStream=null;
试一试{
outputStream=新的打印流(outputFile);
}
捕获(例外e){
System.out.println(“未找到文件”+e);
系统出口(1);
}
对于(int i=0;i
rand.nextInt((largeRand - smallRand) + 1)
与
问题是您没有正确生成随机数。rand.nextInt(max-min+1)+min
应该在[min,max]中给出一个随机整数,因为rand.nextInt(int)
调用提供了一个整数[0,int]
rand.nextInt(largeRand - smallRand + 1) + smallRand