查找随机生成的10个数组的模式

时间:2012-03-16 21:00:29

标签: java arrays

我正在尝试制作这个节目

public class Statistics {

    public static void main(String[] args) {
        final int SIZE = 10;
        int sum =0;

        int[] numArray= new int [SIZE];

        for (int c=0; c < SIZE; c++)
        {
            numArray[c]=(int)(Math.random()*6+1);
            System.out.print( numArray[c]+   " ");

            sum+=numArray[c];
        }

        System.out.println("\nSum of all numbers is " + sum);
        System.out.println("\n Mean of numbers is " + (sum) / 5);
    }
}

计算随机生成的数组的模式。

我看过他们使用一个名为computemode的单独方法发布的源代码,但我不知道将第二种方法放在我的代码中的位置。对不起,我在编程时非常环保。我正在学习Java作为我的第一语言,到目前为止它是压倒性的。

如果有人可以发布详细说明/解释的语法,我将非常感激。

1 个答案:

答案 0 :(得分:0)

该模式非常容易计算。假设您的输入有界,一种方法是简单地使用一个数组来跟踪每个数字的出现次数:

int[] data; //your data bounded by 0 and MAX_VALUE
int[] occurrences = new int[MAX_VALUE+1];

for ( int datum : data ) {
    occurrences[newNumber]++;
}

然后找出具有最高值的事件中的索引。

int maxOccurrences = Integer.MIN_VALUE;
int mode = -1;

for ( int i = 0; i < occurrences.length; i++ ) {
    if ( occurrences[i] > maxOccurrences ) {
        maxOccurrences = occurrences[i];
        mode = i;
    }
}

你必须调整它来处理多种模式。