Generowanie histogramu

0

Cześć,

Mam przykładowy przedział na osi OX <1, 10>. Generuję sobie 100 liczb do tablicy X-ów z tego właśnie przedziału. Moim zadaniem jest sprawdzić do której klasy histogramu wpadnie dowolna, wylosowana liczba z tejże tablicy. Czy ja to robię dobrze? Ciągle wrzuca mi do jednego przedziału i to góra jedną liczbę...


#include <iostream>
#include <ctime>
#include <cstdlib>

using namespace std;

int main()
{
    srand(unsigned(time(NULL)));
    double X[100], Y[100], TMP[10];
    int k = 10;     // liczba klas, podprzedzialow
    double d = 1/(double)k;     // szerokosc klasy

    for(int i = 0; i < 100; i++)
    {
        X[i] = 9*(double)rand()/(double)RAND_MAX + 1;
        // Y[i] = (double)rand()/(double)RAND_MAX;
        // cout << X[i] << endl;
    }

    for(int i = 0; i < k; i++)
    {
        TMP[i] = 0;
    }

    for(int i = 0; i < k; i++)
    {
        int l = (int)X[i]/d;
        cout << l << endl;
        TMP[l]++;
    }

    for(int i = 0; i < k; i++)
    {
        cout << TMP[i] << endl;
    }
    return 0;
}


0

A to rzutowanie w przypisaniu do l to na pewno działa tak jak myślisz?

1

Nie za bardzo rozumiem jak ma to działać, ale jeżeli chodzi o rzutowanie:

int l = (int)X[i]/d;

To robisz to tak:

int wynik = (int)X[i];
int wynik = wynik/d;

Nie wiem czy jesteś tego świadomy, daje to zupełnie inne wyniki, niż

int wyniki = (int)(X[i]/d);

1 użytkowników online, w tym zalogowanych: 0, gości: 1