infowars
Goto Top

Programm zur Berechnung der Buchstabenhäufigkeit mit Auffüllfunktion

Moin, es gibt ja Programme und Webseiten zur Berechnung von Buchstabenhäufigkeiten, wie z.B. hier:
https://gc.de/gc/buchstabenhaeufigkeit/
Leider finde ich kein Programm, welches mir den Text anschliessend mit Buchstaben bzw. Zeichen auffüllt, bis alle gleich häufig im Text vorkommen.
Kennt jemand so ein Programm und wenn nicht, wie und in welcher Sprache würdet ihr so etwas programmieren ?
Mit freundlichen Grüßen

Content-Key: 304182

Url: https://administrator.de/contentid/304182

Printed on: April 27, 2024 at 04:04 o'clock

Mitglied: 129148
129148 May 11, 2016 updated at 07:43:37 (UTC)
Goto Top
Das kann man mit jeder Programmiersparache machen.
Mit Powershell z.B. keine große Sache:
$text = "BBBBBlaBlaxxggfffffffff"  
$newtext = $text
$groups = $text.ToCharArray() | group
$max = $groups | select -Expand Count -First 1
$groups | ?{$_.Count -lt $max} | %{$newtext += [string]$_.Name * ($max - $_.Count)}
$newtext
Member: infowars
infowars May 11, 2016 updated at 08:44:22 (UTC)
Goto Top
Danke für die Antwort, aber vllt. habe ich mich falsch ausgedrückt.
Das Programm sollte die Häufigkeit der Zeichen berechnen und dann mit anderen Zeichen z.B. 0-9, a-z, A-Z, evtl. Sonderzeichen aufüllen, so dass der Text am Ende die gleiche Häufigkeit aller Zeichen, Buchstaben etc. hat, nicht nur die ohnehin vorhanden.
Oder einfacher ausgedrückt:

Beispieltext:
ABC
Gewünschtes Resultat:
ABCDEFGHIJKLMNOPQRSTUVWXYZ

Beispieltext2:
AAA
Gewünschtes Resultat2:
AAABCDEFGHIJKLMNOPQRSTUVWXYZBCDEFGHIJKLMNOPQRSTUVWXYZBCDEFGHIJKLMNOPQRSTUVWXYZ

Oder Beispiel mit Zahlen:
444
Gewünschtes Resultat:
444012356789012356789012356789
Mitglied: 129148
Solution 129148 May 11, 2016 updated at 09:10:47 (UTC)
Goto Top
Dann musst du ja einen festen Wertebereich festlegen (z.B. alle 0-9, a-z, A-Z) damit das Skript ja die fehlenden ermitteln kann. Willst du nur Buchstaben oder Zahlen daraus müsstest du eine weitere Stufe der Erkennung einbauen.
$text = "AAA"  
# Char Bereiche festlegen 0-9, A-Z, a-z
$chars = (48..57 | %{[char]$_}); $chars+= (65..90 | %{[char]$_}); $chars += (97..122 | %{[char]$_})
$newtext = $text
# Chars gruppieren
$groups = $text.ToCharArray() | group
# max Anzahl eines einzelnen Chars ermitteln
$max = $groups | select -Expand Count -First 1
# vorhandene ergänzen
$groups | ?{$_.Count -lt $max} | %{$newtext += [string]$_.Name * ($max - $_.Count)}
# fehlende um die Anzahl ergänzen
compare $chars $groups.Name -PassThru | %{$newtext += [string]$_ * $max}
# neuen Text ausgeben
$newtext
Member: infowars
infowars May 11, 2016 at 11:01:40 (UTC)
Goto Top
Perfekt !
Vielen Dank.
Jetzt muss ich das nur noch auf andere Sprachen ummappen.
MfG