从两个随机数的和中获取所需输入的Java程序
我想做一个小程序,通过添加两个随机数来获得想要的结果。例如,我们想要的数字是30,那么随机的1号和2号应该是15-15、13-17、10-20或其他任何数字。我做了这个程序,它显示随机数的和,但不是期望的和从两个随机数的和中获取所需输入的Java程序,java,random,Java,Random,我想做一个小程序,通过添加两个随机数来获得想要的结果。例如,我们想要的数字是30,那么随机的1号和2号应该是15-15、13-17、10-20或其他任何数字。我做了这个程序,它显示随机数的和,但不是期望的和 import java.util.*; import java.util.Random; public class Problem { public static void main(String[] args) { Scanner sc = new Scanner
import java.util.*;
import java.util.Random;
public class Problem {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Random rand = new Random();
Random random = new Random();
int r = rand.nextInt(100) + 1;
int r1 = random.nextInt(100) + 1;
int sum = r + r1;
System.out.println(r + " + " + r1 + " sum is: " + sum);
}
}
由我来解决
import java.util.*;
import java.util.Random;
public class Problem {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
Random rand= new Random();
Random random= new Random();
int r= rand.nextInt(100)+1;
int n=0;
int sum= sc.nextInt();
n= sum-r;
sum= r+n;
System.out.println(r +" + "+n+ " sum is: " + sum);
}
}
你的问题其实不在你的代码中;但你的逻辑/数学是有缺陷的:你看,当你得到三个数字时,比如 m+n=o m是一个随机数,o是固定的;那么n=o-m
因此:您只需要一个随机数,而不是两个 只需选择具有总和上限的范围内的第一个数字,然后保留第二个数字作为总和与第一个数字的差值:
Random rn = new Random();
int max = 30;
int first = rn.nextInt(max) + 1;
int second = max - first;
现在,第一个和第二个的总和保证达到最大值。我假设,对于给定的最大和,最小的数字是1。我想你在寻找这个:
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
Random rand = new Random();
int r1 = rand.nextInt(n) + 1; // only one random number is needed
int r2 = n-r1; // other will be subtract of n and r1
System.out.println(r1 + " + " + r2 + " sum is: " + n);
给定所需数字,生成一个随机数,然后从所需数字中减去该随机数,得到另一个随机数。代码-
import java.util.*;
import java.util.Random;
import java.util.Scanner;
public class Problem {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int desiredNumber = sc.nextInt();
Random random = new Random();
int r1 = desiredNumber>0?(random.nextInt(desiredNumber)+1):0;
int r2 = desiredNumber - r1;
System.out.println("The desired number is : " + desiredNumber);
System.out.println("The two random numbers are : " + r1 + " and " + r2);
}
}
你的问题其实不在你的代码中;但你的逻辑/数学是有缺陷的:你看,当你得到三个数字时,比如 m+n=o m是一个随机数,o是固定的;那么n=o-m
因此:您只需要一个随机数,而不是两个 这意味着第一个数字是随机的。其他的将是随机的1?你应该有n=o-m或者m=o-n。是的,在这段时间内我已经计算过了。但还是:谢谢!