Concours d'élégance

Utilisation de Xcas

Modérateur : xcasadmin

slejoly
Messages : 194
Inscription : sam. oct. 14, 2006 10:17 am
Localisation : Lorient

Concours d'élégance

Message par slejoly » mar. févr. 12, 2008 8:35 pm

Bonjour, je souhaite donner (sous forme de liste par exemple) l'univers d'un tirage successif avec remise d'une urne contenant les boules 1 2 et 3.
Ceci marche bien :

Univers():={
local L,L1,L2,L3,L4;
L:=[];
L2:=[];
L4:=[];
pour j de 1 jusque 3 faire
L:=append(L,j);
fpour

pour n de 0 jusque 2 faire
pour k de 1 jusque 3 faire
L1:=concat([L[n]],[k]);
L2:=append(L2,L1)
fpour
fpour

pour l de 0 jusque size(L2)-1 faire
pour m de 1 jusque 3 faire
L3:=concat(L2[l],[m]);
L4:=append(L4,L3);
fpour
fpour
L4;
}:;

mais je suis sûr qu'il y a beaucoup plus << joli >> (=simple).
Quelqu'un a-t-il une idée ?

Stéphane Lejoly

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

Message par frederic han » mer. févr. 13, 2008 9:13 am

avec a,b,c on pourrait peut etre faire comme ca?
univers:=n->op(coeffs(taylor(1/((1-t*a)*(1-t*b)*(1-t*c)),t,n),t^n))

parisse
Messages : 5892
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Message par parisse » mer. févr. 13, 2008 9:58 am

voici ma proposition

Code : Tout sélectionner

univers(k,n):={ // n tirages parmi 1..k
  local j,kn,res,ajout;
  kn:=k^n;
  res:=[0$kn];
  ajout:=[1$n];
  for (j:=0;j<kn;j++){
    res[j] =< revlist(convert(j,base,k)+ajout);
  }
  return res;
}:;
Ensuite univers(3,3).
Explication: je convertis les entiers de 0 a k^n-1 en base k, ce qui me donne des listes de 1 a n entiers compris entre 0 et k-1, et j'ajoute [1,...,1].
Le signe =< permet de stocker le resultat en place dans res (:= convient aussi mais serait moins rapide).

Frederic, il me semble que ta solution ne convient pas a cause de la non commutativite.

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

Message par frederic han » mer. févr. 13, 2008 2:29 pm

oui, j'ai compris tirages avec remise non ordonnes.

slejoly
Messages : 194
Inscription : sam. oct. 14, 2006 10:17 am
Localisation : Lorient

Message par slejoly » jeu. févr. 14, 2008 8:12 pm

Et bien merci, c'est vraiment astucieux comme méthode l'utilisation de la base k, et même les TS spé-math sont en mesure de comprendre le programme, les autres n'ont pas tous les outils.

Stéphane Lejoly

Répondre