π
<-
Chat plein-écran
[^]

[RESOLU] mélange de cartes

[RESOLU] mélange de cartes

Message non lude proghy » 14 Avr 2012, 13:05

Bonjour, j'aimerais créer un algorithme pour mélanger un paquet de cartes. J'en ai trouvé un qui tire deux nombre aléatoires et inverse les cartes des numéros correspondant mais il est un peu lent. Auriez-vous une idée pour qu'il soit plus rapide, ou un algorithme différent ? En cherchant sur internet je suis tombé sur des exercices de polytech et je n'ai pas compris grand chose. Merci

For(C,1,56)
randInt(1,56)->A
randInt(1,56)->B
L6(A)->D
L6(B)->L6(A)
D->L6(B)
End
Dernière édition par proghy le 14 Avr 2012, 17:44, édité 1 fois.
Image
Avatar de l’utilisateur
proghy
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Prochain niv.: 5.5%
 
Messages: 9
Images: 1
Inscription: 09 Juil 2011, 15:42
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: terminale s

Re: mélange de cartes

Message non lude Persalteas » 14 Avr 2012, 14:45

A priori, tu as fais le truc le plus simple et le plus efficace. Il y a peut-être d'autres moyens, mais surement plus lourds.

L6 contient 56 numéros de 1 a 56, à la base ?
Avatar de l’utilisateur
PersalteasMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 6.2%
 
Messages: 2337
Images: 113
Inscription: 04 Fév 2010, 00:00
Localisation: Evry (France)
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: PhD candidate, Bioinformatics

Re: mélange de cartes

Message non lude critor » 14 Avr 2012, 15:01

Là, la complexité du mélange est directement proportionnelle à la longueur de la liste (ici, 56: on passe dans la boucle 56 fois).

Ce n'est donc à priori pas mauvais du tout, et je doute que l'on puisse faire foncièrement mieux sans altérer la qualité du mélange...
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 42.5%
 
Messages: 41498
Images: 14695
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: mélange de cartes

Message non lude proghy » 14 Avr 2012, 15:06

Oui, L6 contient 56 numéros. Je pensais qu'il y aurait moyen de faire un mélange qui utilise moins de nombres aléatoires (il me semble avoir entendu que c'est ce qui prends du temps), peut-être avec une fonction qui change selon le premier nombre aléatoire tiré et adopte un comportement irrégulier, mais je n'ai pas le niveau en maths... Puisque vous pensez que mon algorithme est assez efficace, je vais surement calculer la liste de nombre aléatoires pendant l'écran de présentation du programme. Merci de votre aide.
Image
Avatar de l’utilisateur
proghy
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Prochain niv.: 5.5%
 
Messages: 9
Images: 1
Inscription: 09 Juil 2011, 15:42
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: terminale s

Re: mélange de cartes

Message non lude Adriweb » 14 Avr 2012, 17:04

Le plus court possible, apparement :

Code: Tout sélectionner
:seq(X,X,1,56->L1
:rand(56->L2
:SortA(L2,L1


( http://z4.invisionfree.com/TIFreakware/index.php?showtopic=1177&st=0, numéro 19)
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.2%
 
Messages: 14616
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: mélange de cartes

Message non lude proghy » 14 Avr 2012, 17:41

Merci Adriweb. Super, c'est environ 2x plus rapide !
Dernière édition par proghy le 14 Avr 2012, 20:21, édité 1 fois.
Image
Avatar de l’utilisateur
proghy
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Prochain niv.: 5.5%
 
Messages: 9
Images: 1
Inscription: 09 Juil 2011, 15:42
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: terminale s

Re: [RESOLU] mélange de cartes

Message non lude Persalteas » 14 Avr 2012, 20:08

O_O

Waw, j'aurais été a des années lumières d'y penser...

(par contre je n'ai pas la permission de lire ton lien selon TIFW)
Avatar de l’utilisateur
PersalteasMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 6.2%
 
Messages: 2337
Images: 113
Inscription: 04 Fév 2010, 00:00
Localisation: Evry (France)
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: PhD candidate, Bioinformatics


Retourner vers TI-Basic

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 17 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1523 utilisateurs:
>1479 invités
>38 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)