Berechnung von Entropie von Zeichen, Tupeln und Wörtern

This commit is contained in:
2025-04-22 20:28:57 +02:00
parent a3145f0eab
commit 1544b2d514
2 changed files with 120 additions and 0 deletions

117
P1/main.py Normal file
View File

@@ -0,0 +1,117 @@
import math
from operator import concat
def read_text_file():
path = '/Users/safak/Documents/UNI/IT/P1/text.txt'
with open(path, 'r', encoding='utf-8') as file:
content = file.read()
return content
def Z_statistik():
# Ergebnisse mit https://de.planetcalc.com/2476/ prüfbar
message = read_text_file()
# Anzahl der Zeichen in der Nachricht X
m = len(message)
# Häufigkeiten der Zeichen in der Nachricht X
char_count = {} #Dictionary
for char in message:
if char_count.__contains__(char):
char_count[char] += 1
else:
char_count[char] = 1
calculate(char_count, m, message)
def Z2_statistik():
message = read_text_file()
# Anzahl der Tupel in der Nachricht
m = len(message) - 1 # Letztes Zeichen kann kein Tupel mit "nichts" bilden
# welche Zeichen kommen wie oft vor?
char_count = {} #Dictionary
for i, char in enumerate(message):
if i != m:
tuple = char + message[i+1]
if char_count.__contains__(tuple):
char_count[tuple] += 1
else:
char_count[tuple] = 1
calculate(char_count, m, message)
def W_statistik():
message = read_text_file()
# Anzahl der Tupel in der Nachricht
m = len(message)
# welche Zeichen kommen wie oft vor?
word_count = {} #Dictionary
enumerate(message)
i = 0
while i != m:
word = ""
if message[i].isalpha():
word += message[i]
while message[i+1].isalpha():
i += 1
word += message[i]
if word_count.__contains__(word):
word_count[word] += 1
else:
word_count[word] = 1
i += 1
calculate(word_count, m, message)
def calculate(collection, m, message):
# Wahrscheinlichkeit von x_i
p_X = {}
for x_i in collection:
p_X[x_i] = collection[x_i] / m
# Informationsgehalt I(x_i) = -log_{2}(p(x_i))
i_X = {}
for x_i in p_X:
i_X[x_i] = -1 * math.log2(p_X[x_i])
# Entropie H(X) = sum_{i=1}{M}(p(x_i)*I(x_i))
h_X = 0
for x_i in i_X:
h_X += p_X[x_i] * i_X[x_i]
# Ausgabe
print("Nachricht:")
print(message)
for x_i in sorted(i_X):
print(f"{x_i:<20}: {collection[x_i]:<5} : {i_X[x_i]:<10}")
print("Entropie der Nachricht = " + h_X.__str__())
def main():
Z_statistik()
Z2_statistik()
W_statistik()
if __name__ == '__main__':
main()

3
P1/text.txt Normal file
View File

@@ -0,0 +1,3 @@
Das Corps Moenania ist ein pflichtschlagendes und farbentragendes Corps im Kösener Senioren-Convents-Verband (KSCV). Es vereint Studenten und Alumni der Julius-Maximilians-Universität Würzburg sowie der Technischen Hochschule Würzburg-Schweinfurt. Das Corps ist die Studentenverbindung mit der längsten ununterbrochenen Tradition an der Universität Würzburg. Seine Mitglieder werden „Mainländer“ genannt. Innerhalb des KSCV gehört die Moenania dem Blauen Kreis an.
Das Corps Moenania wurde im Jahre 1814, zum Ende der Toskanazeit, an der Alma Julia unter dem Namen „Gesellschaft der Mainländer“ und dem Wahlspruch „Ewigkeit geschworenen Eyden“ im Geiste des Deutschen Idealismus gegründet. Zu den frühen Mitgliedern zählte auch der spätere Japanreisende, Arzt und Naturgelehrte Philipp Franz von Siebold. Ab den 1820er-Jahren bezeichnete sich die Gesellschaft vermehrt als Corps. Im Jahre 1828 erhielt die Verbindung als erste Studentenverbindung in Würzburg die behördliche Anerkennung. Die Mitte des 19. Jahrhunderts erwies sich als eine turbulente Epoche für das Corps, geprägt von einer Vielzahl an Aus- und Wiedereintritten im Würzburger SC. Nachdem eine interne Streitigkeit beigelegt werden konnte, trat Moenania im Jahre 1849 erneut dem Würzburger SC bei und wurde damit zugleich Mitglied des KSCV, welchem der Würzburger SC zwischenzeitlich beigetreten war. Im Jahr 1876 beschloss das Corps nach intensiven internen Auseinandersetzungen, sich von einem Lebenscorps zu einem Waffencorps zu wandeln. Im Kaiserreich errichtete sich das Corps zudem als eine der ersten Verbindungen in Würzburg ein eigenes Corpshaus, das nach einer einjährigen Bauzeit im Juni 1897 eingeweiht werden konnte. In der Zeit der Weimarer Republik verzeichnete das Corps einen erheblichen Zuwachs an neuen Füchsen. Zudem trat es dem Hochschulring Deutscher Art (HDA) bei. Während der Zeit des Nationalsozialismus schloss das Corps jüdische und „jüdisch versippte“ Mitglieder aus und musste sich 1935 schließlich suspendieren. Später wurde eine NS-Kameradschaft mit dem Namen „Philipp Franz von Siebold“ auf dem Corpshaus eingerichtet, deren Mitglieder ab 1941 wieder Mensuren schlugen. Das Verbindungshaus wurde beim Luftangriff auf Würzburg 1945 weitgehend zerstört. Bereits vor der Rückgabe der beschlagnahmten Ruine und der offiziellen Lizenzierung der Verbindung in der amerikanischen Zone im Jahre 1949 begannen Mitglieder des Corps mit dem Wiederaufbau des Hauses und der Rekonstruktion des Vereins. Die 68er-Bewegung führte auch bei der Moenania zu inneren Verwerfungen. Im Jahre 2014 feierte das Corps sein 200. Stiftungsfest in einem festlichen Akt.