AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Brainstorming: Datei mit definierter Entropie erzeugen
Thema durchsuchen
Ansicht
Themen-Optionen

Brainstorming: Datei mit definierter Entropie erzeugen

Ein Thema von PeterPanino · begonnen am 30. Aug 2018 · letzter Beitrag vom 1. Sep 2018
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.757 Beiträge
 
Delphi 12 Athens
 
#1

AW: Brainstorming: Datei mit definierter Entropie erzeugen

  Alt 30. Aug 2018, 17:06
Und eine Datei, die nur aus unterschiedlichen Zeichen besteht (z.B. "abcdefgh") den Entropiewert 0.
Wenn die Größe der Datei die Anzahl Zeichen überschreitet, kann demnach eine Entropie von 0 nicht mehr realisiert werden. Eventuell muss man die Entropie-Definition da noch etwas flexibler formulieren. Alternativ gibt die Zeichenmenge eben die maximale Dateigröße an.

Ist ja hier Brainstorming, also schreibe ich mal einfach drauflos:
- Gegeben sind N verschiedene Zustände und eine Menge von ebenfalls N dieser Zustände, die nicht zwingend unterschiedlich sein müssen.
- Die Entropie der Menge ist 0, wenn alle Zustände unterschiedlich sind und 1 (= 100%), wenn alle Zustände gleich sind.
- Daraus folgt, daß N > 1 sein muss.
- Die Anordnung der Zustände in der Menge ist irrelevant für die Berechnung der Entropie.
- Sei X die Anzahl der unterschiedlichen Elemente in der Menge, dann errechnet sich die Entropie aus E = (N-X)/(N-1).
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.472 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Brainstorming: Datei mit definierter Entropie erzeugen

  Alt 30. Aug 2018, 17:26
- Die Anordnung der Zustände in der Menge ist irrelevant für die Berechnung der Entropie.
Also müssten in einem Test verschiedene Anordnungen der selben Zeichen insgesamt den selben Entropiewert ergeben.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.757 Beiträge
 
Delphi 12 Athens
 
#3

AW: Brainstorming: Datei mit definierter Entropie erzeugen

  Alt 30. Aug 2018, 17:51
Also müssten in einem Test verschiedene Anordnungen der selben Zeichen insgesamt den selben Entropiewert ergeben.
Nach meiner Definition der Entropie, ja. Ist aber halt nur ein Vorschlag, der noch diskutiert werden kann. Bei einem Zeichensatz von "abcdefgh" hätten z.B. "abbbbbb" und "aaaabbbb" dieselbe Entropie, obwohl im ersten Fall nur ein Zeichen von E = 1 entfernt ist, im zweiten aber vier.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.472 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Brainstorming: Datei mit definierter Entropie erzeugen

  Alt 30. Aug 2018, 18:25
Ich habe jetzt die Entropiewerte von 2 Textdateien verglichen:

Textdatei 1:
Zitat:
Grüne
SPD
FDP
CSU
CDU
Textdatei 2:
Zitat:
CDU
CSU
FDP
SPD
Grüne
Beide ergaben den SELBEN Entropiewert: 3,49366068968819

Damit hat sich die Hypothese von Uwe als richtig erwiesen!
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.472 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Brainstorming: Datei mit definierter Entropie erzeugen

  Alt 30. Aug 2018, 18:48
Demgegenüber ergab diese Textdatei:

Zitat:
FDP
CSU
CDU
Violette
Blaue
... diesen Entropiewert: 3,88172767886974
  Mit Zitat antworten Zitat
API

Registriert seit: 18. Apr 2004
637 Beiträge
 
#6

AW: Brainstorming: Datei mit definierter Entropie erzeugen

  Alt 30. Aug 2018, 18:58
http://www.shannonentropy.netmark.pl/calculate liefert einen leicht anderen Wert.

H(X) = 3.59448

Code:
CDU
CSU
FDP
SPD
Grüne
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.757 Beiträge
 
Delphi 12 Athens
 
#7

AW: Brainstorming: Datei mit definierter Entropie erzeugen

  Alt 30. Aug 2018, 19:00
Wie ermittelst du denn die Entropie?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.472 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Brainstorming: Datei mit definierter Entropie erzeugen

  Alt 30. Aug 2018, 19:20
Wie ermittelst du denn die Entropie?
Es geht um "Shannon's Formula", die MiTeC auf meine Anregung hin in TPEReader integriert hat.

Zur Ermittlung zweckentfremde ich die Klasse TPEReader von MiTeC:

Delphi-Quellcode:
uses
  MiTeC_PE;

var
  PE: TPEReader;

procedure TForm3.FormCreate(Sender: TObject);
begin
  PE := TPEReader.Create;
  try
    PE.FileName := 'R:\test.txt';
    CodeSite.Send('TForm3.FormCreate: ', PE.Entropy.ToString);
  finally
    PE.Free;
  end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.757 Beiträge
 
Delphi 12 Athens
 
#9

AW: Brainstorming: Datei mit definierter Entropie erzeugen

  Alt 30. Aug 2018, 19:35
Es geht um "Shannon's Formula",
OK, das ist dann allerdings eine andere Definition von Entropie.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Brainstorming: Datei mit definierter Entropie erzeugen

  Alt 31. Aug 2018, 12:36
... mit Deiner auf PE Dateien basierte Entropy Berechnung ...
Nochmals: Das ist keine "PE Dateien basierte Entropy Berechnung", da es gleichgültig ist, ob es eine PE-Datei ist oder nicht. Hast du meinen vorherigen Link durchgelesen und verstanden?
Wie ermittelst du denn die Entropie?
Es geht um "Shannon's Formula", die MiTeC auf meine Anregung hin in TPEReader integriert hat.

Zur Ermittlung zweckentfremde ich die Klasse TPEReader von MiTeC:

Delphi-Quellcode:
uses
  MiTeC_PE;

var
  PE: TPEReader;

procedure TForm3.FormCreate(Sender: TObject);
begin
  PE := TPEReader.Create;
  try
    PE.FileName := 'R:\test.txt';
    CodeSite.Send('TForm3.FormCreate: ', PE.Entropy.ToString);
  finally
    PE.Free;
  end;
end;
Das hat bestimmt nichts mit PE Dateien zu tun wenn man den Link verfolgt aber irgendwie schon. Du hast mit allem Recht, mehr kann ich dazu nicht Sagen, hab noch einen Schönen Tag.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz