6 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
10 déc. 2010 à 19:10
10 déc. 2010 à 19:10
Bien sûr, sinon ça ne sers à rien de faire des fonctions !
Un autre exemple :
Un autre exemple :
int multiplier(int a,int b) { return a*b; } int carre(int x) { return multiplier(x,x); }
slt
merci pour cet eclaircissement
mais avec la variance je dois la réutiliser dans la formule de la variance meme
donc je n aurait pa ke la moyenne au return
voici la formule de la variance = (somme(ni-moyenne)^2)/N
et ma fonction moyenne est
float moyenne(int n,int p,float T[n][p])
{
int l,c;
float sum=0;
for(l=0;l<n;l++)
{ sum+=T[l][1];
}
return (sum/n);
voici la variance que j essaye de faire
float variance(int n,int p,float T[n][p])
{
int l,c;
float difcar=0 ;
for(l=0;l<n;l++)
{ difcar+=(T[l][1] - moyenne( n, p, T[n][p]))^2;
}
return (difcar/n);
merci de m aider
merci pour cet eclaircissement
mais avec la variance je dois la réutiliser dans la formule de la variance meme
donc je n aurait pa ke la moyenne au return
voici la formule de la variance = (somme(ni-moyenne)^2)/N
et ma fonction moyenne est
float moyenne(int n,int p,float T[n][p])
{
int l,c;
float sum=0;
for(l=0;l<n;l++)
{ sum+=T[l][1];
}
return (sum/n);
voici la variance que j essaye de faire
float variance(int n,int p,float T[n][p])
{
int l,c;
float difcar=0 ;
for(l=0;l<n;l++)
{ difcar+=(T[l][1] - moyenne( n, p, T[n][p]))^2;
}
return (difcar/n);
merci de m aider
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
10 déc. 2010 à 20:35
10 déc. 2010 à 20:35
Dans ce cas non, car tu recalcules la moyenne à chaque tour de boucle alors qu'elle ne change pas...
Par contre je ne comprends pas pourquoi tu as une matrice T[n][p], soit n*p valeurs, alors que tu devrais avoir n valeurs et n probabilités, soit 2*n valeurs
En plus, on peut simplifier le calcul avec le théorème de König-Huyghens :
Mais on peux bien sûr faire les deux calculs simultanément :
Par contre je ne comprends pas pourquoi tu as une matrice T[n][p], soit n*p valeurs, alors que tu devrais avoir n valeurs et n probabilités, soit 2*n valeurs
En plus, on peut simplifier le calcul avec le théorème de König-Huyghens :
float moyenne(int n, float x[n], float p[n]) { int i, somme=0; for (i=0; i<n; i++) somme += p[i]*x[i]; return (somme/n); } float variance(int n, float x[n], float p[n]) { float sommeCarre = 0; int i; for (i=0; i<n; i++) somme += p[i]*x[i]*x[i]; float m = moyenne(n,x); return (sommeCarre/n)-m*m; }
Mais on peux bien sûr faire les deux calculs simultanément :
float variance(int n, float x[n], float p[n]) { float somme = 0, sommeCarre =0; int i; for (i=0; i<n; i++) { somme += p[i]*x[i]; sommeCarre += p[i]*x[i]*x[i]; } return sommeCarre/n-(somme/n)*(somme/n); }
bonjour KX
c est a dire ke je suis avec un tableaux a deux dimension ou n est le nombre de ligne et p le nombre de colonnes et dans mon projet je dois faire une fonction qui calcule la moyenne apres faire une autre fonction qui calcule la variance d'une des colonnes et nous on est en biostatistique donc on utilise les tableaux mais on a pa etudié les matrices
merci beaucoup pour ton aide KX
c est a dire ke je suis avec un tableaux a deux dimension ou n est le nombre de ligne et p le nombre de colonnes et dans mon projet je dois faire une fonction qui calcule la moyenne apres faire une autre fonction qui calcule la variance d'une des colonnes et nous on est en biostatistique donc on utilise les tableaux mais on a pa etudié les matrices
merci beaucoup pour ton aide KX
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
11 déc. 2010 à 18:35
11 déc. 2010 à 18:35
En mathématiques une matrice est - par définition - un tableau à deux dimensions.
En C, int[] est un tableau, int[][] est soit une matrice, soit un tableau de tableaux.
Mais dans ton cas toutes les lignes ont le même nombre de colonnes donc c'est une matrice
En C, int[] est un tableau, int[][] est soit une matrice, soit un tableau de tableaux.
Mais dans ton cas toutes les lignes ont le même nombre de colonnes donc c'est une matrice
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
slt
oh d accord merci pour cette précision
suis arrivé a creer la fonction au fait en appelant la moyenne dans la fonction variable je declarais les parametres et non les arguments
et je voudrai tirer aleatoirement un 1 ou un 2 et les ranger dans la colonne 2
pour chaque identifiant en colonne 1
veux tu me dire ce que tu en pense
salut
oh d accord merci pour cette précision
suis arrivé a creer la fonction au fait en appelant la moyenne dans la fonction variable je declarais les parametres et non les arguments
et je voudrai tirer aleatoirement un 1 ou un 2 et les ranger dans la colonne 2
pour chaque identifiant en colonne 1
veux tu me dire ce que tu en pense
salut
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
11 déc. 2010 à 19:28
11 déc. 2010 à 19:28
Je ne comprends pas ce que tu veux tirer aléatoirement, la moyenne et la variance doivent toujours donner le même résultat, il ne devrait rien y avoir d'aléatoire là dedans.
Par ailleurs je ne sais pas ce qu'il y a dans tes colonnes 1 et 2 (ni les autres)
Par ailleurs je ne sais pas ce qu'il y a dans tes colonnes 1 et 2 (ni les autres)
slt
je dois Simuler un tableau (à 2 dimensions 100 lignes et 3 colonnes) de 100 patients avec les identifiants suivant à ranger en colonne 1: 56001-56050 29001-29050 (ils sont des 2 départements 56 et 29). Randomiser 2 traitements en tirant aléatoirement un 1 ou un 2 pour chaque patient, le ranger en colonne 2. Puis en colonne 3, tirer aléatoirement la PAM des patients traités par le traitement 1 en tirant un nombre entre 75 et 85, et la PAM des patients traités par le traitement 2 en tirant un nombre entre 80 et 90.
excuse moi si j ai ete long
je dois Simuler un tableau (à 2 dimensions 100 lignes et 3 colonnes) de 100 patients avec les identifiants suivant à ranger en colonne 1: 56001-56050 29001-29050 (ils sont des 2 départements 56 et 29). Randomiser 2 traitements en tirant aléatoirement un 1 ou un 2 pour chaque patient, le ranger en colonne 2. Puis en colonne 3, tirer aléatoirement la PAM des patients traités par le traitement 1 en tirant un nombre entre 75 et 85, et la PAM des patients traités par le traitement 2 en tirant un nombre entre 80 et 90.
excuse moi si j ai ete long