Vous n'êtes pas identifié.

Annonces

Les pages de ce Forum sont exploitables par les Navigateurs FireFox, Google Chrome, Opera, Safari, Konqueror, Netscape & MSIE.
  • Index
  •  » Le Java
  •  » Sélection aléatoire d'un élément de tableau

#1 [↑] [↓]19/12/2007 13:16:58

Crazy
Super Admin azimuté
Crazy
Lieu: Côte d'Azur - FRANCE
Date d'inscription: 10/04/2006
Messages: 5696
Site web

Sélection aléatoire d'un élément de tableau

Soit un Objet (un tableau est un objet) appelé Tableau[] (de [0] à [n])
La sélection aléatoire d'un élément de celui-ci se fait ainsi :

Code :

alea=Math.floor(Math.random() * Tableau.length);

La Variable alea contient l'indice (dans la table) correspondant à l'élément tiré au sort.

Le Java (le JS aussi) est un langage Orienté Objet.
Donc, on utilise la propriété héritée length() de l'Objet Tableau Pour en déterminer le nombre d'éléments.
Puis on utilise la propriété intrinsèque floor() de la Classe Math pour arrondir(*) le nombre généré par random() * Tabeau.length
wink
Alain AKA Arma

(*) au nombre immédiatement inférieur, appartenant à l'ensemble N (nombres Entiers Naturels + 0 {[0 - ~[})

PS :Prenons l'Objet array().

Il possède les Propriétés suivantes :
- constructor --> Contient le constructeur de l'objet array() ;
- input --> Permet de faire une recherche dans le tableau à l'aide d'une expression régulière ;
- length --> Contient le nombre d'éléments de array() ;
- prototype --> Permet d'ajouter de nouvelles Propriétés personnalisées à l'Objet.

Il est possible de lui (appelons le Table) appliquer les Méthodes suivantes :
- Concat(tab1, tab2[, tab3,...]) Créer un tableau unique à partir de ceux donnés en paramètres ;
- Table.join() --> Renvoie une chaîne de caractères contenant tous les éléments du tableau ;
- Table.pop() --> Supprime le dernier élément du tableau et retourne sa valeur (POP en assembleur) ;
- Table.push(valeur1[, valeur2,...]) --> Ajoute un ou plusieurs éléments au tableau (PUSH en assembleur) ;
- Table.reverse() --> Inverse l'ordre des éléments du tableau ;
- Table.shift() --> Supprime le premier élément du tableau (SHIFT en assembleur) ;
- Table.slice() --> Renvoit un tableau contenant une partie (extraction) des éléments d'un tableau ;
- Table.splice() --> Ajoute/retire des éléments d'un tableau (il y a des paramètres) ;
- Table.sort() --> Pour trier les éléments d'un tableau (il y a des paramètres) ;
- Table.toString() --> Renvoit la chaîne de caractères correspondant à l'Objet Array ;
- Table.unshift() --> Pour rajouter un ou plusieurs élément au début du tableau ;
- Table.valueOf() --> Retourne la valeur de l'Objet Array auquel elle fait référence.

NB : Les Objets appartiennent à des Classes (Math [java.lang.Math] est une Classe)...
- Maths --> La classe java.lang.Math contient une série de méthodes et variables mathématiques.
La Classe Math fait partie du Package java.lang, elle est donc automatiquement importée.
(il n'est pas nécessaire de déclarer un Objet de type Math car les Méthodes sont toutes de type Static)

Bon, je sais, je vous ai saoulés... cool ...

[Vous devez être identifié pour voir le texte caché.]


Je suis Bon (avec un grand C) et Immortel... Jusqu'à preuve du contraire ! - I never die...
Chocoku - Sorcier Glouton - Tiger l'Osmose
MSnBetter ThanGoogle - Black Hattitude

I remember and I feel free! - I am the Killer of the Lambs!

Hors ligne

 

#2 [↑] [↓]21/12/2007 08:31:34

Crazy
Super Admin azimuté
Crazy
Lieu: Côte d'Azur - FRANCE
Date d'inscription: 10/04/2006
Messages: 5696
Site web

Re: Sélection aléatoire d'un élément de tableau

Un exemple concret (pour les membres) :
[Vous devez être identifié pour voir le texte caché.]
wink
Alain AKA Arma

Code :

<script type="text/javascript">
<!--
var pict=new Array( 
					"http://www.cigiema.fr/images/annuaire-du-maroc.gif", // Ne pas supprimer
					// Insérez votre ligne juste derrière celle-ci
					"http://www.cigiema.fr/images/gnome-corp.jpg", // Ne pas supprimer
					"http://www.cigiema.fr/images/portail-du-web.gif", // Ne pas supprimer
					"http://www.cigiema.fr/images/rss-news.jpg", // Ne pas supprimer
					"http://www.cigiema.fr/images/pink-seo.png", // Ne pas supprimer
					"http://www.cigiema.fr/images/tout-annuaire.jpg", // Ne pas supprimer
					"http://www.cigiema.fr/images/deep-camping.png"); // tableau des noms d'images
var lien=new Array( 
					"http://www.annuaire-du-maroc.ma/", // Ne pas supprimer
					// Insérez votre ligne juste derrière celle-ci
					"http://www.gnomecorp.fr/", // Ne pas supprimer
					"http://www.portailduweb.net/", // Ne pas supprimer
					"http://www.rssnews.fr/", // Ne pas supprimer
					"http://www.pink-seo.com/blog/", // Ne pas supprimer
					"http://www.tout-annuaire.com/", // Ne pas supprimer
					"http://www.deepcamping.com/"); // tableau des URLs de liens
var text=new Array( 
					"Annuaire du Maroc (Industrie - Artisanat - Tourisme)", // Ne pas supprimer
					// Insérez votre ligne juste derrière celle-ci
					"Gnome Corp - Référencement", // Ne pas supprimer
					"Le Portail du Web - Référencement", // Ne pas supprimer
					"RSSNews - Votre Page d Accueil Personnalisée", // Ne pas supprimer
					"Blog Pink SEO - Référencement", // Ne pas supprimer
					"Tout Annuaire (Annuaire Généraliste)", // Ne pas supprimer
					"Annuaire campings et hôtellerie de plein air"); // tableau des titres ou textes alternatifs
alea=Math.floor(Math.random() * pict.length); // tirer aléatoirement un nombre > 0 et <n
document.write("<a href='"+lien[alea]+"' target='_blank' title='"+text[alea]+"'><img border='0' src='"+pict[alea]+"' width='468' height='60' alt='"+text[alea]+"'></a>");
// -->
</script>

Je suis Bon (avec un grand C) et Immortel... Jusqu'à preuve du contraire ! - I never die...
Chocoku - Sorcier Glouton - Tiger l'Osmose
MSnBetter ThanGoogle - Black Hattitude

I remember and I feel free! - I am the Killer of the Lambs!

Hors ligne

 

#3 [↑] [↓]19/08/2011 10:27:32

Crazy
Super Admin azimuté
Crazy
Lieu: Côte d'Azur - FRANCE
Date d'inscription: 10/04/2006
Messages: 5696
Site web

Re: Sélection aléatoire d'un élément de tableau

Il est aussi possible de le faire en PHP...

Code :

<?php
// On initialise la table (bien que ce ne soit pas particulièrement nécessaire)...
$table = array();
// On remplit la table... Comme ci-dessous ou dynamiquement...
$table[] = 'xxx'; // indice 0
$table[] = 'yyy'; // indice 1
$table[] = 'zzz'; // indice 2
// On tire un élément aléatoire...
$result = $table[rand(0,count($table) - 1)]; // de 0 à 2 (car count($table) donne 3)
?>

Si la table a de multiples colonnes

Code :

<?php
// On initialise la table (bien que ce ne soit pas particulièrement nécessaire)...
$table = array();
// On remplit la table 3 x 3 (par exemple)...
$table[0][] = 'x1';
$table[0][] = 'x2';
$table[0][] = 'x3';
$table[1][] = 'y1';
$table[1][] = 'y2';
$table[1][] = 'y3';
$table[2][] = 'z1';
$table[2][] = 'z2';
$table[2][] = 'z3';
// OU BIEN
$table[] = ('x1','x2','x3'); // indices 0-0, 0-1, 0-2
$table[] = ('y1','y2','y3'); // indices 1-0, 1-1, 1-2
$table[] = ('z1','z2','z3'); // indices 2-0, 2-1, 2-2
// PUIS
$aleat = rand(0,count($table) - 1); // ne seront normalement comptées que les lignes
$result_1 = $table[$aleat][0];
$result_2 = $table[$aleat][1];
$result_3 = $table[$aleat][2];
// Si on veut tout dans la même variable, éléments séparés par des virgules
$result = implode(', ',$table[$aleat]);
// OU sous forme de table
$result = $table[$aleat]
// remplacer par print_r($table[$aleat]); pour afficher le tableau,
// puis reset($table[$aleat]); pour réinitialiser le pointeur du tableau
?>

wink
Alain AKA Arma

NB : Depuis PHP 4, inutile d'initialiser le générateur avec la fonction srand(),
print_r() affiche des informations lisibles à propos d'une variable.

PS : Ces codes n'ont pas été testés, je préfère utiliser le JS... Mais ils devraient fonctionner...


Je suis Bon (avec un grand C) et Immortel... Jusqu'à preuve du contraire ! - I never die...
Chocoku - Sorcier Glouton - Tiger l'Osmose
MSnBetter ThanGoogle - Black Hattitude

I remember and I feel free! - I am the Killer of the Lambs!

Hors ligne

 
  • Index
  •  » Le Java
  •  » Sélection aléatoire d'un élément de tableau

Pied de page des forums

Powered by PunBB modified
© Copyright 2002–2005, Rickard Andersson
© Interface & Functional Add-ons Copyright 2006-2007, by Crazy


RSS Forum CIGIEMA

© 2006-2012 / A. G.
CiGi€M@®, 1997-2012
IDDN Reproduction totale ou partielle strictement interdite
Contact :
/