Prozent: 65%, bzw. 80% sind, wenn 20% der Zeichen (Zwischenschritt) von der Gesamtanzahl der Zeichen des Strings ersetzt, eingefügt oder gelöscht werden müssen.
Vielleicht verrätst Du uns mal, wozu Du das überhaupt brauchst, vielleicht gibt es ja noch eine einfacher umsetzbare Formel.
Ich habe mal eine (zugegeben nicht perfekte) Fuzzy-Vergleichsroutine geschrieben, die so vorging, um die Ähnlichkeit von String A und String B zu bewerten:
1. Loope über die Buchstaben von String A. Sei A[i] der i-te Buchstabe von A.
2. Wenn A[i] == B[i], erhöhe Score um 1.00.
3. Wenn A[i] == B[i-1] oder A[i] == B[i+1], erhöhe Score um 0.50.
3b. (evtl.) Wenn A[i] == B[i-2] oder ..., erhöhe Score um 0.25.
4. Andernfalls verringere Score um 0.50.
Am Ende steht dann eine Summe, die die Ähnlichkeit von A und B beschreibt (an den Werten muß man noch tunen, bei mir waren die am Ende so bei +0.35 und +0.56).
So kann man z.B. erreichen, daß eine Suche nach "Stetoskp" auch "Stethoskop" findet etc.
(Das war in Cold Fusion, wo es keine nativen Fuzzy-Funktionen gibt. :-)