2016-04-13 8 views
0

基本的に、私は50の乱数を持つ配列を持っています。同じ乱数を取得すると、カウント数を増やしたいと思います。すべてのカウントをした後、私はどのくらいの頻度で取得したのか見たいですが、カウント方法にエラーがあるようです。ですから、基本的にランダムに生成された数よりも多くのゼロが私に与えられます。乱数が生成された場合、どのようにしてカウンタの値を上げるのですか?

import java.util.Random; 

public class aufgabe2 { 

    static int[] ran = new int[50]; 
    static int[] counter = new int[10]; 

    static Random r = new Random(); 

    public static void ranNums() { 
    for (int i = 0; i < ran.length; i++) { 
     ran[i] = r.nextInt(10); 
     System.out.print(ran[i] + " "); 
    } 
    } 

    public static void countSameRanNums(int[] counter) { 
    System.out.println(); 
    for (int i = 0; i < 9; i++) { 
     counter[ran[i]]++; 
     System.out.println(i + ".frequency: " + (counter[ran[i]])); 
    } 
    } 

    public static void main(String[] args) { 
    ranNums(); 
    countSameRanNums(ran); 
    } 
} 
+0

を説明するために上記のものを必要とするなら、私を知ってみましょうさて、 'ラン'は50の値の配列ですが、最初の9を反復しているだけです。 – Andreas

+0

私は彼が50回0-9で生成し、0-9の頻度を得たいと思います。 – logger

答えて

0

あなたはそれはあなたが唯一の50のポジションを持って走った配列の最初の9つの位置を反復していることである持っている問題:

これは私のプログラムコードです。

また、各乱数のカウントを取得する2つの方法は必要ないと思います。あなたはランダムな値を取得すると同時にそれらを数えることができます。これを見て:

public static void ranNums() { 
    for (int i = 0; i < ran.length; i++) { 
     ran[i] = r.nextInt(10); 
     System.out.print(ran[i] + " "); 
     counter[ran[i]]++; 
    } 
} 

そして、あなたが唯一のすべてのカウントを取得するためにループを作るために持っていた後:

for(int j = 0; j < counter.length; j++) 
{ 
    System.out.println(j + ".frequency: " + (counter[j])); 
} 
+1

これはうまくいきました助けるためのたくさんの私の問題を理解することは、私の弱い英語のためにおそらく簡単ではありませんでした。私は本当にあなたの助けに感謝します。 –

0
import java.util.Random; 

public class aufgabe2 { 
static int[] ran = new int[50]; 
static int[] counter = new int[10]; 

static Random r = new Random(); 

public static void ranNums() { 
int counter; 
Map<Integer,Integer> map = new HashMap<Integer,Integer>(); 
for (int i = 0; i < ran.length; i++) { 
    counter = 1; 
    ran[i] = r.nextInt(10); 
    if(map.containsKey(ran[i])){ 
     map.put(ran[i], map.get(ran[i])+1); 
    } else { 
     map.put(ran[i], counter); 
    } 
} 

    Iterator<?> it = map.entrySet().iterator(); 
    while (it.hasNext()) { 
     Map.Entry pair = (Map.Entry)it.next(); 
     System.out.println(pair.getKey() + " frequency : " + pair.getValue()); 
    } 
} 

public static void main(String[] args) { 
    ranNums(); 
    } 
} 

あなたは

+0

これはうまくいきましたが、実際には複雑ですが、Map、HashMap、Iteratorはまだわかりません。Javaにはかなり新しいので、助けてくれてありがとうございます。問題を解決する異なる方法を示すためのものです。 –

+0

私は何とか1つの答えしか受け入れることができません、私はフォーラムにはかなり新しいです、私は両方を受け入れることを望みました。 –

関連する問題