-# Jakobsen
-if mod_m:
- print "\nJakobsen (s mezerami):"
- print jakobsen.desifruj(zprava)
-if mod_x:
- print "\nJakobsen (bez mezer):"
- print jakobsen.desifruj(zprava, False)
+ # Posuny v abecede
+ (posun, posunuty_text) = posuny.nejlepsi(zprava)
+ if 'P' in opsny or 'A' in opsny:
+ analyza.append("\nPosuny v abecede (nejlepsi posun {0}):".format(posun))
+ analyza.append("\n".join("{0:>2} {1}".format(
+ i + 1, posuny.vsechny(zprava)[i]) for i in range(26)))
+ else:
+ analyza.append("\nNejlepsi posun ({0}):".format(posun))
+ analyza.append(posunuty_text)
+
+ # Bigramy
+ if 'B' in opsny or 'A' in opsny:
+ analyza.append("\nBigramy podle cetnosti:")
+ bigramy = dict()
+ for i in ABECEDA:
+ for j in ABECEDA:
+ bigramy[i+j] = 0
+ for i in range(0, len(zprava)-1):
+ if zprava[i:i+2] in bigramy:
+ bigramy[zprava[i:i+2]] += 1
+ celkem = sum(bigramy.values())
+ for char in sorted(bigramy, key=bigramy.get, reverse=True):
+ if bigramy[char] == 0:
+ break
+ analyza.append('{0} {1:>3} {2:>6.2%}'.format(char, bigramy[char],
+ float(bigramy[char])/celkem))
+ return '\n'.join(analyza)
+
+if __name__ == '__main__':
+ if len(sys.argv) > 1:
+ opsny = sys.argv[1]
+ else:
+ opsny = ''