Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.

Forum Casio - Autres questions


Index du Forum » Autres questions » Mélanger une liste.
Hashby Hors ligne Membre Points: 455 Défis: 4 Message

Mélanger une liste.

Posté le 04/07/2021 14:26

Chères collègues, chers collègues programmeurs, je fais appelle à vous pour une question bien simple:
Comment mélanger efficacement une liste de nombres, sachant qu'il n'y a pas de fonction prédéfinie pour le faire.
J'ai déjà développé quelques techniques mais je ne suis pas satisfait du mélange.
Je prends toutes vos idées merci !


Lephenixnoir Hors ligne Administrateur Points: 21030 Défis: 143 Message

Citer : Posté le 04/07/2021 14:39 | #


Algo linéaire facile :

for i = 1 to n:
    j = random(i, n)
    swap T[i], T[j]

Il suffit de choisir le premier élément aléatoirement, puis le second aléatoirement dans les n-1 restants, etc. À chaque fois l'élément choisi pour occuper la position i est échangé avec l'élément initialement à la position i, ce qui ne pose aucun problème puisque de toute façon on les tire au hasard.

Ça te donne toutes les permutations de façon équiprobable d'ailleurs.
Fabcvlr Hors ligne Membre Points: 2251 Défis: 41 Message

Citer : Posté le 06/07/2021 14:30 | #


Voir le programme melangeur
L'expérience des autres, c'est comme une chandelle que l'on tient allumée dans son dos par une nuit de tempête !
Hashby Hors ligne Membre Points: 455 Défis: 4 Message

Citer : Posté le 06/07/2021 18:50 | #


Merci Fabcvlr mais je suis sur fxcp400... pas compatible avec les graph. De plus ma CFX9960 gt n'a pas de port usb.
J'aime la Fxcp400

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2021 | Il y a 51 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd