1

1) 0 から 100 までの 1000 の int で埋められた 2 つの配列を渡す必要があります。2) 1000 の数値をソートするための 10 個のビンが含まれています。

数値を 0 ~ 9、10 ~ 19、20 ~ 29、30 ~ 39、40 ~ 49、50 ~ 59、90 ~ 99 などの 10 のビンに並べ替えるカウンターを作成するにはどうすればよいですか?

それらをソートするif/elseを使用しますか?その場合、各ビンに値を追加するにはどうすればよいですか? こんな感じでしょうか。

これは私がこれまでに持っているものです:

          //initialize array of 1000 elements
          int[] numbers = new int[1000];
          int i = 0;
          //initialize array of 10 bins
          int[] bins = new int[10];

          void setup() {
              // Populate array with random number
              for (int i = 0; i < numbers.length; i++) {
                 numbers[i] = ceil(random(0,99));
              }

           }

           //function that sorts random numbers into bins
           void counter(int[] numbers, int[] bins) {

           }
4

2 に答える 2

3

numbers右側のすべての数値が必要な場合はbin、10 個のArrayListsの配列を のデータ構造として使用しますbins

int[] numbers = new int[1000];
ArrayList[] bins = new ArrayList[10];

void setup() {
    for(int i = 0; i<bins.length; i++) {
        bins[i] = new ArrayList();
    }

    for (int i = 0; i < numbers.length; i++) {
        numbers[i] = floor(random(0,100));
    }
}

void counter(int[] numbers, ArrayList[] bins) {
    for (int i = 0; i < numbers.length; i++) {
        bins[floor(float(numbers[i])/10.0)].add(numbers[i]);
    }
}

次に、ビンを取得します (たとえば、値が 0 ~ 9 の数字で構成される最初のビン):

int sizeBin = bins[0].size();
for(int i=0; i<sizeBin; i++) {
    println(bins[0].get(i));
}

ビン内の数値のカウントが必要な場合は、次のようにして取得できます (ビン 0-9 の例)

bins[0].size();
于 2012-10-18T18:31:26.847 に答える
2

the simplest way a can think of is to use a for loop to cycle through the numbers[] and then a series of if statements to evaluate whether the number is <= 9 , <= 19 etc

    void counter(int[] numbers, int[] bins){
    int count = 0;
    int length = numbers.length;
    for(int i = 0; i< length; i++){
       if(numbers[i] <= 9){

          bins[count] = numbers[i];
          count++;
       }
    //and the same for 10-19 etc...
}

something like this maybe? not very eloquent but since the array is only 1000 elements it should suffice

于 2012-10-18T18:14:47.063 に答える