Prendre un élément aléatoire dans un tableau

cs_zeguizmo Messages postés 138 Date d'inscription vendredi 1 août 2003 Statut Membre Dernière intervention 16 juillet 2009 - 14 janv. 2006 à 18:04
cs_zeguizmo Messages postés 138 Date d'inscription vendredi 1 août 2003 Statut Membre Dernière intervention 16 juillet 2009 - 16 janv. 2006 à 13:37
Salut a tous,



Je souhaite prendre un élément dans un tableau de facon totalement aléatoire.

Je m'explique avec un petit bout de code :



public class MyClass

{

public static string[,] MyArray = new string[2,2] {{"a","50"} , {"b","25"},{"c","25"}} ;

}


Cette fonction déclare un tableau : MyArray.

Je souhaite faire une fonction qui me prend un des trois éléments du
tableau, de facon totalement aléatoire, mais tout de même soumis à une
probabilité définie dans la deuxième colone du tableau.



Exemple, si il y a 3 élément, je veux qu'un élément - a - tombe 1 fois
sur deux (proba 50 %) donc la deuxieme colone prend pour valeur
50 a cet élément

Et les deux autres 1 fois sur 4 (proba 25 %) les colones prennent alors chacune 25



La somme des probas devra faire 100 % ce qui est le cas



Mon probleme est que je ne sais pas comment réaliser cette fonction,
j'avais pensé a une methode : générer un nombre aléatoire entre 0 et
100, et faire une petite modif pr la colone probabilité : les sommer.

Ainsi, on aurait notre tableau agencé de cette facon



a 50

b 75

c 100



Et si le nombre généré aléatoirement tombe entre 0 et 50, la fonction
retournerait a, entre 50 et 75 la fonction retournerait b, entre 75 et
100 la fonction retournerait c.



Exactement ce que je souhaite



Mais cette fonction "scannerait" tous les éléments du tableau (ou une
bonne partie) pour trouver quel élément tirer ce qui est très gourmant
en ressources, surtout que mes tableaux vont contenir bcp d'élements.



Y aurait-il une solution plus optimisée ?



Merci bcp d'avoir tout lu :) je sais que je m'exprime pas très clairement :)


ZeGuizmo

2 réponses

taoetc Messages postés 346 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 3 septembre 2007 3
16 janv. 2006 à 13:32
Tu as des algo de recherche qui te permettent de ne pas lire tous les éléments d'un tableau. : style recherche dicotomique ( il me semble)

algo du type :
je regarde l'élement central de ma liste :
je regarde si je suis supérieur ou égale à ma valeur médiane.
je définis ma nouvelle liste soit la moitié gauche, soit la moitié droite ,et je recommence l'algo

ou alors des algo detri style tri à bulle sur lesquels tu peux t'appuyer pour créer ton algo de recherche de l'élement que tu cherches ou l'émement le plus approchant


Be happy , by
Tao
0
cs_zeguizmo Messages postés 138 Date d'inscription vendredi 1 août 2003 Statut Membre Dernière intervention 16 juillet 2009
16 janv. 2006 à 13:37
OK je vais chercher dans cette voie.



Merci

ZeGuizmo
0
Rejoignez-nous