Planche de Galton

Règles du forum
ATTENTION ! Il est demandé de ne déposer dans ce forum que des exemples en langage Asymptote
  • finalisés
  • que l'on pense intéressants et optimisés
  • et qui se rapportent au thème du forum.
Si certains exemples déposés donnent lieu à de nombreuses modifications, ils seront déplacés et remplacés par un nouveau sujet dans ce forum avec la ou les meilleures propositions.
Pour les demandes d'aide ... il y a un forum spécifique !
maurice
Messages : 254
Enregistré le : jeu. 25 mars 2010, 13:00
Contact :

Planche de Galton

Message non lu par maurice » ven. 7 juin 2013, 02:42

Pour illustrer la loi binomiale ; normalement apparait une belle courbe en cloche !

Code : Tout sélectionner

import animation;
settings.tex="pdflatex";
settings.outformat="gif";
unitsize(.75cm);

/* Construction de la planche */

marker hexa=marker(scale(6)*rotate(30)*polygon(6), 1bp+green);

int N=10;

for(int i=0; i<N; ++i) {
  for(int j=0; j<=i; ++j) {
    real x=-i*.5;
    draw((x+j, -i), hexa);
  }
}

for(int i=0; i<N+1; ++i) label(format("%i", i), (-N/2+i, -2.25*N), S);
draw((-(N+1)/2,-2.25*N)--((N+1)/2,-2.25*N), 1bp+lightblue);
for(int i=0; i<N+2; ++i) draw((-(N+1)/2+i, -2.25*N)--(-(N+1)/2+i, -N+.65), 1bp+lightblue);
draw((0,2)--(0,1.2),red, Arrow);


/* Animation */

dotfactor=25;
// srand((int)time("%S"));

int[] resultats=array(N+1,0);
// resultats *= 0;

animation Anim;
Anim.add();
save();

for(int n=0; n<4.5*N; ++n) {
  int D=0;
  pair balle=(0,0.5);
  dot(balle);
  Anim.add();
  erase();
  restore();
  for(int i=0; i<N; ++i) {
    save();
    real s=unitrand();
    if (s>0.5) {
      D += 1;
      balle=balle+(.5,-1);
    }
    else {     
      balle=balle+(-.5,-1);
    }
    dot(balle);
    Anim.add();
    erase();
    restore();
  }
  resultats[D] += 1;
  dot((-N/2+D, -2.25*(N+.25)+resultats[D]));
  Anim.add();
  save();
}

erase();
Anim.movie(delay=100);
// label(Anim.pdf(delay=100));


Je suis preneur de toute amélioration du code.

Bruno

edit : image à suivre...
Doc 3D
Si ça ne marche pas, essayez la version pdf

Fedora 23 -- Asymptote 2.35 -- TeXlive 2013 -- emacs et/ou gedit

maurice
Messages : 254
Enregistré le : jeu. 25 mars 2010, 13:00
Contact :

Re: Planche de Galton

Message non lu par maurice » ven. 7 juin 2013, 20:44

J'essaie de joindre le .gif sans succès : fichier image non valide...
Peut-être sa taille (3.2Mo), je mets le lien alors :

http://www.mathco.tuxfamily.org/asy3d/Galton.gif

La cloche est loin d'être parfaite !

Bruno
Doc 3D
Si ça ne marche pas, essayez la version pdf

Fedora 23 -- Asymptote 2.35 -- TeXlive 2013 -- emacs et/ou gedit

Avatar du membre
GM
Administrateur du site
Administrateur du site
Messages : 1328
Enregistré le : dim. 7 mars 2010, 14:50

Re: Planche de Galton

Message non lu par GM » dim. 9 juin 2013, 17:27

Je découvre le message un peu tardivement : merci pour la contribution.

Je vais me permettre... dès que j'aurai le temps, de supprimer nos deuxième et troisième message pour ne garder que le premier, avec l'animation intégrée.
Je regarderai le code... et je verrai si je ne peux pas mettre l'image aussi dans un format swf.

Encore merci.
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 10/10/17) :
PC n°1 :Windows 10 - Asymptote(2.41)+MikTeX2.9 - Editeurs : Notepad++ et TeXworks.
Mes autres PC :Ubuntu 16.04LTS - Asymptote(2.42 git) + TexLive2017 - Editeur : TeXworks.
Merci de préciser la votre pour faciliter l'aide des autres !

maurice
Messages : 254
Enregistré le : jeu. 25 mars 2010, 13:00
Contact :

Re: Planche de Galton

Message non lu par maurice » dim. 9 juin 2013, 23:43

Bonjour,

j'avais aussi essayé de mettre un .swf mais ce n'est apparemment pas autorisé.
Il faudra aussi détruire ce 4e message.

Bruno
Doc 3D
Si ça ne marche pas, essayez la version pdf

Fedora 23 -- Asymptote 2.35 -- TeXlive 2013 -- emacs et/ou gedit

Répondre