Java 奇偶数随机数发生器
我需要创建一个应用程序,生成0到99之间的25个随机整数,然后在两行上输出这些整数,一行用于奇数,另一行用于偶数。我需要用一个数组表示偶数,一个数组表示奇数。这就是我到目前为止所做的:Java 奇偶数随机数发生器,java,arrays,random,Java,Arrays,Random,我需要创建一个应用程序,生成0到99之间的25个随机整数,然后在两行上输出这些整数,一行用于奇数,另一行用于偶数。我需要用一个数组表示偶数,一个数组表示奇数。这就是我到目前为止所做的: public static void main(String[] args) { //Odd Numbers int[] oddNums = new int[25]; for (int index = 0; index < oddNums.length; index++) {
public static void main(String[] args) {
//Odd Numbers
int[] oddNums = new int[25];
for (int index = 0; index < oddNums.length; index++) {
oddNums[index] = (int) (Math.random()*99);
}
System.out.print("ODD: ");
for (int index = 0; index < oddNums.length; index++) {
System.out.print(oddNums[index] + " ");
}
//Even Numbers
int[] evenNums = new int[25];
for (int index = 0; index < evenNums.length; index++) {
evenNums[index] = (int) (Math.random()*99);
}
System.out.print("\nEVEN: ");
for (int index = 0; index < evenNums.length; index++) {
System.out.print(evenNums[index] + " ");
}
}
publicstaticvoidmain(字符串[]args){
//奇数
int[]oddNums=新int[25];
对于(int index=0;index
我已经将程序设置为打印25个随机整数,但我不知道如何让程序在一行上只打印偶数,在另一行上只打印奇数(我是java新手)
下面是我得到的一个示例输出:
单数:283654983515943964166371301729675683714
247038偶数:34 45 36 26 73 84 60 39 21 49 28 98 69 14 32 24 72 29 26 88 77 2 235847 这是错误的,因为两行上都有偶数和奇数 这是输出的外观: 奇数:2597234563911347935129
偶数:2294474184289256 一行上只有奇数,另一行上只有偶数
有人知道我需要在这里添加什么吗?您可以在[0100]中使用公式n=2*x均匀随机地生成偶数,其中x在[0,49]中均匀随机
同样,您可以生成n=2*x+1的均匀随机奇数,其中x在[0,49]中是均匀随机的。首先,您编写的随机函数将生成0到99之间的随机数。不会考虑这些数字是奇数还是偶数。
如果奇数和偶数的数量没有限制,只需使用随机生成器一次,并根据它是奇数还是偶数将其放置在正确的数组中
为此,请使用MOD运算符,即在除以2后检查余数,以查看代码中的奇数或偶数,您需要 伪代码:
if (nextNumber is odd) then
put nextNumber at end of ODD array
else
put nextNumber at end of EVEN array
endif
您还应该看看
util.Random.nextInt()
,这是生成随机整数的首选方法。对程序稍加修改就会得到所需的结果
public static void main(String[] args) {
//Odd Numbers
int[] randomNumbers = new int[25];
int[] evenNumbers = new int[25];
int[] oddNumbers = new int[25];
int k = 0, l = 0;
for (int index = 0; index < randomNumbers.length; index++) {
randomNumbers[index] = (int) (Math.random() * 99);
}
for (int i = 0; i < 25; i++) {
if (randomNumbers[i] % 2 == 0) {
evenNumbers[k] = randomNumbers[i];
k++;
} else {
oddNumbers[l] = randomNumbers[i];
l++;
}
}
}
publicstaticvoidmain(字符串[]args){
//奇数
int[]随机数=新的int[25];
整数[]偶数=新整数[25];
int[]oddNumbers=新int[25];
int k=0,l=0;
for(int index=0;index
您只需生成25号即可。生成这些整数后,可以在它们所属的数组中找到它们
int num;
int oddIndex = -1;
int evenIndex = -1;
for (index = 0; index < 25 ; index++){
num = (int) (Math.random()*99);
if (num % 2 == 1){
oddIndex++;
oddNum[oddIndex] = num;
}
else{
evenIndex++;
evenNum[evenIndex] = num;
}
}
int-num;
int-oddIndex=-1;
整数指数=-1;
对于(索引=0;索引<25;索引++){
num=(int)(Math.random()*99);
如果(数量%2==1){
oddIndex++;
oddNum[oddIndex]=num;
}
否则{
指数++;
evenNum[evenIndex]=num;
}
}
在本例中,您不确定每个数组的大小。因此,我建议您使用ArrayList而不是array。如果使用ArrayList,则不需要处理oddIndex和evenIndex 这里有一个使用Java 8流的解决方案:
public class NumberGenerator {
public static void main(String[] args) {
Random random = new Random();
int[] ints = random.ints(25, 0, 99).sorted().toArray();
int[] even = IntStream.of(ints).filter(x -> x % 2 == 0).toArray();
int[] odd = IntStream.of(ints).filter(x -> x % 2 == 1).toArray();
System.out.println(Arrays.toString(even));
System.out.println(Arrays.toString(odd));
}
}
首先,创建一个包含所有随机整数的数组。创建了25个随机整数,它们都应该在0到99之间
偶数和赔率被过滤成两个独立的数组
[0, 4, 6, 16, 18, 22, 40, 42, 58, 64, 82, 84, 98]
[7, 27, 29, 31, 35, 55, 73, 75, 75, 79, 83, 91]
我到底需要在哪里添加这些?另外,我只允许使用Math.random()如果你自己做作业,你会学到更多。我只想给出一些提示,否则我每小时收取250英镑的编码费。如果你必须使用
Math.random()
那么就使用它,但是学习util.random
会很有用。你需要学习图书馆。这就是Java的技巧所在。好的,无论如何谢谢你的帮助。在不久的将来,我会记得学习更多关于util.Random
的内容。对不起,我不完全理解这一点。为什么要创建一个新变量int k=0和int l=0?它们用于将元素正确地插入偶数和奇数数组中。例如:-evenNumber[0],evenNumber[1]。奇数也是如此。