Vous n'êtes pas identifié(e).
pour qui veut jouer à "Qui fait pareil en plus court" :P
Hors ligne
Hors ligne
Hors ligne
Hors ligne
Hors ligne
Hors ligne
Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
Hors ligne
Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
Hors ligne
On doit surement pouvoir faire mieux pour la jointure des lettres différentes, puisqu'en fait récupérer les lettres différentes, revient à filtrer un ensemble d'ensembles en ne conservant que ceux qui sont totalement disjoints...
Dommage que ce ne sont pas des nombres
Merci à vous
Dernière modification par Hypathie (02-01-2016 10:46:49)
Hors ligne
Merci à un copain pour la remarque.
Génial le python
Hors ligne
Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
Hors ligne
Hors ligne
Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
Hors ligne
Hors ligne
J'avoue, je ne sais pas ce que c'est qu'une spécification...
C'est le cahier des charges de ton script. Faut-il que les lettres en double n'apparaisse qu'une seule fois ou pas. En fait, je n'ai pas bien compris ce que tu disais dans ton post #9
Par contre, le premier script était faux pour le morceau "trouver les lettres différentes et leur nombre" dès qu'il y avait répétition de lettres différentes.
Fonctionnait :
s1 = abcd
s2 = cdef
Mais ne fonctionnait pas :
s1 = abcdabcd
s2 = cdefcdef
Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
Hors ligne
Hors ligne
edit à bendia : parce-qu'un joli sucre syntaxique comme ça, ça mérite une belle cloration syntaxique
Y − 3HG − Auto-hébergé
Hors ligne
Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
Hors ligne
Exemple :
- "i +1" : on met la variable trouvée dans la suite et on la met dans la liste après lui avoir ajouté 1
- for i in maliste : comme d'hab
- if i > 0 : on prend que les valeurs de maliste qui sont supérieures à 0
Y − 3HG − Auto-hébergé
Hors ligne
Voir cela dans la doc officielle :
https://docs.python.org/3/library/stdty … -frozenset
EDIT:
Pour le dire plus clairement, c'est la même chose que :
Voilà
Dernière modification par enicar (02-01-2016 19:43:32)
Hors ligne
Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
Hors ligne
Plus court, vraiment mais précise : en longueur de code ? en temps d'exécution ? ...
Je me suis donc posé la question du temps d’exécution des différents algo avec le code ci en-bas (je le met après parce que c'est long quand même). Il serait largement améliorable pour en sortir des résultats chiffrés, je ne vais donc vous livrer ici que mes premières constatation, et donner des axes d'amélioration du code si ça intéresse quelqu'un
J'ai donc mis les algo suivants :
hypathie1 : celui avec les intersections d'ensembles et les 6 print à suivre pour l'affichage des résultats
hypathie2 : le même avec un seul print
bendia : le miens avec les boucles for
thuban : celui de thuban avec les listes en compréhension
enicar : avec la différence symétrique
variable1 : identique à enicar en stockant l'intersection d'ensemble et la différence symétrique dans des variables
variables2 : identique à hypathie2, mais en stockant également les calculs d'ensemble dans des variables
Je me suis dit en premier lieu que plus le mot allait être long, plus la différence serait appréciable. J'ai donc pondu un petit algo pour générer un 2 mots aléatoires de longueur réglable et j'ai fait plusieurs tirages en modifiant ce nombre de lettres.
Première constatation, l'algo de Thuban et le mien n'ont pas le comportement attendus, puisqu'il laisse apparaître les doublons dans la liste des lettres différentes. Conclusion, dès que le nombre de lettre du mot augmente, le temps d'exécution s'envole. On constate cependant que l'algo de Thuban avec les listes en compréhension est plus rapide que le miens. Su un faible nombre de lettre, il est même plus rapide que hypathie2.
Les différences de temps d'exécution pour les autres algo semble s'écraser lorsque le nombre de lettre augmente. Cela serait à vérifier par des calculs statistiques, mais je présume que le temps d’exécution de l'instruction set devient prépondérant par rapport à l'intersection et différence symétrique d'ensembles.
L'appel à print consomme un temps important. Il suffit pour cela de comparer l'algo d'hypathie avec plusieurs print (je l'ai nommé hypathie) et celui avec un seul print nommé hypathie2.
L'utilisation de la différence symétrique indiqué par enicar (j'ai donc nomé la fonction enicar) apporte un gain de vitesse.
Je me suis dit que réaliser plusieurs fois ces intersection et différences symétrique (une fois pour la liste, une fois pour la longueur de cette liste) devait être coûteux. J'ai donc réalisé ses opération une seule fois en les stockant dans des variables. Il semble qu'on observe là aussi effectivement un gain de temps, alors que le code est plus long. Preuve que nombre de ligne et performances ne sont pas toujours proportionnel.
Ce qui serait bien à améliorer :
Automatiser la variation du nombre de lettre des mots
Multiplier le nombre de tirage pour pouvoir en tirer des résultats statistiques
Pondre un joli graphique avec ces résultats
Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
Hors ligne
Hors ligne
Hors ligne
bendia a écrit :"Le très pertinent Paskal a écrit"
Heu ... t'aurais pas un truc à me d'mander, par zazar ?
Si c'est un point choco df, ça doit obligatoirement passer par la trésorerie df des points chocos... donc aboule bendia !
saque eud dun (patois chtimi : fonce dedans)
Hors ligne