simulation

Discussion sur l'enseignement de l'algorithmique avec Xcas au lycee
pomette222
Messages : 7
Inscription : sam. mai 28, 2011 5:50 pm

simulation

Message par pomette222 » ven. juin 24, 2011 8:07 am

Bonjour,

J'ai trouvé un algo de simulation de la somme de deux dés mais je ne comprends pas la syntaxe suivante:

l:=l[0$13]; c'est ca que je comprends pas!

Apres on demande le nomb de simulation, et on met dans L, les frequences des sommes obtenues entre 2 et 12

Le soucis c'est que L est donc un vecteur qui me renvoie 13 nb et evidemment ce sont les 11 derniers (2, 3... 12) qui m'interresse. Les deux premiers etant 0.
Apres qd je veux créer un histogram et que je cherche l'amplitude de ma liste , MIN(l) me renvoie 0 alors que c'est faux!!
Le soucis c'est que je vois pas comment ne garder que mes 11 bonnes frequences, et virer ces 2 nombres nul ...

si je change L:= ... ca marche plus!!
mes questions sont donc:
1. pouvons nous exécuter ce meme prog en changeant l:=l:=l[0$13]; (parceque je comprends pas la syntaxe)
2. si c'est pas possible, comment retourner la VRAIE valeur minimale de ma liste.

voici le code: résultat pour une simulation particuliere : L = [0,0,34,53,81,120,158,165,134,109,77,64,27]

l:=[0$13];
saisir("nombre de lancers ? ",n);
pour k de 1 jusque n faire
r:=2+alea(6)+alea(6) ;
l[r]:=l[r]+1;
fpour;
l:=l/n;
pour k de 2 jusque 12 faire
afficher ("fréquence de la somme "+k+" : ",l[k]);
fpour:;

f:= max(l)-min(l);
c:=classes(l,0,f/10);
histogram(c);

Merci pour vos réponses!

pomette222
Messages : 7
Inscription : sam. mai 28, 2011 5:50 pm

Re: simulation

Message par pomette222 » ven. juin 24, 2011 8:15 am

Ou tout simplement:
comment tracer l'histogramme d'une telle simulation, Je n'y arrive pas!
histogram(l); ne fonctionne pas!

mille mercis!

pomette222
Messages : 7
Inscription : sam. mai 28, 2011 5:50 pm

Re: simulation

Message par pomette222 » ven. juin 24, 2011 8:20 am

avec diagramme_batons ca fonctionne
mais je ne comprends tjs pas le l[0$13] si quelqu'un pouvait m'expliquer pourquoi on l'utilise et pourquoi par exemple, une liste vide
l:=[] ne fonctionne pas

Merciii

frederic han
Messages : 1113
Inscription : dim. mai 20, 2007 7:09 am
Localisation : Paris
Contact :

Re: simulation

Message par frederic han » ven. juin 24, 2011 9:15 am

bonjour,

0$13 veut dire une suite de 13 zeros separes par des virgules.

ie: 0,0,0,0,0,0,0,0,0,0,0,0,0
donc l:=[0$13] cree un tableau a une dimension initialise a 0.
ie l vaut: [0,0,0,0,0,0,0,0,0,0,0,0,0]

ensuite on accede aux elements l[j] de ce vecteur, mais attention les indices commencent a 0 dans xcas donc l[0] sera le premier element.

alb
Messages : 1229
Inscription : ven. août 28, 2009 3:34 pm

Re: simulation

Message par alb » ven. juin 24, 2011 1:04 pm

Vous pouvez peut-être trouver quelques idées dans cette fonction:

Code : Tout sélectionner

lancer_N_des(N,n):={
  local Fobs,k,nb;
  Fobs:=[0$n];
  pour k de 0 jusque n-1 faire
    Fobs[k]=<somme(randvector(N,'1+alea(6)'));
  fpour;
  return [[k$(k=N..6*N)],[round(count_eq(nb,Fobs)/n,3)$(nb=N..6*N)]]
}

alb
Messages : 1229
Inscription : ven. août 28, 2009 3:34 pm

Re: simulation

Message par alb » ven. juin 24, 2011 7:31 pm

Petite erreur dans le second programme de cette session:
remplacer L1:=[(1/6)$(k=1..6)] par L1:=(1/6)$(k=1..6) ou simplement (1/6)$6
ce qui permet de lancer un dé.
Pièces jointes
SommeDes.xws.gz
Jeu de dés
(11.06 Kio) Téléchargé 390 fois
Dernière modification par alb le dim. juin 26, 2011 9:10 am, modifié 4 fois.

alb
Messages : 1229
Inscription : ven. août 28, 2009 3:34 pm

Re: simulation

Message par alb » sam. juin 25, 2011 2:23 pm

A quoi bon se casser la tête à enseigner les mathématiques...
http://m.wolframalpha.com/
saisir:
3 dice=9
saisir:
3 dice=10
Et voilà le problème du grand duc de Toscane est résolu.
Combien de points mettez-vous à un élève qui donne cette réponse ?
Pas si mal cette adresse, je tape dice et hop une idée de programme court:

Code : Tout sélectionner

//cette fonction renvoie les probabilités des sommes pour N dés cubiques numérotés de 1 à 6
LancerNdes(N):={
local P;
P:=somme(x^k,k,1,6)^N;//P polynôme (x+x^2+...+x^6)^N
P:=seq(coeff(P,x,k),k,N,6N);//liste des coefficients de P distincts de 0
retourne [[k$(k=N..6*N)],P/6^N]//tableau(matrice,liste de deux listes) des résultats
}
Petite remarque:
(k^2)$(k=3..7) renvoie une séquence, donc [(k^2)$(k=3..7)] renvoie une liste
le plus intéressant, il me semble, est seq(k^2,k,3,7,1/2) qui permet de préciser le pas et qui porte mal son nom puisque le résultat est une liste

pomette222
Messages : 7
Inscription : sam. mai 28, 2011 5:50 pm

Re: simulation

Message par pomette222 » dim. juin 26, 2011 7:54 pm

merci pour vos réponses! J'ai saisi mon erreur!
Je dois écrire pour k de 0 jusque 10 au lieu de (2-12), et ainsi je pourrai créer une liste sans mes deux zeros du départ!!!
Ouf!!

Répondre