public class SumOfTwoDice {
public static void main(String[] args) {
int SIDES = 6;
int a = 1 + (int) (Math.random() * SIDES);
int b = 1 + (int) (Math.random() * SIDES);
int sum = a + b;
System.out.println(sum);
}
}
以上代码用于找出1到6或任何给定数字之间的两个随机整数之和。
以下是我自己编写的代码,这很好。我实现两个随机整数之和的方式。 这是正确的 ???
public class TestSample {
public static void main(String[] args) {
int a = Integer.parseInt(args[0]); // 1
int b = Integer.parseInt(args[1]); // 6
double ran = Math.random();
System.out.println("Random Number" + ran);
double random;
if(a < b)
random = (b-a)*ran + a;
else
random = (a-b)*ran + b;
double sum = random + random;
System.out.println("Random Number" +(int)sum);
}
}
答案 0 :(得分:3)
强制性XKCD:
答案 1 :(得分:2)
你必须再次使用Math.random()来生成0到1之间的新随机数。应该是这样的:
public class TestSample {
public static void main(String[] args) {
int a = Integer.parseInt(args[0]); // 1
int b = Integer.parseInt(args[1]); // 6
double random1, random2;
if(a < b) {
random1 = (b-a)*Math.random() + a;
random2 = (b-a)*Math.random() + a;
}
else {
random1 = (a-b)*Math.random() + b;
random2 = (a-b)*Math.random() + b;
}
double sum = random1 + random2;
System.out.println("Random Number" +(int)sum);
}
}
答案 2 :(得分:1)
没有。您只需计算一次随机值,然后将值加倍。您想要计算两个不同的随机数。
int random1 = a + (int) ( Math.random() * (a-b) );
int random2 = a + (int) ( Math.random() * (a-b) );
int sum = random1 + random2;