|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2003
Città: Garlasco(PV)
Messaggi: 300
|
Help:l'esame incombe e il programma su root non funziona
Sono abbastanza disperato perche non riesco a trovare l'errore del programma che ho fatto.
Il programma genera numeri casuali con una distribuzione arbitraria e il root dovrebbe visualizzare l'istogramma che tale distribuzione assume approssimando la funzione(nel caso x*x). Il problema è che non visualizza l'istogramma come dovrebbe, sembra che scriva solo il primo intervallo. Se qualcuno può darmi una mano gli sarò molto grato Grazie. Robertop Questo è il programma: #include <stdlib.h> //Comprende la funzione per i numeri casuali #include <TH1D.h> //Comprende le istruzioni per l'istogramma uno-dimensionale #include <math.h> //Comprende le funzioni matematiche in generale #define X_MAX 1 //Massima X dell'istogramma #define X_MIN 0 //Minima X dell'istogramma #define Y_MAX 100 //Massima Y dell'istogramma, l'Y minima è 0 #define N_CONT 10 //Numero di divisioni dell'istogramma #define N_MAX 1000 //Numero di numeri casuali generati double F(double x){ //Funzione densità di probabilità return x*x; } double random(double min,double max){ //Genera numeri casuali compresi fra min e max return min+(max-min)*(rand()/(RAND_MAX+1.0)); } TH1D *distribuzione; //puntatore all'istogramma int Es10(){ //Alloca l'istogramma distribuzione=new TH1D("distribuzione","Numeri casuali con distribuzione definita",N_CONT,X_MIN,X_MAX); //Genera i numeri for(int i=0;i<N_MAX;i++){ double x; x=random(X_MIN,X_MAX); //Genera un numero compreso tra X_MIN e X_MAX if(random(0,Y_MAX) < F(x)) distribuzione->Fill(x); // Si manda il numero all'istogramma } distribuzione->DrawCopy(); //Disegna l'istogramma return 0; } Ultima modifica di robertop : 28-02-2006 alle 23:56. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Mar 2003
Città: Garlasco(PV)
Messaggi: 300
|
up......
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Mar 2003
Città: Garlasco(PV)
Messaggi: 300
|
se c'è qualcuno che sa usare il root probabilmente può aiutarmi...
Grazie |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:40.



















