Dies ist eine statische Kopie unseres alten Forums. Es sind keine Interaktionen möglich.
This is a static copy of our old forum. Interactions are not possible.

Currywurst mit Pommes

Erfahrener Schreiberling

  • "Currywurst mit Pommes" started this thread

Posts: 438

Date of registration: Oct 14th 2002

1

Sunday, December 17th 2006, 3:55pm

DuA - Übung 8

In der aktuellen Übung 8 - Aufgabe 1 soll man eine leere Hashtabelle (Größe: M = 17) mittels Double-Hashing füllen: h1 = (x mod 17) / h2 = (x mod 16) + 1

und die mittleren Zugriffszahlen für erfolgreiche und nicht-erfolgreiche Suche angeben.

Das Füllen ist einfach.

Erfolgreiche Zugriffszahl iist ja noch relativ einfach (1 + 1 + ...) / M.

Aber die nicht-erfolgreiche ist bei 17 Tabellenplätzen ja wohl eine extreme Fleißaufgabe ? Oder gibt es da eine einfachere Lösung ? Ich schau mir doch nicht für 17*16 Möglichkeiten an, wieviele Schlüsselvergleiche jeweils vorgenommen werden müssen ?! Zwar sind manche Tabellenplätze nicht belegt, aber es wäre trotzdem noch eine sehr hohe Zahl an zu untersuchenden Möglichkeiten.

Oder sollen wir uns da ein Programm für schreiben ? Mmm...auch das kostet zu viel Zeit. Zeit. Zeit.

This post has been edited 1 times, last edit by "Currywurst mit Pommes" (Dec 17th 2006, 4:03pm)


BLUESCREEN

Junior Schreiberling

  • "BLUESCREEN" is male

Posts: 244

Date of registration: Oct 11th 2005

2

Sunday, December 17th 2006, 6:40pm

RE: DuA - Übung 8

Quoted

Original von Currywurst mit Pommes
Ich schau mir doch nicht für 17*16 Möglichkeiten an, wieviele Schlüsselvergleiche jeweils vorgenommen werden müssen ?! (...)

Oder sollen wir uns da ein Programm für schreiben ?

Letzteres geht ziemlich schnell, also ist es wohl so gedacht.

XAX

Junior Schreiberling

  • "XAX" is male

Posts: 207

Date of registration: Dec 25th 2004

3

Sunday, December 17th 2006, 6:41pm

Die Frage hab ich mir auch gestellt und mich dann dafür entschieden ein Skript zu schreiben und das dauert nicht wirklich lang 3 Schleifen und eine if Abfrage wirste wohl noch mal eben hinbekommen :D

Currywurst mit Pommes

Erfahrener Schreiberling

  • "Currywurst mit Pommes" started this thread

Posts: 438

Date of registration: Oct 14th 2002

4

Sunday, December 17th 2006, 7:00pm

Naja, dann werde ich mich wohl daran setzen müssen...es sei denn, einer kennt ein nützliches Tool, das eben genau das für mich tut :)

This post has been edited 1 times, last edit by "Currywurst mit Pommes" (Dec 17th 2006, 7:00pm)


Currywurst mit Pommes

Erfahrener Schreiberling

  • "Currywurst mit Pommes" started this thread

Posts: 438

Date of registration: Oct 14th 2002

5

Monday, December 18th 2006, 10:34am

Kann jemand bestätigen, dass die totale Anzahl der Schlüsselvergleiche bei der nicht erfolgreichen Suche eine dreistellige Zahl ist, die mit 2 endet ?

Also Ergebnis: xx2 / (16*17) = ...

This post has been edited 1 times, last edit by "Currywurst mit Pommes" (Dec 18th 2006, 10:35am)


XAX

Junior Schreiberling

  • "XAX" is male

Posts: 207

Date of registration: Dec 25th 2004

6

Monday, December 18th 2006, 10:59am

ja

Babu

Zuhörer

Posts: 1

Date of registration: Mar 21st 2007

7

Wednesday, March 21st 2007, 3:00pm

RE: DuA - Übung 8

hallo

wie kommt man denn bei der Aufgabe 1a) darauf, dass 23 bei 14 steht und bei aufgabe c) die 6 bei 3 und die 3 bei 7 ??????
Wäre für eine genaue nachvollziehbare Rechnung sehr dankbar =;)

neon

Praktikant

  • "neon" is male

Posts: 11

Date of registration: Mar 15th 2007

8

Wednesday, March 21st 2007, 4:49pm

RE: DuA - Übung 8

Quoted

Original von Babu
hallo

wie kommt man denn bei der Aufgabe 1a) darauf, dass 23 bei 14 steht und bei aufgabe c) die 6 bei 3 und die 3 bei 7 ??????
Wäre für eine genaue nachvollziehbare Rechnung sehr dankbar =;)


Also...

Die 23 steht bei 14, denn die erste Hashfunktion liefert 6. Dieser Tabellenplatz ist aber von 6 schon belegt, somit greift die zweite Hashfunktion. Die liefert 8. Also rückt man 8 Plätze weiter. 6 + 8 = 14. Da 14 frei, wird eingetragen. Wäre der Platz nicht frei, müsste man solange 8 Plätze weitergehen, bis man einen leeren Eintrag findet. Deshalb steht bei C) die 6 bei 3, da du zweimal 7 Plätze weitergehen musst.