我在表中打印结果的前两列时遇到了麻烦,但是由于我是编程新手,所以遇到了问题,想知道问题在代码中的什么位置。我必须创建的简短状态:
无参数的静态int方法randInt()
,它将返回一个范围为0..9
的随机整数。此方法将包括对Math.random()
的调用。
名为randTest
的静态void方法,它使用一个整数参数n。这应该执行以下操作:
声明一个名为counts的10个元素的int数组。这将用于记录randInt
返回每个可能值的频率。
调用randInt n次,每次递增与返回值相对应的count元素的count。
以清晰的表格形式将结果打印到控制台。输出应如下所示:
这是我的代码:
import java.util.Arrays;
public class RandNumGenerator {
public static int RandInt(){
double n = Math.random()*10;
return (int) n;
}
public static void randTest(int n){
int [] counts = new int [10];
for(int i=0;i<n;i++){
counts[i] = RandInt();
System.out.println(counts[i]);
}
}
public static void main(String[] args) {
int sampleSize = 1000;
System.out.println ("Sample Size: " + sampleSize);
String[] intArray = new String[] {"Value","Count","Expected","Abs Diff","Percent Diff"};
System.out.println(Arrays.toString(intArray));
randTest(10);
}
}
最佳答案
public static void randTest(int n){
您需要考虑的问题:这里的参数是什么?提示:不是10 ...您实际上想做n
次吗?counts[i] = RandInt();
您真的要创建10个随机数并将其存储到数组中吗?不。您要创建“ sampleSize”数字并在正确位置增加数组。正确的位置是什么?counts[ correctPosition ] = counts[ correctPosition ] + 1;
如果您能找出正确的位置,那将是更正确的。
另外,我会将输出从main方法移到randTest(),在此将所有内容都放在一起。