)
vzdal = vzdalenost(tabulka, ref.tabulka, ref.abeceda)
- vzdal_old = vzdal + 1
- while vzdal_old > vzdal:
- vzdal_old = vzdal
- for (x, y) in combinations(ref.abeceda, 2):
+ a, b = 1, 1
+
+ slvnk = ref.poradi
+
+ while b < len(ref.abeceda):
+ x, y = slvnk[a-1], slvnk[a+b-1]
+ slovnik[x], slovnik[y] = slovnik[y], slovnik[x]
+ nova_vzdalenost = vzdalenost(
+ nova_tabulka(
+ substituce(zprava, slovnik),
+ ref.abeceda),
+ ref.tabulka,
+ ref.abeceda)
+ if nova_vzdalenost < vzdal:
+ vzdal = nova_vzdalenost
+ slvnk[a-1], slvnk[a+b-1] = slvnk[a+b-1], slvnk[a-1]
+ a, b = 1, 1
+ else:
slovnik[x], slovnik[y] = slovnik[y], slovnik[x]
- nova_vzdalenost = vzdalenost(
- nova_tabulka(
- substituce(zprava, slovnik),
- ref.abeceda),
- ref.tabulka,
- ref.abeceda)
- if nova_vzdalenost < vzdal:
- vzdal = nova_vzdalenost
- else:
- slovnik[x], slovnik[y] = slovnik[y], slovnik[x]
+ a += 1
+ if a + b > len(ref.abeceda):
+ a, b = 1, b + 1
return slovnik