From: Neil Smith Date: Fri, 31 Jan 2014 15:32:45 +0000 (+0000) Subject: Merge branch 'transpositions' of git.njae.me.uk:national-cipher-challenge into transp... X-Git-Url: https://git.njae.me.uk/?a=commitdiff_plain;h=3906e8a686e3d1943e22746b65c394a4def34fc0;hp=833724c23cc4f479a185cdd8dae89ce35964cf7c;p=cipher-tools.git Merge branch 'transpositions' of git.njae.me.uk:national-cipher-challenge into transpositions --- diff --git a/norms.py b/norms.py index 2c8eb70..36af606 100644 --- a/norms.py +++ b/norms.py @@ -56,7 +56,7 @@ def l2(frequencies1, frequencies2): 1.0 """ total = 0 - for k in frequencies1.keys(): + for k in frequencies1: total += (frequencies1[k] - frequencies2[k]) ** 2 return total ** 0.5 euclidean_distance = l2 @@ -77,7 +77,7 @@ def l1(frequencies1, frequencies2): 1 """ total = 0 - for k in frequencies1.keys(): + for k in frequencies1: total += abs(frequencies1[k] - frequencies2[k]) return total @@ -100,7 +100,7 @@ def l3(frequencies1, frequencies2): 0.6299605249... """ total = 0 - for k in frequencies1.keys(): + for k in frequencies1: total += abs(frequencies1[k] - frequencies2[k]) ** 3 return total ** (1/3) @@ -126,7 +126,7 @@ def geometric_mean(frequencies1, frequencies2): 0.009259259... """ total = 1 - for k in frequencies1.keys(): + for k in frequencies1: total *= abs(frequencies1[k] - frequencies2[k]) return total @@ -152,7 +152,7 @@ def harmonic_mean(frequencies1, frequencies2): 0.2 """ total = 0 - for k in frequencies1.keys(): + for k in frequencies1: if abs(frequencies1[k] - frequencies2[k]) == 0: return 0 total += 1 / abs(frequencies1[k] - frequencies2[k]) @@ -175,7 +175,7 @@ def cosine_distance(frequencies1, frequencies2): numerator = 0 length1 = 0 length2 = 0 - for k in frequencies1.keys(): + for k in frequencies1: numerator += frequencies1[k] * frequencies2[k] length1 += frequencies1[k]**2 for k in frequencies2.keys(): @@ -184,13 +184,11 @@ def cosine_distance(frequencies1, frequencies2): def log_pl(frequencies1, frequencies2): - return sum([frequencies2[l] * log10(frequencies1[l]) for l in frequencies1.keys()]) + return sum([frequencies2[l] * log10(frequencies1[l]) for l in frequencies1]) def inverse_log_pl(frequencies1, frequencies2): return -log_pl(frequencies1, frequencies2) - - def index_of_coincidence(frequencies): """Finds the (expected) index of coincidence given a set of frequencies """