gpt4 book ai didi

java - 尝试创建机会计算器

转载 作者:行者123 更新时间:2023-11-29 03:33:42 24 4
gpt4 key购买 nike

我是 Java 的新手,想尝试编写一个代码,在一定次数内随机生成 2 个数字,并跟踪这 2 个数字相同的次数。然后在 X 次尝试后,它会计算它发生的可能性。

随机数除以它们相同的次数

import java.util.Random;

public class RandomTest {
public static void main(String[] args) {
int[] anArray;
anArray = new int[100000];
Random randomGenerator = new Random();
for (int loop = 1; loop < 1000; loop++) {
int random1 = randomGenerator.nextInt(100);
int random2 = randomGenerator.nextInt(100);
if (random1 == random2) {
int number = number + 1;
countArray[number] = loop;
}
if (loop == 1000) {
System.out.println("Took " + loop + " randoms.");
break;
}
else {}
}
}
}

主要问题似乎是让数组填充并让整数进入/退出循环。

最佳答案

这是我的代码版本:

import java.util.Random;
import java.util.ArrayList;

public class RandomTest {
public static void main(String[] args) {
ArrayList<Integer> duplicates = new ArrayList<Integer>();
int random1 = 0, random2 = 0;
Random randomGenerator = new Random();
for (int loop = 1; loop <= 1000; loop++) {
random1 = randomGenerator.nextInt(100);
random2 = randomGenerator.nextInt(100);
if (random1 == random2) {
duplicates.add(new Integer(random1));
}
}

for (Integer i : duplicates) {
System.out.println("Duplicate: "+i.toString());
}
}
}

您的解决方案包含许多问题:

int number = number + 1;

上面将创建一个名为 number 的新 int 并赋予它值 null + 1,这是因为上面可以拆分为 2 行:

int num;
num = num + 1;

第一行将为名为 num 的变量保留内存空间。第二行将尝试将 (num + 1) 的值放入 num 中。当我们调用 num 并且它尚未初始化时 - 这将给我们一个 java.lang.Error(至少这是我得到的)。

如您所见,将数字放在 for 循环之外并像这样初始化它:

int number = 0;
for (int loop = 1; loop <= 1000; loop++) {
number = number + 1;
}

将数字的值递增 1, 999 次。

这让我想到了下一点。 for 循环永远不会使 loop = 1000,因为条件会在条件为真之前停止循环,因此当 for 循环完成时,loop 将等于 999。如果您希望循环在 loop = 1000 上完成,您应该使用 loop <= 1000 。此外,if 条件不是必需的,因为当循环完成时,它会继续执行其下面的其余代码。

我的解决方案中根本没有使用 number ,这是因为我使用了 ArrayList ,它本质上是一个更高级的数组版本,可以动态增长并加载其他很酷的东西。不幸的是 ArrayLists 需要包含对象,所以我将每个 int 包装在一个 Integer 对象中,这很好。最后,我使用 for 循环遍历重复项列表,并打印出每个结果。

希望这对您有所帮助,如果您有任何问题,请随时在下方发表评论。

关于java - 尝试创建机会计算器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16609252/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com