Bonjour, en fait je suis novice en C : mon probleme est le suivant :
je voudrai écrire une matrice qui calcule aléatoirement des probabilités , bien entendu les valeurs seront entre 0 et 1.
1. il faut que ma ligne soit égal à 1, donc si ma fonction me donne une première valeur (ex : 0.2) il faut que la fonction après me donne une valeur aléatoire entre (0 et 0.8) , pour cela j'ai utlisé deux float max et min, .... resultat ça marche pas. parceque la fanction prédifinie en C randomize que j'ai utilisé ne prend pas comme parmetre le max et le min.
je vous envois un fragment de code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 int main(void) { //int my_rand (); FILE *f= NULL; int nbr_trans, nbr_seq; int i, j, l, m, vec; float min=0; float max=1; //int calcul(); float my_rand(); float k, maxim, y; float temp=0; float pTab[100][100]; //********************************** f = fopen("hmm.txt", "r"); printf("entrez le nombre Etats :"); scanf("%d", &nbr_trans); printf("Les probabilités : \n"); fprintf(f, "La matrice : \n"); fprintf(f, " \n"); for (j=0;j<nbr_trans; j++) { for (i=0;i<nbr_trans; i++) { max=max-temp; k=my_rand(max, min); printf ("%f\n", k); pTab[i][j]= k; temp=temp+pTab[i][j]; fprintf(f, "\t%f", pTab[i][j]); fflush(stdin); } fprintf(f, "\n"); } float my_rand (max, min){ static int first = 0; if (first == 0) { srand (time (NULL)); first = 1; } //return rand(); return (float)rand() / ((float)RAND_MAX + 1.0) ; //return (float)(min + ((float) rand ()/((float)(RAND_MAX)+1.0)* (max - min+1))); }
en fait , je ne sais pas si randomize ou autre fonction pourra me donner un resultat
en fait moi je voudarai dans mon code un resultat comme :
nombre d'états = 5
0.2 0.0 0.2 0.0 0.6
0.1 0.2 0.3 0.0 0.4
0.9 0.0 0.1 0.0 0.0
0.0 0.2 0.2 0.4 0.4
0.0 0.2 0.2 0.0 0.6
si vous avez remarquer la ligne elle est égal à 1
la fonction randomize ou rand() me donne les valeurs aléatoire en fonction de mon max qu'il décrémente à chaque valeur aléatoire .... est-je suis clair ?
j'avais juste oublié de dire, je vous remercie de votre interet, même une idée pour m'arranger ... !
Partager