Etwas andere Checksumme eines Wortes
Geizhals » Forum » Programmierung » Etwas andere Checksumme eines Wortes (13 Beiträge, 170 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
Etwas andere Checksumme eines Wortes
10.12.2004, 22:35:49
An alle Nogrammierkollegen

Ich brauche eine Funktion, die mir eine Checksumme anhand der vorhandenen Buchstaben in einem Wort ermittelt.

Dabei darf es keine Rolle spielen, in welcher Reihenfolge die Buchstaben in diesem Wort angeordnet sind, sondern wenn in dem Wort zum Beispiel 2 mal der Buchstabe A vorkommt und 2 mal der Buchstabe B und 2 mal der Buchstabe C vorkommt, dann muss es immer die gleiche Checksumme ergeben.

Beispiele :

AABBCC
CCBBAA
AACCBB
BBCCAA
ABCABC
CBACBA
BACBAC

und so weiter....

Jetzt habe ich mir mal folgendes überlegt :

Meine Primzahlen, die ich verwenden will  :

A = 7
B = 11
C = 13
D = 17
E = 19
F = 29
G = 31
H = 41
I = 43
J = 59
K = 61
L = 71
M = 73
N = 101
O = 103
P = 107
Q = 109
R = 137
S = 139
T = 149
U = 151
V = 179
W = 181
X = 191
Y = 193
Z = 197

1.) Ich zähle alle Buchstaben A in dem Wort und multipliziere sie mit dem ASCII-Code 65 (für A) und multipliziere sie mit der Primzahl 7.
2.) Ich zähle alle Buchstaben B in dem Wort und multipliziere sie mit dem ASCII-Code 66 (für B) und multipliziere sie mit der Primzahl 11.
3.) Ich zähle alle Buchstaben C in dem Wort und multipliziere sie mit dem ASCII-Code 67 (für C) und multipliziere sie mit der Primzahl 13.

Dies ergebe in diesem Fall :

1.) 2 mal A = 65 * 2 *  7 = 910
2.) 2 mal B = 66 * 2 * 11 = 1452
3.) 2 mal C = 67 * 2 * 13 = 1742

Nun addiere ich diese 3 Ergebnisse :

910 + 1452 + 1742 = 4104

Anderes Beispiel :

GEIZHALS
HALSGEIZ
GHEAILZS
SZLIAEHG
SLAHZEIG

und so weiter....

1.) 1 mal A = 65 * 1 * 7 = 455
2.) 1 mal E = 69 * 1 * 19 = 1311
3.) 1 mal G = 71 * 1 * 31 = 2201
4.) 1 mal H = 72 * 1 * 41 = 2952
5.) 1 mal I = 73 * 1 * 43 = 3139
6.) 1 mal L = 76 * 1 * 71 = 5396
7.) 1 mal S = 83 * 1 * 139 = 11537
8.) 1 mal Z = 90 * 1 * 197 = 17730

Nun addiere ich diese 8 Ergebnisse :

455 + 1311 + 2201 + 2952 + 3139 + 5396 + 11537 + 17730 = 44721

Bin ich jetzt auf dem richtigen Weg oder habe ich irgendwo einen Rechen- oder Denkfehler in meiner Rechnung um eine eindeutige Checksumme für ein Wort mit beliebig vielen Buchstaben (A-Z) zu errechnen.

Ich erwarte mir viele (sinnvolle) Antworten zu diesem Thema ...

mfg euer wappler


Antworten PM Übersicht Chronologisch
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung