Hammingova razdalja/Implementacija (Mathematica)

Iz MaFiRaWiki


Hamming[a_String, b_String] := Module[{s, t, d, m, n, c},
    
    s = a;
    t = b;
    n = StringLength[s];
    m = StringLength[t];
    d = Table[0, {i, 1, n}];
    c = 0;
    
    If[m ≠ n, Return["Niza nista istih dolžin!"]];
    
    For[i = n, i ≥ 1, i--,
      If[StringTake[s, {i}] == StringTake[t, {i}], c = 0, c = 1];
      d[[i]] = c;
      ];
    
    Return[Apply[Plus, d]]
    ]

Hamming::usage = "Funkcija poišče Hammingovo razdaljo med nizoma iste dolžine.";

Primera

Hamming["ana", "bosa"]

vrne

Niza nista istih dolžin!
Hamming["ana", "osa"]

pa vrne

2
Osebna orodja