cs_SornDrixer
Messages postés2084Date d'inscriptionjeudi 12 décembre 2002StatutMembreDernière intervention30 janvier 20118 14 déc. 2003 à 10:16
Le code est vraiment plus court Koli, bon boulot, dommage qu'il soit moins rapide que le miens :(
cs_Kolibot
Messages postés817Date d'inscriptionmercredi 25 juin 2003StatutMembreDernière intervention19 avril 2004 14 déc. 2003 à 00:45
Bon j'ai quand même envie de mettre ce que j'avais fait, l'histoire de dire que j'ai pas tenter d'optimiser pour rien :
alias cesar {
if !$1 || !$2- { halt }
var %a $gettok($2-,0,32),%a2 0
while %a > %a2 { inc %a2 | var %a3 = $+(%a3, ,$cesar.conv($gettok($2-,%a2,32),$1)) }
unset %cesar.*
return %a3
}
alias cesar.conv {
if !$1- || !$2 { halt }
;###/Variable à incrémenter plus tard###
var %cesar.tmp1 = 0
;###/Texte && cle###
var %cesar.txt $1,%cesar.key $2
;###/Alphabet en variable###
var %i = 1
while %i <26 { %cesar. [ $+ [ %i ] ] $chr($calc(96 + %i)) | inc %i }
while $len(%cesar.txt) > %cesar.tmp1 { inc %cesar.tmp1 | var %cesar.fin = %cesar.fin $+ $alphajump($left($mid(%cesar.txt,%cesar.tmp1),1),%cesar.key) }
if $len(%cesar.txt) == %cesar.tmp1 { return %cesar.fin }
}
cs_SornDrixer
Messages postés2084Date d'inscriptionjeudi 12 décembre 2002StatutMembreDernière intervention30 janvier 20118 13 déc. 2003 à 19:38
Hm oui, peut-etre que Jules César lui meme utilisait uniquement un décallage de 13 caractères pour communiquer, mais sinon, l'algorithme de césar autorise un décalage compris entre 1 et 26.
Tout les sites sur la cryptologie que j'ai trouvé sur google le disent :(
cs_ReMi34
Messages postés1025Date d'inscriptionvendredi 29 août 2003StatutMembreDernière intervention28 mars 20052 13 déc. 2003 à 18:24
Ben le VRAI langage secret de César, c'est décalé de 13 caractères.
Du moins, c'est ce que m'a dit mon prof de grec, et il est trés cultivé :)
Mais sinon c'est pas grave ok :)
cs_SornDrixer
Messages postés2084Date d'inscriptionjeudi 12 décembre 2002StatutMembreDernière intervention30 janvier 20118 13 déc. 2003 à 12:40
ReMi34 : non, ROT 13 est basé sur le meme principe, sauf avec un décallage UNIQUEMENT de 13 caractères, tandis que le cesar, permet de varier le décallage.
cs_ReMi34
Messages postés1025Date d'inscriptionvendredi 29 août 2003StatutMembreDernière intervention28 mars 20052 13 déc. 2003 à 11:42
Appelé aussi le ROT 13 ...
cs_Kolibot
Messages postés817Date d'inscriptionmercredi 25 juin 2003StatutMembreDernière intervention19 avril 2004 12 déc. 2003 à 08:17
:p
cs_SornDrixer
Messages postés2084Date d'inscriptionjeudi 12 décembre 2002StatutMembreDernière intervention30 janvier 20118 12 déc. 2003 à 07:19
De toute façon, 7 ms ou 14 ms, cela reste invisible à l'oeil nu, mais je tiens à souligner que j'avais raison, mon code est plus rapide :P
cs_Kolibot
Messages postés817Date d'inscriptionmercredi 25 juin 2003StatutMembreDernière intervention19 avril 2004 11 déc. 2003 à 20:17
J'ai fait le calcul... ton script met 7ms pour encoder avec 105 lignes, ce que je t'ai montré fait : 33 lignes et met 14ms pour encoder... C'est une question de choix après... 9/10
14 déc. 2003 à 10:16
14 déc. 2003 à 00:45
alias cesar {
if !$1 || !$2- { halt }
var %a $gettok($2-,0,32),%a2 0
while %a > %a2 { inc %a2 | var %a3 = $+(%a3, ,$cesar.conv($gettok($2-,%a2,32),$1)) }
unset %cesar.*
return %a3
}
alias alphajump {
if !$1 || !$2 { halt }
var %tmp 0,%i 1
while %i <26 { %cesar. [ $+ [ %i ] ] $chr($calc(96 + %i)) | inc %i }
while (26 > %tmp) { inc %tmp | if %cesar. [ $+ [ %tmp ] ] == $1 { if $calc(%tmp + $2) > 26 { return %cesar. [ $+ [ $calc($calc(%tmp + $2) - 26) ] ] } | return %cesar. [ $+ [ $calc(%tmp + $2) ] ] } }
}
alias cesar.conv {
if !$1- || !$2 { halt }
;###/Variable à incrémenter plus tard###
var %cesar.tmp1 = 0
;###/Texte && cle###
var %cesar.txt $1,%cesar.key $2
;###/Alphabet en variable###
var %i = 1
while %i <26 { %cesar. [ $+ [ %i ] ] $chr($calc(96 + %i)) | inc %i }
while $len(%cesar.txt) > %cesar.tmp1 { inc %cesar.tmp1 | var %cesar.fin = %cesar.fin $+ $alphajump($left($mid(%cesar.txt,%cesar.tmp1),1),%cesar.key) }
if $len(%cesar.txt) == %cesar.tmp1 { return %cesar.fin }
}
13 déc. 2003 à 19:38
Tout les sites sur la cryptologie que j'ai trouvé sur google le disent :(
13 déc. 2003 à 18:24
Du moins, c'est ce que m'a dit mon prof de grec, et il est trés cultivé :)
Mais sinon c'est pas grave ok :)
13 déc. 2003 à 12:40
13 déc. 2003 à 11:42
12 déc. 2003 à 08:17
12 déc. 2003 à 07:19
11 déc. 2003 à 20:17