Bonjour,
J'ai créé un tableau :
var montableau = new Array (20)
dans lequel je désire entrer tous les nombres de 0 à 19 répartis
aléatoirement, par exemple :
montableau[o]=11
montableau[1]=6
montableau[2]=18
montableau[3]=0
etc...
Connaissez-vous une astuce pour obtenir cela ?
Merci et cordialement,
--
DaD
http://perso.wanadoo.fr/dejardin/
Contefleur
Bonjour, J'ai créé un tableau : var montableau = new Array (20) dans lequel je désire entrer tous les nombres de 0 à 19 répartis aléatoirement, par exemple : montableau[o] montableau[1]=6 montableau[2] montableau[3]=0 etc... Connaissez-vous une astuce pour obtenir cela ? Merci et cordialement, -- DaD http://perso.wanadoo.fr/dejardin/ Contefleur
La fonction random() renvoi un chiffre aléatoire entre 0 et 1. Donc pour toi il faut faire : montab[0] = Math.random(0) * 19;
pour les autres cases de ton tableau il suffit d'implémenter une boucle.
Shak.
"DaD" <danielno.dejardinspam@wanadoo.fr> a écrit dans le message de news:
2vcfe3F2j7cnjU1@uni-berlin.de...
Bonjour,
J'ai créé un tableau :
var montableau = new Array (20)
dans lequel je désire entrer tous les nombres de 0 à 19 répartis
aléatoirement, par exemple :
montableau[o]
montableau[1]=6
montableau[2]
montableau[3]=0
etc...
Connaissez-vous une astuce pour obtenir cela ?
Merci et cordialement,
--
DaD
http://perso.wanadoo.fr/dejardin/
Contefleur
La fonction random() renvoi un chiffre aléatoire entre 0 et 1.
Donc pour toi il faut faire :
montab[0] = Math.random(0) * 19;
pour les autres cases de ton tableau il suffit d'implémenter une boucle.
Bonjour, J'ai créé un tableau : var montableau = new Array (20) dans lequel je désire entrer tous les nombres de 0 à 19 répartis aléatoirement, par exemple : montableau[o] montableau[1]=6 montableau[2] montableau[3]=0 etc... Connaissez-vous une astuce pour obtenir cela ? Merci et cordialement, -- DaD http://perso.wanadoo.fr/dejardin/ Contefleur
La fonction random() renvoi un chiffre aléatoire entre 0 et 1. Donc pour toi il faut faire : montab[0] = Math.random(0) * 19;
pour les autres cases de ton tableau il suffit d'implémenter une boucle.
Shak.
YD
J'ai créé un tableau : var montableau = new Array (20) dans lequel je désire entrer tous les nombres de 0 à 19 répartis aléatoirement, par exemple : montableau[o] montableau[1]=6 montableau[2] montableau[3]=0 etc... Connaissez-vous une astuce pour obtenir cela ?
La fonction random() renvoi un chiffre aléatoire entre 0 et 1. Donc pour toi il faut faire : montab[0] = Math.random(0) * 19;
pour les autres cases de ton tableau il suffit d'implémenter une boucle.
Et pour éliminer les doubles de façon efficace ?
Je propose une solution qui fonctionne avec les moteurs javascript relativement récents (utilisation de splice et push - javascript 1.3, JScript 5.5), mais le principe est adaptable pour n'utiliser que des méthodes des versions antérieures si c'est nécessaire -- la boucle serait plus longue...
Pour ceux qui ne connaîtraient pas, push ajoute un ou plusieurs éléments à la fin d'un Array, splice enlève n éléments consécutifs à partir de l'élément d'indice k d'un tableau et les renvoie sous forme d'un autre tableau : a.splice(n, k) -> tableau de k élts formé des élts a[n] jusqu'à a[n + k - 1] ET a se voit diminué de ces k éléments.
Le principe, on crée un tableau auxiliaire 'aux' de longueur 'len' rempli avec les valeurs 0, 1, ... , len-1.
On enlève de ce tableau un élément pris aléatoirement, qu'on ajoute au tableau résultat 'res' (intérieur de la boucle while).
Qunad il ne reste plus d'élément dans 'aux' on renvoie 'res' (boucle while suivie de return).
function aleaArray(len){ var i, aux = Array(), res = Array(); // construction du tableau auxiliaire 0, 1, ... ,len-1 for(i=0;i<len;i++) aux.push(i); // remplissage du tableau résultat while(aux.length){ i=aux.length*Math.random(); res.push(aux.splice(i,1)[0]); } return res; }
document.write(aleaArray(20));
-- Y.D.
J'ai créé un tableau :
var montableau = new Array (20)
dans lequel je désire entrer tous les nombres de 0 à 19 répartis
aléatoirement, par exemple :
montableau[o]
montableau[1]=6
montableau[2]
montableau[3]=0
etc...
Connaissez-vous une astuce pour obtenir cela ?
La fonction random() renvoi un chiffre aléatoire entre 0 et 1.
Donc pour toi il faut faire :
montab[0] = Math.random(0) * 19;
pour les autres cases de ton tableau il suffit d'implémenter une boucle.
Et pour éliminer les doubles de façon efficace ?
Je propose une solution qui fonctionne avec les moteurs javascript
relativement récents (utilisation de splice et push - javascript 1.3,
JScript 5.5), mais le principe est adaptable pour n'utiliser que des
méthodes des versions antérieures si c'est nécessaire -- la boucle
serait plus longue...
Pour ceux qui ne connaîtraient pas, push ajoute un ou plusieurs éléments
à la fin d'un Array, splice enlève n éléments consécutifs à partir de l'élément
d'indice k d'un tableau et les renvoie sous forme d'un autre tableau :
a.splice(n, k) -> tableau de k élts formé des élts a[n] jusqu'à a[n + k - 1]
ET a se voit diminué de ces k éléments.
Le principe, on crée un tableau auxiliaire 'aux' de longueur 'len' rempli
avec les valeurs 0, 1, ... , len-1.
On enlève de ce tableau un élément pris aléatoirement, qu'on ajoute au
tableau résultat 'res' (intérieur de la boucle while).
Qunad il ne reste plus d'élément dans 'aux' on renvoie 'res' (boucle while
suivie de return).
function aleaArray(len){
var i, aux = Array(), res = Array();
// construction du tableau auxiliaire 0, 1, ... ,len-1
for(i=0;i<len;i++)
aux.push(i);
// remplissage du tableau résultat
while(aux.length){
i=aux.length*Math.random();
res.push(aux.splice(i,1)[0]);
}
return res;
}
J'ai créé un tableau : var montableau = new Array (20) dans lequel je désire entrer tous les nombres de 0 à 19 répartis aléatoirement, par exemple : montableau[o] montableau[1]=6 montableau[2] montableau[3]=0 etc... Connaissez-vous une astuce pour obtenir cela ?
La fonction random() renvoi un chiffre aléatoire entre 0 et 1. Donc pour toi il faut faire : montab[0] = Math.random(0) * 19;
pour les autres cases de ton tableau il suffit d'implémenter une boucle.
Et pour éliminer les doubles de façon efficace ?
Je propose une solution qui fonctionne avec les moteurs javascript relativement récents (utilisation de splice et push - javascript 1.3, JScript 5.5), mais le principe est adaptable pour n'utiliser que des méthodes des versions antérieures si c'est nécessaire -- la boucle serait plus longue...
Pour ceux qui ne connaîtraient pas, push ajoute un ou plusieurs éléments à la fin d'un Array, splice enlève n éléments consécutifs à partir de l'élément d'indice k d'un tableau et les renvoie sous forme d'un autre tableau : a.splice(n, k) -> tableau de k élts formé des élts a[n] jusqu'à a[n + k - 1] ET a se voit diminué de ces k éléments.
Le principe, on crée un tableau auxiliaire 'aux' de longueur 'len' rempli avec les valeurs 0, 1, ... , len-1.
On enlève de ce tableau un élément pris aléatoirement, qu'on ajoute au tableau résultat 'res' (intérieur de la boucle while).
Qunad il ne reste plus d'élément dans 'aux' on renvoie 'res' (boucle while suivie de return).
function aleaArray(len){ var i, aux = Array(), res = Array(); // construction du tableau auxiliaire 0, 1, ... ,len-1 for(i=0;i<len;i++) aux.push(i); // remplissage du tableau résultat while(aux.length){ i=aux.length*Math.random(); res.push(aux.splice(i,1)[0]); } return res; }
document.write(aleaArray(20));
-- Y.D.
ASM
Bonjour, J'ai créé un tableau : var montableau = new Array (20) dans lequel je désire entrer tous les nombres de 0 à 19 répartis aléatoirement, par exemple : montableau[o] montableau[1]=6 montableau[2] montableau[3]=0 etc... Connaissez-vous une astuce pour obtenir cela ? Merci et cordialement,
Normalement on fait le contraire ... Le tableau est ordonné et on s'en sert aléatoirement. (c'est nettement + facile)
-- ******************************************************* Stéphane MORIAUX et son vieux Mac Aide Pages Perso (images & couleurs, formulaire, CHP) http://perso.wanadoo.fr/stephane.moriaux/internet/ *******************************************************
Bonjour,
J'ai créé un tableau :
var montableau = new Array (20)
dans lequel je désire entrer tous les nombres de 0 à 19 répartis
aléatoirement, par exemple :
montableau[o]
montableau[1]=6
montableau[2]
montableau[3]=0
etc...
Connaissez-vous une astuce pour obtenir cela ?
Merci et cordialement,
Normalement on fait le contraire ...
Le tableau est ordonné et on s'en sert aléatoirement.
(c'est nettement + facile)
--
*******************************************************
Stéphane MORIAUX et son vieux Mac
Aide Pages Perso (images & couleurs, formulaire, CHP)
http://perso.wanadoo.fr/stephane.moriaux/internet/
*******************************************************
Bonjour, J'ai créé un tableau : var montableau = new Array (20) dans lequel je désire entrer tous les nombres de 0 à 19 répartis aléatoirement, par exemple : montableau[o] montableau[1]=6 montableau[2] montableau[3]=0 etc... Connaissez-vous une astuce pour obtenir cela ? Merci et cordialement,
Normalement on fait le contraire ... Le tableau est ordonné et on s'en sert aléatoirement. (c'est nettement + facile)
-- ******************************************************* Stéphane MORIAUX et son vieux Mac Aide Pages Perso (images & couleurs, formulaire, CHP) http://perso.wanadoo.fr/stephane.moriaux/internet/ *******************************************************
ASM
"DaD" a écrit dans le message de news:
Bonjour, J'ai créé un tableau : var montableau = new Array (20) dans lequel je désire entrer tous les nombres de 0 à 19 répartis aléatoirement,
La fonction random() renvoi un chiffre aléatoire entre 0 et 1. Donc pour toi il faut faire : montab[0] = Math.random(0) * 19;
pour les autres cases de ton tableau il suffit d'implémenter une boucle.
Je n'ai jamais vu que random obligeait à passer tous les chiffres voulus (ici : de 0 à 19) Alors là on a le premier (et on ne sait pas lequel c'est) comment donner les autres ?
Non, le plus simple est de faire un ttableau ordonné (ou pas) et de s'en servir aléatoirement
truc = montab[parseInt(Math.random(0)*19,10)];
-- ******************************************************* Stéphane MORIAUX et son vieux Mac Aide Pages Perso (images & couleurs, formulaire, CHP) http://perso.wanadoo.fr/stephane.moriaux/internet/ *******************************************************
"DaD" <danielno.dejardinspam@wanadoo.fr> a écrit dans le message de news:
2vcfe3F2j7cnjU1@uni-berlin.de...
Bonjour,
J'ai créé un tableau :
var montableau = new Array (20)
dans lequel je désire entrer tous les nombres de 0 à 19 répartis
aléatoirement,
La fonction random() renvoi un chiffre aléatoire entre 0 et 1.
Donc pour toi il faut faire :
montab[0] = Math.random(0) * 19;
pour les autres cases de ton tableau il suffit d'implémenter une boucle.
Je n'ai jamais vu que random obligeait à passer tous les chiffres
voulus (ici : de 0 à 19)
Alors là on a le premier (et on ne sait pas lequel c'est)
comment donner les autres ?
Non, le plus simple est de faire un ttableau ordonné (ou pas)
et de s'en servir aléatoirement
truc = montab[parseInt(Math.random(0)*19,10)];
--
*******************************************************
Stéphane MORIAUX et son vieux Mac
Aide Pages Perso (images & couleurs, formulaire, CHP)
http://perso.wanadoo.fr/stephane.moriaux/internet/
*******************************************************
Bonjour, J'ai créé un tableau : var montableau = new Array (20) dans lequel je désire entrer tous les nombres de 0 à 19 répartis aléatoirement,
La fonction random() renvoi un chiffre aléatoire entre 0 et 1. Donc pour toi il faut faire : montab[0] = Math.random(0) * 19;
pour les autres cases de ton tableau il suffit d'implémenter une boucle.
Je n'ai jamais vu que random obligeait à passer tous les chiffres voulus (ici : de 0 à 19) Alors là on a le premier (et on ne sait pas lequel c'est) comment donner les autres ?
Non, le plus simple est de faire un ttableau ordonné (ou pas) et de s'en servir aléatoirement
truc = montab[parseInt(Math.random(0)*19,10)];
-- ******************************************************* Stéphane MORIAUX et son vieux Mac Aide Pages Perso (images & couleurs, formulaire, CHP) http://perso.wanadoo.fr/stephane.moriaux/internet/ *******************************************************
ASM
J'ai créé un tableau : var montableau = new Array (20) dans lequel je désire entrer tous les nombres de 0 à 19 répartis aléatoirement
Donc pour toi il faut faire : montab[0] = Math.random(0) * 19;
pour les autres cases de ton tableau il suffit d'implémenter une boucle.
Et pour éliminer les doubles de façon efficace ?
J'allais le dire !
Je propose une solution qui fonctionne avec les moteurs javascript relativement récents (utilisation de splice et push - javascript 1.3, JScript 5.5), mais le principe est adaptable pour n'utiliser que des méthodes des versions antérieures si c'est nécessaire -- la boucle serait plus longue...
Tout ceci est super interressant (on va l'archiver)
Mais tt de même est-ce bien nécessaire ? quand il est si facile d'utiliser aléatoirement un tableau déjà fait ?
truc = montab[parseInt(Math.random()*19,10)];
Pour ceux qui ne connaîtraient pas, push ajoute un ou plusieurs éléments à la fin d'un Array, splice enlève n éléments consécutifs à partir de l'élément d'indice k d'un tableau et les renvoie sous forme d'un autre tableau : a.splice(n, k) -> tableau de k élts formé des élts a[n] jusqu'à a[n + k - 1] ET a se voit diminué de ces k éléments.
Le principe, on crée un tableau auxiliaire 'aux' de longueur 'len' rempli avec les valeurs 0, 1, ... , len-1.
On enlève de ce tableau un élément pris aléatoirement, qu'on ajoute au tableau résultat 'res' (intérieur de la boucle while).
Qunad il ne reste plus d'élément dans 'aux' on renvoie 'res' (boucle while suivie de return).
function aleaArray(len){ var i, aux = Array(), res = Array(); // construction du tableau auxiliaire 0, 1, ... ,len-1 for(i=0;i<len;i++) aux.push(i); // remplissage du tableau résultat while(aux.length){ i=aux.length*Math.random(); res.push(aux.splice(i,1)[0]); } return res; }
document.write(aleaArray(20));
-- Y.D.
-- ******************************************************* Stéphane MORIAUX et son vieux Mac Aide Pages Perso (images & couleurs, formulaire, CHP) http://perso.wanadoo.fr/stephane.moriaux/internet/ *******************************************************
J'ai créé un tableau :
var montableau = new Array (20)
dans lequel je désire entrer tous les nombres de 0 à 19 répartis
aléatoirement
Donc pour toi il faut faire :
montab[0] = Math.random(0) * 19;
pour les autres cases de ton tableau il suffit d'implémenter une boucle.
Et pour éliminer les doubles de façon efficace ?
J'allais le dire !
Je propose une solution qui fonctionne avec les moteurs javascript
relativement récents (utilisation de splice et push - javascript 1.3,
JScript 5.5), mais le principe est adaptable pour n'utiliser que des
méthodes des versions antérieures si c'est nécessaire -- la boucle
serait plus longue...
Tout ceci est super interressant (on va l'archiver)
Mais tt de même est-ce bien nécessaire ?
quand il est si facile d'utiliser aléatoirement un tableau déjà fait ?
truc = montab[parseInt(Math.random()*19,10)];
Pour ceux qui ne connaîtraient pas, push ajoute un ou plusieurs éléments
à la fin d'un Array, splice enlève n éléments consécutifs à partir de l'élément
d'indice k d'un tableau et les renvoie sous forme d'un autre tableau :
a.splice(n, k) -> tableau de k élts formé des élts a[n] jusqu'à a[n + k - 1]
ET a se voit diminué de ces k éléments.
Le principe, on crée un tableau auxiliaire 'aux' de longueur 'len' rempli
avec les valeurs 0, 1, ... , len-1.
On enlève de ce tableau un élément pris aléatoirement, qu'on ajoute au
tableau résultat 'res' (intérieur de la boucle while).
Qunad il ne reste plus d'élément dans 'aux' on renvoie 'res' (boucle while
suivie de return).
function aleaArray(len){
var i, aux = Array(), res = Array();
// construction du tableau auxiliaire 0, 1, ... ,len-1
for(i=0;i<len;i++)
aux.push(i);
// remplissage du tableau résultat
while(aux.length){
i=aux.length*Math.random();
res.push(aux.splice(i,1)[0]);
}
return res;
}
document.write(aleaArray(20));
--
Y.D.
--
*******************************************************
Stéphane MORIAUX et son vieux Mac
Aide Pages Perso (images & couleurs, formulaire, CHP)
http://perso.wanadoo.fr/stephane.moriaux/internet/
*******************************************************
J'ai créé un tableau : var montableau = new Array (20) dans lequel je désire entrer tous les nombres de 0 à 19 répartis aléatoirement
Donc pour toi il faut faire : montab[0] = Math.random(0) * 19;
pour les autres cases de ton tableau il suffit d'implémenter une boucle.
Et pour éliminer les doubles de façon efficace ?
J'allais le dire !
Je propose une solution qui fonctionne avec les moteurs javascript relativement récents (utilisation de splice et push - javascript 1.3, JScript 5.5), mais le principe est adaptable pour n'utiliser que des méthodes des versions antérieures si c'est nécessaire -- la boucle serait plus longue...
Tout ceci est super interressant (on va l'archiver)
Mais tt de même est-ce bien nécessaire ? quand il est si facile d'utiliser aléatoirement un tableau déjà fait ?
truc = montab[parseInt(Math.random()*19,10)];
Pour ceux qui ne connaîtraient pas, push ajoute un ou plusieurs éléments à la fin d'un Array, splice enlève n éléments consécutifs à partir de l'élément d'indice k d'un tableau et les renvoie sous forme d'un autre tableau : a.splice(n, k) -> tableau de k élts formé des élts a[n] jusqu'à a[n + k - 1] ET a se voit diminué de ces k éléments.
Le principe, on crée un tableau auxiliaire 'aux' de longueur 'len' rempli avec les valeurs 0, 1, ... , len-1.
On enlève de ce tableau un élément pris aléatoirement, qu'on ajoute au tableau résultat 'res' (intérieur de la boucle while).
Qunad il ne reste plus d'élément dans 'aux' on renvoie 'res' (boucle while suivie de return).
function aleaArray(len){ var i, aux = Array(), res = Array(); // construction du tableau auxiliaire 0, 1, ... ,len-1 for(i=0;i<len;i++) aux.push(i); // remplissage du tableau résultat while(aux.length){ i=aux.length*Math.random(); res.push(aux.splice(i,1)[0]); } return res; }
document.write(aleaArray(20));
-- Y.D.
-- ******************************************************* Stéphane MORIAUX et son vieux Mac Aide Pages Perso (images & couleurs, formulaire, CHP) http://perso.wanadoo.fr/stephane.moriaux/internet/ *******************************************************
DaD
Bonjour, J'ai créé un tableau : var montableau = new Array (20) dans lequel je désire entrer tous les nombres de 0 à 19 répartis aléatoirement, par exemple : montableau[o] montableau[1]=6 montableau[2] montableau[3]=0 etc... Connaissez-vous une astuce pour obtenir cela ?
Bonjour et merci de vos interventions.
Le pourquoi de ma question : je programme un jeu (réussite). Pour cela j'ai créé des boutons identifiés par des numéros : 'b'1 , 'b'2 , 'b'3 .... etc...'b'20... Le clic sur le bouton 'b'3 doit chercher le contenu de l'élément montableau[3] et, en début de jeu, ce contenu doit être aléatoire. (aucun élément du tableau ne devant faire doublon) Pour l'instant, mon programme fonctionne mais je n'arrivais pas à résoudre ce problème des doublons. Je vais essayer vos solutions. Quand mon script sera finalisé, je vous présenterai le jeu. Merci encore et bien cordialement,
-- DaD http://perso.wanadoo.fr/dejardin/ Contefleur
Bonjour,
J'ai créé un tableau :
var montableau = new Array (20)
dans lequel je désire entrer tous les nombres de 0 à 19 répartis
aléatoirement, par exemple :
montableau[o]
montableau[1]=6
montableau[2]
montableau[3]=0
etc...
Connaissez-vous une astuce pour obtenir cela ?
Bonjour et merci de vos interventions.
Le pourquoi de ma question : je programme un jeu (réussite).
Pour cela j'ai créé des boutons identifiés par des numéros : 'b'1 , 'b'2
, 'b'3 .... etc...'b'20...
Le clic sur le bouton 'b'3 doit chercher le contenu de l'élément
montableau[3] et, en début de jeu, ce contenu doit être aléatoire.
(aucun élément du tableau ne devant faire doublon)
Pour l'instant, mon programme fonctionne mais je n'arrivais pas à
résoudre ce problème des doublons.
Je vais essayer vos solutions.
Quand mon script sera finalisé, je vous présenterai le jeu.
Merci encore et bien cordialement,
--
DaD
http://perso.wanadoo.fr/dejardin/
Contefleur
Bonjour, J'ai créé un tableau : var montableau = new Array (20) dans lequel je désire entrer tous les nombres de 0 à 19 répartis aléatoirement, par exemple : montableau[o] montableau[1]=6 montableau[2] montableau[3]=0 etc... Connaissez-vous une astuce pour obtenir cela ?
Bonjour et merci de vos interventions.
Le pourquoi de ma question : je programme un jeu (réussite). Pour cela j'ai créé des boutons identifiés par des numéros : 'b'1 , 'b'2 , 'b'3 .... etc...'b'20... Le clic sur le bouton 'b'3 doit chercher le contenu de l'élément montableau[3] et, en début de jeu, ce contenu doit être aléatoire. (aucun élément du tableau ne devant faire doublon) Pour l'instant, mon programme fonctionne mais je n'arrivais pas à résoudre ce problème des doublons. Je vais essayer vos solutions. Quand mon script sera finalisé, je vous présenterai le jeu. Merci encore et bien cordialement,
-- DaD http://perso.wanadoo.fr/dejardin/ Contefleur
DaD
J'ai créé un tableau : var montableau = new Array (20) dans lequel je désire entrer tous les nombres de 0 à 19 répartis aléatoirement, par exemple : montableau[o] montableau[1]=6 montableau[2] montableau[3]=0 etc... Connaissez-vous une astuce pour obtenir cela ?
Je propose une solution qui fonctionne avec les moteurs javascript relativement récents (utilisation de splice et push - javascript 1.3, JScript 5.5)
function aleaArray(len){ var i, aux = Array(), res = Array(); // construction du tableau auxiliaire 0, 1, ... ,len-1 for(i=0;i<len;i++) aux.push(i); // remplissage du tableau résultat while(aux.length){ i=aux.length*Math.random(); res.push(aux.splice(i,1)[0]); } return res; }
document.write(aleaArray(20));
Bonjour, Voici un script précieux qui fonctionne à merveille ! Il me suffit de définir *len* à la valeur qui me convient, par exemple lenR document.write(aleaArray(len)); pour obtenir la répartition aléatoire d'un jeu de 52 cartes. Super, merci encore. Et merci aussi aux autres intervenants (en particulier ASM qui m'a déjà plusieurs fois dépanné) :-) Amicalement, -- DaD http://perso.wanadoo.fr/dejardin/ Contefleur
J'ai créé un tableau :
var montableau = new Array (20)
dans lequel je désire entrer tous les nombres de 0 à 19 répartis
aléatoirement, par exemple :
montableau[o]
montableau[1]=6
montableau[2]
montableau[3]=0
etc...
Connaissez-vous une astuce pour obtenir cela ?
Je propose une solution qui fonctionne avec les moteurs javascript
relativement récents (utilisation de splice et push - javascript 1.3,
JScript 5.5)
function aleaArray(len){
var i, aux = Array(), res = Array();
// construction du tableau auxiliaire 0, 1, ... ,len-1
for(i=0;i<len;i++)
aux.push(i);
// remplissage du tableau résultat
while(aux.length){
i=aux.length*Math.random();
res.push(aux.splice(i,1)[0]);
}
return res;
}
document.write(aleaArray(20));
Bonjour,
Voici un script précieux qui fonctionne à merveille !
Il me suffit de définir *len* à la valeur qui me convient, par exemple
lenR
document.write(aleaArray(len));
pour obtenir la répartition aléatoire d'un jeu de 52 cartes.
Super, merci encore.
Et merci aussi aux autres intervenants (en particulier ASM qui m'a déjà
plusieurs fois dépanné) :-)
Amicalement,
--
DaD
http://perso.wanadoo.fr/dejardin/
Contefleur
J'ai créé un tableau : var montableau = new Array (20) dans lequel je désire entrer tous les nombres de 0 à 19 répartis aléatoirement, par exemple : montableau[o] montableau[1]=6 montableau[2] montableau[3]=0 etc... Connaissez-vous une astuce pour obtenir cela ?
Je propose une solution qui fonctionne avec les moteurs javascript relativement récents (utilisation de splice et push - javascript 1.3, JScript 5.5)
function aleaArray(len){ var i, aux = Array(), res = Array(); // construction du tableau auxiliaire 0, 1, ... ,len-1 for(i=0;i<len;i++) aux.push(i); // remplissage du tableau résultat while(aux.length){ i=aux.length*Math.random(); res.push(aux.splice(i,1)[0]); } return res; }
document.write(aleaArray(20));
Bonjour, Voici un script précieux qui fonctionne à merveille ! Il me suffit de définir *len* à la valeur qui me convient, par exemple lenR document.write(aleaArray(len)); pour obtenir la répartition aléatoire d'un jeu de 52 cartes. Super, merci encore. Et merci aussi aux autres intervenants (en particulier ASM qui m'a déjà plusieurs fois dépanné) :-) Amicalement, -- DaD http://perso.wanadoo.fr/dejardin/ Contefleur
shak
"YD" a écrit dans le message de news: 41914e68$0$31019$
J'ai créé un tableau : var montableau = new Array (20) dans lequel je désire entrer tous les nombres de 0 à 19 répartis aléatoirement, par exemple : montableau[o] montableau[1]=6 montableau[2] montableau[3]=0 etc... Connaissez-vous une astuce pour obtenir cela ?
La fonction random() renvoi un chiffre aléatoire entre 0 et 1. Donc pour toi il faut faire : montab[0] = Math.random(0) * 19;
pour les autres cases de ton tableau il suffit d'implémenter une boucle.
Et pour éliminer les doubles de façon efficace ? Oooops! J'avais pas fait attention que les valeurs a mettre dans le tableau
devaient etre uniques.
Shak.
"YD" <yd-news@free.fr> a écrit dans le message de news:
41914e68$0$31019$636a15ce@news.free.fr...
J'ai créé un tableau :
var montableau = new Array (20)
dans lequel je désire entrer tous les nombres de 0 à 19 répartis
aléatoirement, par exemple :
montableau[o]
montableau[1]=6
montableau[2]
montableau[3]=0
etc...
Connaissez-vous une astuce pour obtenir cela ?
La fonction random() renvoi un chiffre aléatoire entre 0 et 1.
Donc pour toi il faut faire :
montab[0] = Math.random(0) * 19;
pour les autres cases de ton tableau il suffit d'implémenter une boucle.
Et pour éliminer les doubles de façon efficace ?
Oooops! J'avais pas fait attention que les valeurs a mettre dans le tableau
"YD" a écrit dans le message de news: 41914e68$0$31019$
J'ai créé un tableau : var montableau = new Array (20) dans lequel je désire entrer tous les nombres de 0 à 19 répartis aléatoirement, par exemple : montableau[o] montableau[1]=6 montableau[2] montableau[3]=0 etc... Connaissez-vous une astuce pour obtenir cela ?
La fonction random() renvoi un chiffre aléatoire entre 0 et 1. Donc pour toi il faut faire : montab[0] = Math.random(0) * 19;
pour les autres cases de ton tableau il suffit d'implémenter une boucle.
Et pour éliminer les doubles de façon efficace ? Oooops! J'avais pas fait attention que les valeurs a mettre dans le tableau
devaient etre uniques.
Shak.
YD
Mais tt de même est-ce bien nécessaire ? quand il est si facile d'utiliser aléatoirement un tableau déjà fait ?
truc = montab[parseInt(Math.random()*19,10)];
Toujours la même chose, deux appels successifs peuvent retourner le même nombre, le problème des doublons n'est pas résolu...
-- Y.D.
Mais tt de même est-ce bien nécessaire ?
quand il est si facile d'utiliser aléatoirement un tableau déjà fait ?
truc = montab[parseInt(Math.random()*19,10)];
Toujours la même chose, deux appels successifs peuvent retourner le même
nombre, le problème des doublons n'est pas résolu...
Mais tt de même est-ce bien nécessaire ? quand il est si facile d'utiliser aléatoirement un tableau déjà fait ?
truc = montab[parseInt(Math.random()*19,10)];
Toujours la même chose, deux appels successifs peuvent retourner le même nombre, le problème des doublons n'est pas résolu...
-- Y.D.
ASM
Mais tt de même est-ce bien nécessaire ? quand il est si facile d'utiliser aléatoirement un tableau déjà fait ?
truc = montab[parseInt(Math.random()*19,10)];
Toujours la même chose, deux appels successifs peuvent retourner le même nombre, le problème des doublons n'est pas résolu...
Je m'en fous dans ce cas d'espèce du moins si on ne fait qu'un tirage bien sûr. Il me semblait qu'on avait besoin que d'un nbre parmi 20 ? si ce n'est pas ça je peux donc aller me rhabiller :-/
-- ******************************************************* Stéphane MORIAUX et son vieux Mac Aide Pages Perso (images & couleurs, formulaire, CHP) http://perso.wanadoo.fr/stephane.moriaux/internet/ *******************************************************
Mais tt de même est-ce bien nécessaire ?
quand il est si facile d'utiliser aléatoirement un tableau déjà fait ?
truc = montab[parseInt(Math.random()*19,10)];
Toujours la même chose, deux appels successifs peuvent retourner le même
nombre, le problème des doublons n'est pas résolu...
Je m'en fous dans ce cas d'espèce
du moins si on ne fait qu'un tirage bien sûr.
Il me semblait qu'on avait besoin que d'un nbre parmi 20 ?
si ce n'est pas ça je peux donc aller me rhabiller :-/
--
*******************************************************
Stéphane MORIAUX et son vieux Mac
Aide Pages Perso (images & couleurs, formulaire, CHP)
http://perso.wanadoo.fr/stephane.moriaux/internet/
*******************************************************
Mais tt de même est-ce bien nécessaire ? quand il est si facile d'utiliser aléatoirement un tableau déjà fait ?
truc = montab[parseInt(Math.random()*19,10)];
Toujours la même chose, deux appels successifs peuvent retourner le même nombre, le problème des doublons n'est pas résolu...
Je m'en fous dans ce cas d'espèce du moins si on ne fait qu'un tirage bien sûr. Il me semblait qu'on avait besoin que d'un nbre parmi 20 ? si ce n'est pas ça je peux donc aller me rhabiller :-/
-- ******************************************************* Stéphane MORIAUX et son vieux Mac Aide Pages Perso (images & couleurs, formulaire, CHP) http://perso.wanadoo.fr/stephane.moriaux/internet/ *******************************************************