ciao a tutti,
ho un piccolo problema con un esercizio di scuola...che mi serviva per prepararmi ad un compito...
ma, purtroppo, non funge e non riesco a capirne il motivo
per chiarire meglio la situazione, vi posto anche un'immagine..
in poche parole, il programma deve simulare il passaggio da uno stato all'altro,contare quante volte è passato per uno stato e calcolare, infine, la media e la varianza su 5 prove composte da 10000 "giri"...
le condizioni per passare da uno stato all'altro è la probabilità che ho segnato sulle varie freccie...
ecco il programma:
CLASSE STATI:
public class Stati {
private double var[]=new double[3],med[]=new double[3];
public void Stati() {
int stato=0,java,i,j,num;
int freqAss[]=new int[3];
Random rd=new Random();
for(j=0;j<5;j++){
for(i=0;i<3;i++)
freqAss[i]=0;
stato=0;
for(i=0;i<1000;i++){
switch(stato){
case 0: num=rd.nextInt(4);
if(num<=2){
freqAss[0]++;
System.out.println("\nResta in stato 0");
stato=0;
}
else{
freqAss[1]++;
stato=1;
System.out.println("\nVa in stato 1");
}
break;
case 1: num=rd.nextInt(3);
if(num==0){
freqAss[1]++;
stato=1;
System.out.println("\nResta in stato 1");
}
else
if(num==1){
freqAss[0]++;
stato=0;
System.out.println("\nVa in stato 0");
}
else{
freqAss[2]++;
stato=2;
System.out.println("\nVa in stato 2");
}
break;
case 2: num=rd.nextInt(2);
if(num==1){
freqAss[2]++;
stato=2;
System.out.println("\nResta in stato 2");
}
else{
freqAss[0]++;
stato=0;
System.out.println("\nVa in stato 0");
}
break;
}
}
for(i=0;i<3;i++){
med[i]+=freqAss[i]/10000;
var[i]+=(freqAss[i]/10000)*(freqAss[i]/10000);
}
}
for(i=0;i<3;i++){
med[i]/=5;
var[i]=var[i]/5-med[i]*med[i];
}
}
public void stampa(){
int i;
System.out.println("\nValori statistici risultanti: ");
System.out.println("\n------------------------------------");
for(i=0;i<3;i++)
System.out.println("\nStato "+i+" media: "+med[i]+" varianza: "+var[i]+"\n\n");
}
}
CLASSE MAIN:
public class Main {
public static void main(String args[]){
Stati rd=new Stati();
rd.stampa();
}
}