R
rike
Gast
halli hallo, gibt es in java eine methode, die einem zeichen aus dem ascii-alphabet
eine eindeutige ganze zahl zwischen 0 und 255 zuweist, also den ascii-wert ausgibt ?
oder muss ich die erst selbst implementieren?
die aufgabe:
Sei m die Gröoße einer Hashtabelle. Wir definieren die Hash-Funktion hstring,
die für einen String s einen ganzzahligen Wert hstring(m, s) liefert, wie folgt:
Dabei ist hstring' in Haskell- ähnlicher Notation wie folgt definiert:
und
Dabei ist ord eine Abbildung, die für ein Zeichen aus dem ASCII-Alphabet eine eindeutige ganze Zahl
zwischen 0 und 255 liefert, nämlich den ASCII-Wert.
Implementieren Sie die Hashfunktion hstring in Java. hstring0 sollte dabei iterativ implementiert
werden. Die Summen zur Berechnung des Hashwertes wachsen sehr schnell. Verwenden Sie daher
long-Werte zur Summation, um einen überlauf zu vermeiden.
so, ideen hab ich schon wie ich das alles schreiben könnte. ich scheitere nur an der ord(a)
sache. ich soll also bei einem string, nehmen wir mal "hallo", das "h" im ascii-alphabet suchen
und den ganzzahligen wert dafür ausgeben, was für das "h" ja 104 ist. und dann soll die
rechnung: 0*31 + 104 ausgeführt werden und danach die hstring' methode rekursiv wieder
aufgerufen werden, nur dann halt mit dem "a".
so, also, wie gesagt. das ganze klimm bimm drum herum schaff ich wohl. das einzige was mir den
weg zum fertigen programm versperrt ist diese ord() methode. ich hab mir das so gedacht. den
string wandel ich in ein array um, und gehe dann mit ner for-schleife jedes element durch und gebe
dafür den asciiwert aus. nur wie mach ich das ? gibt es eine vordefinierte methode dafür? muss ich
die erst implementieren ? wenn ja wie ? irgendwie muss ich ja das ascii-alphabet zum vergleich
darlegen. wie mach ich das ?
wäre für hilfe dankbar! auch per mail: yun4mi@web.de !
danke danke! lg, rike!
eine eindeutige ganze zahl zwischen 0 und 255 zuweist, also den ascii-wert ausgibt ?
oder muss ich die erst selbst implementieren?
die aufgabe:
Sei m die Gröoße einer Hashtabelle. Wir definieren die Hash-Funktion hstring,
die für einen String s einen ganzzahligen Wert hstring(m, s) liefert, wie folgt:
Code:
hstring(m, s) = hstring'(0, s) mod m
Code:
hstring'(i, []) = i
und
Code:
hstring'(i, a : w) = hstring'(i *31 + ord(a),w)
Dabei ist ord eine Abbildung, die für ein Zeichen aus dem ASCII-Alphabet eine eindeutige ganze Zahl
zwischen 0 und 255 liefert, nämlich den ASCII-Wert.
Implementieren Sie die Hashfunktion hstring in Java. hstring0 sollte dabei iterativ implementiert
werden. Die Summen zur Berechnung des Hashwertes wachsen sehr schnell. Verwenden Sie daher
long-Werte zur Summation, um einen überlauf zu vermeiden.
so, ideen hab ich schon wie ich das alles schreiben könnte. ich scheitere nur an der ord(a)
sache. ich soll also bei einem string, nehmen wir mal "hallo", das "h" im ascii-alphabet suchen
und den ganzzahligen wert dafür ausgeben, was für das "h" ja 104 ist. und dann soll die
rechnung: 0*31 + 104 ausgeführt werden und danach die hstring' methode rekursiv wieder
aufgerufen werden, nur dann halt mit dem "a".
so, also, wie gesagt. das ganze klimm bimm drum herum schaff ich wohl. das einzige was mir den
weg zum fertigen programm versperrt ist diese ord() methode. ich hab mir das so gedacht. den
string wandel ich in ein array um, und gehe dann mit ner for-schleife jedes element durch und gebe
dafür den asciiwert aus. nur wie mach ich das ? gibt es eine vordefinierte methode dafür? muss ich
die erst implementieren ? wenn ja wie ? irgendwie muss ich ja das ascii-alphabet zum vergleich
darlegen. wie mach ich das ?
wäre für hilfe dankbar! auch per mail: yun4mi@web.de !
danke danke! lg, rike!