测试随机数生成器

时间:2015-07-27 14:37:09

标签: java arrays sorting int

我无法在表格中打印结果的前两列,但由于我是编程新手,因此我遇到了问题并想知道问题在我的代码中的位置。我必须创建简短的陈述:

  • 无参数的静态int方法randInt(),它将返回0..9范围内的随机整数。此方法将包含对Math.random()的调用。

  • 一个名为randTest的静态void方法,它接受一个整数参数n。这应该执行以下操作:

  • 声明一个包含10个名为counts的元素的int数组。这将用于记录randInt返回每个可能值的频率。

  • 调用randInt n次,每次递增与返回值对应的计数元素的计数。

  • 以清晰的表格形式将结果打印到控制台。输出应如下所示:

enter image description here

这是我的代码:

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);
        }
    }

1 个答案:

答案 0 :(得分:2)

public static void randTest(int n){

您要考虑的问题:这里的参数是什么?提示:它不是10 ...你真的想做什么n次?

counts[i] = RandInt();

你真的想创建10个随机数并将它们存储到数组中吗?不。你想创建&#34; sampleSize&#34;数字并在正确的位置增加数组。正确的立场是什么?

counts[ correctPosition ] = counts[ correctPosition ] + 1;

如果你能找出正确的位置,那么

......会更正确。

另外,我会将main方法的输出移动到randTest(),在那里你把所有东西放在一起。