Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 正在尝试创建机会计算器_Java_Arrays_Loops_Random_Int - Fatal编程技术网

Java 正在尝试创建机会计算器

Java 正在尝试创建机会计算器,java,arrays,loops,random,int,Java,Arrays,Loops,Random,Int,我对Java比较陌生,我想尝试编写一个代码,随机生成2个数字,每次生成2个数字,并跟踪这2个数字相同的次数。然后在X次尝试之后,它会计算出它发生的几率 #随机数除以时间,它们是相同的 import java.util.Random; public class RandomTest { public static void main(String[] args) { int[] anArray; anArray = new int[100000]; Ran

我对Java比较陌生,我想尝试编写一个代码,随机生成2个数字,每次生成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;
公开课随机测试{
公共静态void main(字符串[]args){
国际[]无秩序;
anArray=新整数[100000];
Random randomGenerator=新的Random();
for(int-loop=1;loop<1000;loop++){
int random1=randomGenerator.nextInt(100);
int random2=randomGenerator.nextInt(100);
if(random1==random2){
整数=数+1;
countArray[number]=循环;
}
如果(循环==1000){
System.out.println(“take”+循环+“randoms”);
打破
}
else{}
}
}
}

主要问题似乎是如何填充数组,以及如何在循环中输入/输出整数。

您可能想对这一行做些什么:

    int number = number + 1;
要单步遍历数组,请将number设置为零

int number = 0;
在进入循环之前,使用

number = number + 1;

您可能想对这一行做些什么:

    int number = number + 1;
要单步遍历数组,请将number设置为零

int number = 0;
在进入循环之前,使用

number = number + 1;

以下是我的代码版本:

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());
         }
    }
}
上述内容将创建一个名为number的新int,并将其值设为null+1,这是因为上述内容可以拆分为两行:

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;
}
int number=0;

对于(int loop=1;loop,以下是我的代码版本:

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());
         }
    }
}
上述内容将创建一个名为number的新int,并将其值设为null+1,这是因为上述内容可以拆分为两行:

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;
}
int number=0;

对于(int loop=1;loop,如果你更合理地缩进代码,你会发现遵循自己的代码要容易得多。为什么你有一个空的
if
块?你预计
loop
什么时候在循环中会有1000个?你需要这个数组做什么?它是用来查看两个数字组的匹配频率('54 22'与'54 22'匹配),或者两个数字匹配的频率('22')?实际上循环永远不会是1000。您可以使用
System.out.println(“take”+loop+“randoms”)
for
循环之后,它将为您保存一个空的
else
if>中断;
东西sarray将在发生“匹配”时存储循环编号,以便在测试结束后可以计算平均值。我这方面的意图是正确的,将其与发布混淆。您会发现遵循自己的代码要容易得多如果你更明智地缩进它。为什么你有一个空的
if
块?你期望
loop
什么时候在循环中有1000个?你需要数组做什么?它是用来查看两个数字组匹配的频率(“54 22”与“54 22”匹配),还是两个数字匹配的频率(“22 22”)实际上,循环永远不会是1000。你可以使用
System.out.println(“take”+loop+“randoms”)
for
循环之后,它将为您保存一个空的
else
if>中断;
东西sarray将在“匹配”发生时存储循环编号,以便在测试结束后计算平均值。这在我这方面是正确的,将其与发布相混淆。非常感谢,这太棒了。将通过呃,阅读你提到的所有内容。如果你喜欢我的答案,请接受它作为这个问题的正式答案。非常感谢,这太棒了。我们将仔细阅读你提到的所有内容。如果你喜欢我的答案,请接受它作为这个问题的正式答案。这个错误对于任何人来说都是显而易见的ho曾经做过一些(Java)编程,如果你能详细说明这一行应该做些什么,对初学者可能会更有帮助。优越感是不酷的。我不是想表现优越感,我只是想不占上风。我认为这是一个打字错误,不是一个误解。而这个错误对于任何做过(Java)编程的人来说都是显而易见的编程时,如果你能详细说明该如何处理这一行,对初学者可能会更有帮助。优越感是不酷的。我不是想表现优越感,我是想不高人一等。我认为这是打字错误,不是误解。