Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
gf_informatik:verschluesselung:caesar [2025-03-11 14:17] hofgf_informatik:verschluesselung:caesar [2025-03-18 15:34] (aktuell) hof
Zeile 119: Zeile 119:
    1. Eine mit der Caesar-Methode verschlüsselte Nachricht kann man problemlos mit Brute-Force entschlüsseln (alle Möglichkeiten ausprobieren). Funktioniert dies bei der monoalphabetische Verschlüsselung auch? Gibt es bessere Möglichkeiten, eine solche zu entziffern?    1. Eine mit der Caesar-Methode verschlüsselte Nachricht kann man problemlos mit Brute-Force entschlüsseln (alle Möglichkeiten ausprobieren). Funktioniert dies bei der monoalphabetische Verschlüsselung auch? Gibt es bessere Möglichkeiten, eine solche zu entziffern?
  
-<nodisp 2>+<nodisp 1>
 ++++Lösung| ++++Lösung|
 Für den ersten Buchstaben A können wir unter 26 Möglichkeiten auswählen, um ihn umzuplatzieren. Für B bleiben noch 25, für C 24 Möglichkeiten, etc. Für den ersten Buchstaben A können wir unter 26 Möglichkeiten auswählen, um ihn umzuplatzieren. Für B bleiben noch 25, für C 24 Möglichkeiten, etc.
Zeile 138: Zeile 138:
 ++++ ++++
  
-<nodisp 2>+<nodisp 1>
 ++++Mehr Tipps| ++++Mehr Tipps|
 <code python> <code python>
Zeile 163: Zeile 163:
 </nodisp> </nodisp>
  
-<nodisp 2>+<nodisp 1>
 ++++Lösung| ++++Lösung|
 <code python> <code python>
Zeile 256: Zeile 256:
 ``` ```
 ++++ ++++
-<nodisp 2>+<nodisp 1>
 ++++Python Lösung| ++++Python Lösung|
 <code python> <code python>
Zeile 269: Zeile 269:
     return text     return text
          
- 
 def count_letters(text): def count_letters(text):
     """Computes relative frequency of lower-case ASCII letters in text."""     """Computes relative frequency of lower-case ASCII letters in text."""
Zeile 314: Zeile 313:
 <code python> <code python>
 from urllib.request import urlopen from urllib.request import urlopen
-import itertools 
 count = 0 count = 0
-data = faust = urlopen(<Pfad zur Datei>+data = urlopen(<Pfad zur Datei>
-for line in data.readlines()+text = data.read().decode('utf-8' reads all downloaded bytesconvert to text
-    line = line.decode('utf-8' decode: Umlaute decodieren +
-    line = line.replace('\n''') # replace(...): entfernt nervige Zeilenumbrueche,  +
-    if 10 <= count <= 20: +
-        print(line) # Achtung: keine gute Idee, wenn File sehr viele Zeilen beinhaltet! Baue z.B. Counter ein, damit nach z.B. 100 Ausgaben abbricht +
-    count += 1 +
 </code> </code>
- 
-Beachte, dass du noch die erste und letzte Zeilennummer im Buch angeben musst: Der Text am Anfang und Ende des Files gehört nicht zum Buch und soll ignoriert werden. 
  
 Kontrolle: am häufigsten vorkommen sollte $E$ (gut $15\%$), gefolgt von $N$ (ca. $10\%$) und $S$. Die letzten Ränge machen typischerweise $Y$, $Q$ und $X$ unter sich aus. Kontrolle: am häufigsten vorkommen sollte $E$ (gut $15\%$), gefolgt von $N$ (ca. $10\%$) und $S$. Die letzten Ränge machen typischerweise $Y$, $Q$ und $X$ unter sich aus.
  
-<nodisp 2>+<nodisp 1>
 ++++Lösung mit Gutenberg| ++++Lösung mit Gutenberg|
 <code python> <code python>
 # Rest as above. # Rest as above.
-# Trick: urlopen() returns a file-like object, which iterates over lines of text 
-# itertools.chain.from_iterable() will create an iterator that takes those lines 
-# and iterates over each of them (creating an iterator over the characters of the 
-# entire book). 
- 
 from urllib.request import urlopen from urllib.request import urlopen
-import itertools 
    
 faust = urlopen('http://www.gutenberg.org/files/21000/21000-0.txt') faust = urlopen('http://www.gutenberg.org/files/21000/21000-0.txt')
 s= faust.read().decode('utf-8') s= faust.read().decode('utf-8')
-print(s) +print_percentages(count_letters(s))
- +
-print_percentages(count_letters(itertools.chain.from_iterable(s)))+
 </code> </code>
 ++++ ++++
  • gf_informatik/verschluesselung/caesar.1741702652.txt.gz
  • Zuletzt geändert: 2025-03-11 14:17
  • von hof