### 6.42.43 Faire une liste aléatoire : randvector, ranv

randvector ou ranv fabrique une liste de nombres aléatoires.
randvector ou ranv a comme argument un entier n et éventuellement un deuxième argument, soit un entier k, soit le nom quoté ou non quoté de la loi de distribution des nombres aléatoires de la liste (voir aussi 6.28.32, 6.46.3 et 8.3.8).
randvector ou ranv renvoie une liste d’ordre n constituée d’entiers aléatoires uniformément distribués entre -99 et 99 (par défaut) ou entre 0 et k−1 ou uneliste d’ordre n de nombres aléatoires distribués selon la loi mise entre-quote ou en paramètre.
Lorsque randvector a comme argument un entier n et une loi aléatoire de Xcas qu’il faut quoter ou pas dans ce cas, randvector ou ranv renvoie une liste de dimension n dont les éléments sont pris au hasard selon la fonction donnée en troisième argument.
Les fonctions données en deuxième argument qui doivent être quoter ou non et peuvent être :
’rand(n)’
’binomial(n,p)’ ou binomial,n,p ou ’randbinomial(n,p)’
’multinomial(P,K)’ ou multinomial,P,K ou ’randmultinomial(P,K)’
’poisson(λ)’ ou poisson, λ ou ’randpoisson(λ)’
’normald(µ,σ)’ ou normald,µ,σ ou ’randnorm(µ,σ)’
’exponential(a)’ ou exponential,a ou ’randexp(a)’
’fisher(n,m)’ ou fisher,n,m ou ’randfisher(n,m)’
Attention la syntaxe sans quote marche avec les lois mais pas avec la commande rand... correspondante, donc par exemple les commandes randvector(3,normald,0,1) ou randvector(3,’normald(0,1)’) ou randvector(3,’randnorm(0,1)’) sont valables mais randvector(3,randnorm,0,1) n’est pas valable.
On tape :

randvector(3)

On obtient par exemple :

[-54,78,-29]

On tape :

randvector(3,5)

On tape :

randvector(3,’rand(5)’)

On obtient par exemple :

[1,2,4]

On tape :

randvector(3,normald,0,1)

Ou on tape :

randvector(3,’normald(0,1)’)

On obtient par exemple :

[1.39091705476,-0.136794772167,0.187312440336]

On tape :

randvector(3,2..4)

On obtient par exemple :

[3.92450003885,3.50059241243,2.7322040787]

On tape :

randvector(6,binomial,4,0.2)

Ou on tape :

randvector(6,’binomial(4,0.2)’)

On obtient par exemple :

[0,1,0,2,2,0]

On effectue 6 fois 4 tirages avec une probabilité de succés de 0.2 et à chaque fois le nombre de succés a été de :
0 puis 1, puis 0, puis 2, puis 2, puis 0.
On tape :

randvector(6,multinomial,[1/2,1/3,1/6])

Ou on tape :

randvector(6,’multinomial([1/2,1/3,1/6])’)

On obtient par exemple :

[3,2,1]

On effectue 6 fois le tirage d’un objet parmi 3 objets (tirage avec remise). Chaque objet a la probabilité [1/2,1/3,1/6] d’être tiré et ici on a obtenu :
3 fois l’objet ayant la probabilité 1/2 dêtre tirés, 2 fois l’objet ayant la probabilité 1/3 d’être tirés et 1 fois l’objet ayant la probabilité 1/6 d’être tirés. On tape :

randvector(10,multinomial,[1/2,1/3,1/6],[A,B,C])

Ou on tape :

randvector(10,’multinomial([1/2,1/3,1/6],[A,B,C])’)

On obtient par exemple :

[A,C,A,A,B,B,C,A,A,B]

c’est à dire la liste des objets qui ont été tirés. On tape :

randvector(10,multinomial,[1/2,1/3,1/6],["R","V","B"])

Ou on tape :

randvector(10,’multinomial([1/2,1/3,1/6],["R","V","B"])’)

On obtient par exemple :

["R","R","B","V","R","V","B","B","R","R"]

On tape :

randvector(6,poisson,1.3)

Ou on tape :

randvector(6,’poisson(1.3)’)

On obtient par exemple :

[1,0,1,1,1,1]

On tape :

randvector(4,exponential,1.2)

Ou on tape :

randvector(4,’exponential(1.2)’)

On obtient par exemple :

[1.67683756526,0.192937941271,0.580820253805,0.709352619633]

On tape :

randvector(5,fisher,4,6)

Ou on tape :

randvector(5,’fisher(4,6)’)

On obtient par exemple :

[0.17289703163,1.03709368317,0.161051043162,1.4407877128,0.358690104275]