Page 2 sur 2

Re: [R] Arbres et feuilles

Posté : sam. 09 août 2014 13:59
par PandiPanda
Sinon ceci?
avec cette udf
► Afficher le texte
resultat:
► Afficher le texte

Re: [R] Arbres et feuilles

Posté : sam. 09 août 2014 17:09
par sozary
Ah....... Je vais tester les deux méthodes pour savoir laquelle me parrait la plus facile à utiliser!!
Merci pour tout!

Re: [R] Arbres et feuilles

Posté : dim. 10 août 2014 18:23
par mikell
sozary a écrit :Donc un codage de Huffman serait inenvisageable avec Autoit?
J'ai pas dit ça :shock:
Je voulais juste dire qu'une solution Autoit risque fort d'être lourdasse

En se basant strictement sur l'exemple proposé dans la page du site dont tu as tiré la belle image du post n°1 :mrgreen:
http://walid.nabhan.pagesperso-orange.f ... fman5.html
le script ci-dessous à base d'array 2D est une possibilité
► Afficher le texte
Edit après remarque pertinente de jguinch :idea:

Re: [R] Arbres et feuilles

Posté : dim. 10 août 2014 20:58
par Faco
Hello,
Sin on a le droit de donner du code :D , moi aussi j'ai testé de le faire : (c'est bourrin et pas très très bien structuré mais ça fait le travail ^^)
► Afficher le texte

Re: [R] Arbres et feuilles

Posté : dim. 10 août 2014 21:19
par mikell
Le mécanisme de la fonction récursive est sympa
Le problème c'est qu'avec ton code les caractères ";" et "|" sont interdits dans l'input string sous peine de fatal error (comme n'importe quel autre caractère utilisé comme séparateur pourrait l'être d'ailleurs)
C'est à cause de cette limitation que je me suis rabattu sur la formule 'rustique' de l'array évolutive :wink:

Re: [R] Arbres et feuilles

Posté : lun. 11 août 2014 09:59
par jguinch
@Mikell : tu devrais revoir la partie encodage, en utilisant le même mécanisme que pour le décodage, car dans l'état, si la phrase contient des 0 et des 1, ça fout le bronx :P (Par exemple "Les 101 dalmatiens").
Tu peux mettre ça à la place (à faire à ta sauce...) :
► Afficher le texte

Sinon, j'ai fait aussi un code, en partant sur une petite base SQLite (je voulais le poster ça ce week-end, mais ma box a cramé, snif) :
► Afficher le texte
Bon par contre, on est bien d'accord : c'est super lent avec AutoIt, c'est pas fait pour ça :(

Re: [R] Arbres et feuilles

Posté : lun. 11 août 2014 12:12
par mikell
Merci pour les 101 dalmatiens, erreur d'inattention typique :roll:
Mais je suis pas le seul :P

Code : Tout sélectionner

 If $aOcc[$j][0] [color=#FF0000]==[/color] StringMid( $sContent, $i, 1) Then

Re: [R] Arbres et feuilles

Posté : lun. 11 août 2014 12:16
par jguinch
Ah oui, bien joué l'ami... :D

Re: [R] Arbres et feuilles

Posté : lun. 11 août 2014 13:11
par Faco
mikell a écrit :Le mécanisme de la fonction récursive est sympa
Le problème c'est qu'avec ton code les caractères ";" et "|" sont interdits dans l'input string sous peine de fatal error (comme n'importe quel autre caractère utilisé comme séparateur pourrait l'être d'ailleurs)
C'est à cause de cette limitation que je me suis rabattu sur la formule 'rustique' de l'array évolutive :wink:
effectivement, quand j'ai codé ça, ça ma même pas traversé la tête de mettre autre chose que des lettres en entrée.
Mais, c'est facilement contournable, il faut des séparateurs avec 2 caractères ( ";" -> ";/" , "|"->"|!" par exemple).
mon code reste quand même pas top.

tchou !

Re: [R] Arbres et feuilles

Posté : lun. 11 août 2014 19:57
par sozary
Merci bien!!
Je ne suis pas chez moi actuellement et ne pourrais pas tester vos codes :(!
Je reviendrais ce week end et y mettrais mes différentes questions, car après un coup d'oeil, eh bah... j'ai pas trop compris comment vous procédiez pour classer les donner comme dans un arbre :)!
J'envois ce message grâc à une borne wi-fi de Quick donc j'ai pus accèder pendant quelques minutes au forum :)!

Re: [R] Arbres et feuilles

Posté : lun. 11 août 2014 21:06
par jguinch
Juste une question sozary a quoi va te servir un tel script ? Vu la lenteur...

Re: [R] Arbres et feuilles

Posté : mar. 12 août 2014 19:16
par mikell
Surtout avec un code à base de sqlite 300 fois plus lent (environ) qu'un code à base d'array :P

Re: [R] Arbres et feuilles

Posté : mar. 12 août 2014 20:54
par jguinch
@mikell : mon code est lent, c'est un fait... Ce temps de latence est simplement dû au fait que le script va télécharger SQLite.dll systématiquement...
Si tu télécharges la dll et que tu la place dans le même dossier que le script, tu verras qu'il n'y a pas une si grande différence que ça (le tiens est 3 fois plus rapide pour la phrase d'intro AutoIt que tu as utilisé dans ton code...)
Maintenant, avec un fichier de 100 lignes :
- mon script : 9801ms
- ton script : 94409ms
:P

Re: [R] Arbres et feuilles

Posté : mar. 12 août 2014 21:47
par jchd
Et si, par curiosité, tu englobes ta boucle de création des noeuds ainsi :

Code : Tout sélectionner

_SQLite_Exec(-1, "begin;")
While 1
    ; ...insertion des noeuds
WEnd
_SQLite_Exec(-1, "commit;")
est-ce que ça impacte le chrono ?

Re: [R] Arbres et feuilles

Posté : mar. 12 août 2014 21:55
par jguinch
Comme je ne maîtrise pas tellement du tout le SQL, je n'avais pas pensé à utiliser le begin/commit...
A priori, pas d'amélioration...

Re: [R] Arbres et feuilles

Posté : mar. 12 août 2014 22:57
par mikell
C'est vrai, l'array marche mieux jusqu'à une trentaine de lignes à peu près, après c'est l'horreur :mrgreen:
Mais de toute façon c'est académique, pour un fichier de 100 lignes on arrive déjà dans la tranche des 10 secondes (20 s pour 200 lignes avec ton code, etc) alors que le premier zippeur venu fait ça en quelques centièmes :roll:

Re: [R] Arbres et feuilles

Posté : mar. 12 août 2014 22:59
par jguinch
Entièrement d'accord : c'est pas fait pour ça.
D'où ma question sur l'intérêt de la chose :?:

Re: [R] Arbres et feuilles

Posté : mar. 12 août 2014 23:26
par jchd
Personnellement je préfère de loin voir des questions posées sur des implémentations d'algorithmes courants, plutôt que sur des PixelSearch et autre MouseClick dont on sait très bien à quoi ils vont servir.

Pour la transaction, ça ne m'étonne pas : avec une base en mémoire on ne court-circuite que peu voire pas de code dans bien des cas.

Re: [R] Arbres et feuilles

Posté : ven. 15 août 2014 20:19
par sozary
Ah! Ok! J'ai bien étudié vos codes et est compris dans l'ensemble (je suis même parvenus à faire un petit arbre tout seul :P !)!

Pour la question, je me suis intéressé à cet algorithme car étudiant la programmation, ma curiosité m'a poussé à me documenter :)!
L'algorithme de Huffman m'a alors séduit :P!
Merci encore à tous pour vos réponses!