![]()
Io sto svolgendo un piccolo programma in java sul calcolo della Media Campionaria, ma ho un problema..
Il programma dovrebbe fermarsi quando la Media dei Campioni risulta uguale alla Media della Popolazione.. e così fà!
L'unico problema è nel calcolo della Media dei Campioni: ho fatto varie prove ma non capisco come mai mi stampa sempre la Media della Popolazione, eppure dovrebbe essere giusto![]()
* il problema dovrebbe essere nell'ultimo for "grande" *
Grazie!codice:package Calcolo; import java.io.*; import java.math.*; public class Main { public static void main(String[] args) { boolean start = true; //POPOLAZIONE //variabile che rappresent agli elementi //che compongono la popolazione //indicheremo la popolazione con p int p=6; //la media della popolazione dichiarandola double media_p=0; //somma dei valori per la media della pop μ double somma_media_p=0; //CAMPIONE //grandezza del campione int campione=2; // la media del campione dichiarandola double media_campione=0; //somma dei calori per la media del campione double somma_medie_campione=0; //SIGMA //la deviazione della popolazione double sigmax=0; // somma per calcolare la deviazione double somma_sigmax=0; //creo un vettore e una matrice dove andrò ad inserire i miei valori //creati con la funzione random double vett_p[] = new double[p]; vett_p[0] = 162; vett_p[1] = 165; vett_p[2] = 171; vett_p[3] = 173; vett_p[4] = 175; vett_p[5] = 178; double matrice_campion[][]=new double [p][p]; System.out.println("ESERCIZIO: Verificare che la media campionaria corrisponda con la media della popolazione."); System.out.println("\n\n\n- Vettore della popolazione:"); //CICLO PER CREARE IL VETTORE CHE ANDRà A RAPPRESENTARE LA POPOLAZIONE for(int a=0; a<p; a++) { double num=0; int num_double=0; //num=Math.random(); //num=(num*10)+1; //num_double=(int) num; //vett_p[a]=num_double; //visualizzo il valore System.out.print("[ "+vett_p[a]+" ] "); somma_media_p=somma_media_p+vett_p[a]; } System.out.println(); media_p=somma_media_p/p; System.out.println(" "); //ORA POSSIAMO ANDARCI A CALCOLARE LA MEDIA DELLA POPOLAZIONE //METTO LA LETTERA M COME INDICAZIONE //PER INDICARE LA MEDIA System.out.println("- La Media della popolazione è: " +media_p); for(int b=0; b<p;b++) { somma_sigmax=somma_sigmax+Math.pow((vett_p[b]+media_p),4); } sigmax=somma_sigmax/p; System.out.println("- La deviazione è: " +sigmax); System.out.println(" "); System.out.println("\n\n-- VALORI DEL CAMPIONE --\n\n"); //CREIAMO UNA MATRICE CON I VALORI DELLA MEDIA CAMPIONARIA for(int c=0;c<p;c++) { while (start == true){ System.out.println(" "); System.out.print("- La Matrice delle medie campionarie:\n"); for(int d=0; d<p;d++) { matrice_campion[c][d]=((vett_p[c]+vett_p[d])/campione); System.out.print("["+matrice_campion[c][d]+"] "); } System.out.println(" "); for(int e=0; e<p; e++) { for(int d=0;d<p;d++) { matrice_campion[e][d]=(vett_p[e]+vett_p[d])/campione; somma_medie_campione=(vett_p[e]+vett_p[d])/2 + somma_medie_campione; } } media_campione=somma_medie_campione/(p*p); System.out.println("\nLa relativa media del campione è: "+media_campione +"\n"); if(media_campione == media_p) { //CONCLUSIONI SE LA MEDIA DEL CAMPIONE RISULTA UGUALE ALLA MEDIA DELLA POPOLAZIONE System.out.println(" "); System.out.println("\n\n-- POSSIAMO QUINDI TRARRE LE CONCLUSIONI --\n"); System.out.println("Dopo aver calcolato la media della popolazione " +media_p+" \ne la media del campione "+media_campione+","); System.out.println("possiamo dire che abbiamo verificato la nostra ipotesi,"); System.out.println("in quanto la media della popolazione corrisponde con la media del campione!"); start = false; } } } } }![]()

Rispondi quotando