Bonjour à tous.
Je vous expose mon problème :
J'ai un tableau de cette forme que j'ai rempli après une étape de simulation (500x):
En gros, chaque i correspond a la valeur tirée, et proba[i] correspond au nombre de fois où i a été tiré lors des 500 fois.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
proba[0]=0
proba[1]=0
proba[2]=49
proba[3]=133
proba[4]=110
proba[5]=90
proba[6]=47
proba[7]=34
proba[8]=20
proba[9]=10
proba[10]=5
proba[11]=2
Je veux ensuite calculer une proba, je fais donc :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
for(i=0;i<repeat;i++){
		if(proba[i] != 0){
			double pval = (proba[i])/(float)repeat;
			printf("proba[%d]=%d, p-val = %.3f \n",i,proba[i],pval);
		}
	}

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
proba[0]=0 pval non calculée
proba[1]=0 pval non calculée
proba[2]=49, p-val = 0.098
proba[3]=133, p-val = 0.266
proba[4]=110, p-val = 0.220
proba[5]=90, p-val = 0.180
proba[6]=47, p-val = 0.094
proba[7]=34, p-val = 0.068
proba[8]=20, p-val = 0.040
proba[9]=10, p-val = 0.020
proba[10]=5, p-val = 0.010
proba[11]=2, p-val = 0.004
Je cherche en fait à avoir l'indice de proba pour lequel p-val < 0.05, dans l'exemple, 8.

J'avais donc fait :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
for(i=0;i<repeat;i++){
		if(proba[i] != 0){
			double pval = (proba[i])/(float)repeat;
			if(pval < 0.05){
				break;
				return(i);
			}
		}
Mais cela ne fonctionne pas ....
Comment puis je procéder ?