以下是我输入的脚本。
import java.util.Random;
public class RandomPPHOnG2
{
public static int uniform(int N)
{
return (int) (Math.random() * N);
}
public static void main(String[] args)
{
int M = Integer.parseInt(args[0]);
System.out.println(uniform(M));
}
}
但是,当我以java RandomPPHOnG2 100
运行此程序时,我得到100.这不是我想要的数字。
我想从0到100得到一个随机数...特别是,我如何调整System.out.println(uniform(M));
来打印0到M之间的数字?...
答案 0 :(得分:2)
不要重新发明轮子。 Java具有Random
类,该类已经使用nextInt
方法提供此功能。
class Main
{
private final static Random r = new Random();
public static int uniform(int min, int max)
{
// +1 assumes inclusive range, [min,max]
return min + r.nextInt(max-min+1);
}
}
答案 1 :(得分:0)
你编写的程序没有任何问题。
当我使用100
编译并运行它(使用Eclipse和Java 8)作为命令行参数时,每次都会得到一个不同的数字。
该计划中唯一的缺点是文体:
import java.util.Random
是多余的,因为您不能使用该类。args
的大小,因此您可能会遇到意外的异常。M
和N
应为m
和n
。