Aprés quelques heures de travail, voici le resultat final du tout premier algorythme que j'avais fait.
voici donc l'unitée RomanUtils qui permet de convertir les chiffres romain (strict) vers des entiers et inversement.
En esperant que tout cela vous serat utile et BONNE NOUVELLE pour une fois il y'a un Zip avec mon code!
Egalement dans le Zip, une petite application (RomanUtilsTest) pour montrer l'utilisation de l'unité RomanUtils,
avec en cadeaux, la Date du jours en chiffre romain! (hahaha ... pardon ...)
ps1 : voir le fichier .chm pour l'aide
ps2 : pas de commentaire dans la source pour le moment, a venir...
Conclusion :
Pour toute questions, suggestions, amelioration, postez la sur ce sujet.
Possibilitée de mise a jours ... plus tard ...
Remerciements :
a Florenth pour ses bonne idées et ses suggestions de code.
FAFQ (Frequently Asked Funny Question):
- Avec quoi tu code ? avec Delphi 7 et mes doigts.
- Avec quoi tu fait les chm ? avec HTML Help Workshop de microsoft.
- Avec quoi tu fait tes zip ? avec l'excelent 7-Zip.
- Avec quoi on fait un Croc-Steak ? avec deux tranches de pain de mie, un bon gros steak haché et beaucoup de gruiyere. MIAM (j'ai faim!)
Je l'ai d'ailleur porté en java : http://www.javafr.com/codes/VERSION-JAVA-ROMANUTILS-TOUT-CONVERTIR-CHIFFRES-ROMAINS-VERS_44548.aspx
(J'ai tenu a respecter la source d'origine autant que possible)...
bonne nouvelle aprés gros reflechissage :
nouvelle données des benchs :
> 5 x 100 000 RomanToInt : moyenne 56ms
(total 282ms pour 500 000 requettes, plus rapide 47ms, plus longue 63ms)
gain ~78%
dont 22ms sont due a IsRomanNumber(STR), si on supprime la verification on descend donc a 34ms pour 100 000 requettes soit un gain de ~120%
> 5 x 100 000 IntToRoman : moyenne 84ms
(total 421ms pour 500 000 requettes, plus rapide 78ms, plus longue 94ms)
gain ~25%
ce qui donne des temps de moins d'une seconde pour traiter 1 millions de requettes.
ce qui est largement raisonnable je pense.
je mets donc a jours l'unitée en Version 1.2i (i pour improved) ^^
Athlon 1800+ 1.53Ghz, DDR PC2100 2x133Mhz,
Process load 22, CPU Charge 20-40% (firefox)
RomanBench process mode : Real Time
> 5 x 100 000 RomanToInt : moyenne 441ms
(total 2203ms pour 500 000 requettes, plus rapide 437ms, plus longue 453ms)
CPU Burn Charge : 58%
VERDICT : reglo. on pourrait encore ameliorer ... Assembleur ? ^^
> 5 x 100 000 IntToRoman : moyenne 213ms
(total 1063ms pour 500 000 requettes, plus rapide 203ms, plus longue 219ms)
CPU Burn Charge : 27%
VERDICT : vraiment reglo.
> 5 x 200 000 IsRomanNumber (str) : moyenne 22ms
(total 109ms pour 1 000 000 requettes, plus rapide 15ms, plus longue 31ms)
CPU Burn Charge : 8%
VERDICT : carrement reglo.
> 5 x 200 000 IsRomanNumber (int) : moyenne 0ms
(total 0ms pour 1 000 000 requettes, plus rapide 0ms, plus longue 0ms)
CPU Burn Charge : 0%
VERDICT : no comment.
j'avais jamais penser a tester comme ça ... les resultat parlent d'eux memes.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.