Je sais ce que c'est (c'est bien les expressions régulières ?) mais je cois mal comment les utiliser...
Sinon, jai immaginé un système mais il me retourne trop de réponses et n'a pas l'air fiable ...
Exemple avec les mots abcde et abbcdde:
Différence de taille: a=2
Longeur de la plus petite chaine: b=5
abcde__
abbcdde
=======
1100000 = 2
_abcde_
abbcdde
=======
0011100 = 3
__abcde
abbcdde
=======
0000011 = 2
Total: c=2+3+2=7
Similitude: (c-a)/b = (7-2)/5 = 5/5 = 1
Mais ca m'a l'air complètement foireux ...
En code perl, ca donne:
sub words
{
$w1=$_[0];
$w2=$_[1];
$len1=length $w1;
$len2=length $w2;
if($len1>$len2)
{
$len=$len1;
$len1=$len2;
$len2=$len;
$w=$w1;
$w1=$w2;
$w2=$w;
}
# we have $len1 <= $len2
$op = $len2 - $len1;
$count = 0-$op;
for($i=0;$i<=$op;$i++)
{
$w = (' ' x $i).$w1.(' ' x $op-$i);
for($j=0;$j<$len2;$j++)
{
$char1 = lc substr($w, $j, 1);
$char2 = lc substr($w2, $j, 1);
if($char1 eq $char2){ $count++; }
}
}
$nb = $count/$len1;
return $nb;
}
Poste le Tuesday 30 December 2003 18:52:14