djkg
Nouveau membre
Je suis tout nouveau dans le language c. J'ai un exercice à faire, mais je comprend rien :
Marche aleatoire
Ici on cherche a trouver la distribution des fins de trajets d'un ivrogne marchant sur les entiers dans une dimension.
On s'interesse a la distribution des fins de parcours puisque les mathematiciens nous racontent que ces marches
aleatoires sont intimement lies aux distributions gaussiennes
Vous devez alors completer le programme marche_etudiants.c, compiler, debogger et tracer la distribution
des fins de parcours a l'aide de xmgrace. Une comparaison avec une gaussienne serait tres bien, egalement.
[cpp]
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
/* il faut experimenter avec les valeurs de nombre_pas, nombre_essais */
#define nombre_pas 100
#define nombre_essais 1000000
/* on cherche a trouver la distributions des distances de marches aleatoires dans une dimension
on repete une marche aleatoire d'un nombre_de_pas predetermine
et on cherche la distribution des distances parcourues.
La repition est absolument necessaire - autrement il n'y aurait pas de statistique.*
La methode choisie est assez simple.
*/
int seed; /* variable globale pour la communication entre main et random01 */
/* un generateur aleatoire qui donne une site de nombre pseudo aleatoires entre 0 et 1 */
double random01() {
seed=abs((16807*seed)%((long int) pow(2,31)));
return (1.0*seed)/(pow(2,31)-1);
};
int main() {
int i,e,deplacement; /* bien sur, il faut definir d'autre variables */
int occurences[2*nombre_pas+1];
FILE *fichier; /* pour ecrire les donnes a la fin */
seed=30; /* pour une valeur de 'seed' il y aura toujours la meme suite 'aleatoire' */
/* initialiser occurences=0 */
for (i = -nombre_pas; i < nombre_pas ; i++) occurences[i+nombre_pas]=0;
for (e=0;e < nombre_essais;e++) {
/* une fois la marche aleatoire terminee il faut inscrire la position attente dans le vecteur
occurences: */
occurences[nombre_pas+deplacement]= occurences[nombre_pas+deplacement]+1;
/* fin essais */};
/* ecrire les resultats dans un fichier */
fichier = fopen("resultat","w");
for (i = -nombre_pas; i < nombre_pas ; i++)
fprintf(fichier,"%d %d \n",i,occurences[i+nombre_pas]);
fclose(fichier);
return 0;};
[/cpp]
éclairez moi svp merci
Marche aleatoire
Ici on cherche a trouver la distribution des fins de trajets d'un ivrogne marchant sur les entiers dans une dimension.
On s'interesse a la distribution des fins de parcours puisque les mathematiciens nous racontent que ces marches
aleatoires sont intimement lies aux distributions gaussiennes
Vous devez alors completer le programme marche_etudiants.c, compiler, debogger et tracer la distribution
des fins de parcours a l'aide de xmgrace. Une comparaison avec une gaussienne serait tres bien, egalement.
[cpp]
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
/* il faut experimenter avec les valeurs de nombre_pas, nombre_essais */
#define nombre_pas 100
#define nombre_essais 1000000
/* on cherche a trouver la distributions des distances de marches aleatoires dans une dimension
on repete une marche aleatoire d'un nombre_de_pas predetermine
et on cherche la distribution des distances parcourues.
La repition est absolument necessaire - autrement il n'y aurait pas de statistique.*
La methode choisie est assez simple.
*/
int seed; /* variable globale pour la communication entre main et random01 */
/* un generateur aleatoire qui donne une site de nombre pseudo aleatoires entre 0 et 1 */
double random01() {
seed=abs((16807*seed)%((long int) pow(2,31)));
return (1.0*seed)/(pow(2,31)-1);
};
int main() {
int i,e,deplacement; /* bien sur, il faut definir d'autre variables */
int occurences[2*nombre_pas+1];
FILE *fichier; /* pour ecrire les donnes a la fin */
seed=30; /* pour une valeur de 'seed' il y aura toujours la meme suite 'aleatoire' */
/* initialiser occurences=0 */
for (i = -nombre_pas; i < nombre_pas ; i++) occurences[i+nombre_pas]=0;
for (e=0;e < nombre_essais;e++) {
/* une fois la marche aleatoire terminee il faut inscrire la position attente dans le vecteur
occurences: */
occurences[nombre_pas+deplacement]= occurences[nombre_pas+deplacement]+1;
/* fin essais */};
/* ecrire les resultats dans un fichier */
fichier = fopen("resultat","w");
for (i = -nombre_pas; i < nombre_pas ; i++)
fprintf(fichier,"%d %d \n",i,occurences[i+nombre_pas]);
fclose(fichier);
return 0;};
[/cpp]
éclairez moi svp merci