π
<-

[RESOLU] mélange de cartes

[RESOLU] mélange de cartes

Unread postby proghy » 14 Apr 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
Last edited by proghy on 14 Apr 2012, 17:44, edited 1 time in total.
Image
User avatar
proghy
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Level up: 5.5%
 
Posts: 9
Images: 1
Joined: 09 Jul 2011, 15:42
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: terminale s

Re: mélange de cartes

Unread postby Persalteas » 14 Apr 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 ?
User avatar
PersalteasMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 6.2%
 
Posts: 2337
Images: 113
Joined: 04 Feb 2010, 00:00
Location: Evry (France)
Gender: Male
Calculator(s):
MyCalcs profile
Class: PhD candidate, Bioinformatics

Re: mélange de cartes

Unread postby critor » 14 Apr 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
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 53.6%
 
Posts: 42409
Images: 17129
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: mélange de cartes

Unread postby proghy » 14 Apr 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
User avatar
proghy
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Level up: 5.5%
 
Posts: 9
Images: 1
Joined: 09 Jul 2011, 15:42
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: terminale s

Re: mélange de cartes

Unread postby Adriweb » 14 Apr 2012, 17:04

Le plus court possible, apparement :

Code: Select all
: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)

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...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 80%
 
Posts: 14842
Images: 1133
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: mélange de cartes

Unread postby proghy » 14 Apr 2012, 17:41

Merci Adriweb. Super, c'est environ 2x plus rapide !
Last edited by proghy on 14 Apr 2012, 20:21, edited 1 time in total.
Image
User avatar
proghy
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Level up: 5.5%
 
Posts: 9
Images: 1
Joined: 09 Jul 2011, 15:42
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: terminale s

Re: [RESOLU] mélange de cartes

Unread postby Persalteas » 14 Apr 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)
User avatar
PersalteasMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 6.2%
 
Posts: 2337
Images: 113
Joined: 04 Feb 2010, 00:00
Location: Evry (France)
Gender: Male
Calculator(s):
MyCalcs profile
Class: PhD candidate, Bioinformatics


Return to TI-Basic

Who is online

Users browsing this forum: No registered users and 4 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
3840 utilisateurs:
>3810 invités
>23 membres
>7 robots
Record simultané (sur 6 mois):
7909 utilisateurs (le 09/07/2025)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)