π
<-
Chat plein-écran
[^]

[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):
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
Persalteas
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 94.8%
 
Posts: 2337
Images: 113
Joined: 04 Feb 2010, 00:00
Location: Evry (France)
Gender: Male
Calculator(s):
Class: PhD candidate, Bioinformatics

Online

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: 17.6%
 
Posts: 37930
Images: 10884
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti
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):
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)
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 57.9%
 
Posts: 13454
Images: 1101
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
Class: (ingénieur)
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):
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
Persalteas
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 94.8%
 
Posts: 2337
Images: 113
Joined: 04 Feb 2010, 00:00
Location: Evry (France)
Gender: Male
Calculator(s):
Class: PhD candidate, Bioinformatics


Return to TI-Basic

Who is online

Users browsing this forum: No registered users and 1 guest

-
Search
-
Social
-
Featured topics
Coque communautaire NumWorks spéciale à gagner!
Coque communautaire NumWorks spéciale à gagner!
Remplace ton ancienne fx-92 Collège ou Graph 35 par la Graph 90+E couleur. Pour tout achat, Casio te rembourse 10€ en cas de retour de ta fx-92 Collège, ou 15€ en cas de retour de ta Graph 35. Etiquette de retour fournie, pas de frais de port à payer, même les anciens modèles et machines non fonctionnelles sont acceptées. En partenariat avec les Restos du coeur.
10€ remboursés par Casio sur l'achat de ta calculatrice Graph 35 d'ici le 30 Septembre 2021
Reprise de ton ancienne fx-92 Collège à 5€ ou Graph 35 à 10€. Même non fonctionnelle ou ancien modèle. Etiquette de retour fournie, pas de frais de port à payer. En partenariat avec les Restos du coeur.
Comparaisons des meilleurs prix pour acheter sa calculatrice !
25€ remboursés par Casio sur l'achat de ta calculatrice fx-CP400 d'ici le 31 Octobre 2021
3€ remboursés par Casio sur l'achat de ta calculatrice fx-92 Collège d'ici le 30 Septembre 2021
Découvre les nouvelles fonctionnalités en Python de l'OS 5.5 pour la 83PCE/84+C-T Python Edition
Découvre les nouvelles fonctionnalités en Python de l'OS 5.2 pour les Nspire CX II
Omega, le fork étendant les capacités de ta NumWorks, même en mode examen !
1234567891011
-
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.
505 utilisateurs:
>489 invités
>11 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)

-
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)