0 Daumen
390 Aufrufe

Aufgabe:

Sei \( n \in \mathbb{N} \) und \( d=2^{n}-1 \). Gegeben sei eine Liste \( \left(x_{1}, \ldots, x_{d}\right) \) geordneter Größen \( x_{1}< \) \( \cdots<x_{d} \). Gesucht wird die Position eines Elements \( y \) der Liste. Dazu wird der folgende Algorithmus verwendet:
Vergleiche \( y \) mit dem mittleren Eintrag \( x_{\frac{d+1}{2}} \) der Liste \( \left(x_{1}, \ldots, x_{d}\right) \). Gilt \( y=x_{\frac{d+1}{2}} \), so ist die Position bestimmt (Position \( \frac{d+1}{2} \) ) und der Algorithmus bricht ab. Gilt \( y<x_{\frac{d+1}{2}}^{2} \), so bilde die Liste \( \left(x_{1}, \ldots, x_{\frac{d-1}{2}}\right) \) aller Einträge kleiner als \( x_{\frac{d+1}{2}} \) und wiederhole den AlgorithmusSchritt mit dieser Liste. Gilt \( y>x_{\frac{d+1}{2}} \), so bilde die Liste \( \left(x_{\frac{d+3}{2}}, \ldots, x_{d}\right) \) aller Einträge größer als \( x_{\frac{d+1}{2}} \) und wiederhole den Algorithmus-Schritt mit dieser Liste.

Dieser Schritt wird so lange wiederholt, bis die Position von \( y \) bestimmt ist, d.h. bis der Algorithmus von sich aus abbricht.

Nehmen Sie an, dass die Position des gesuchten Wertes y zufällig (gleichverteilt) in der Liste auftritt. Die Zufallsvariable \( N \) gebe die Anzahl der Schritte an, die der Algorithmus braucht, um \( y \) zu finden.

a) Geben Sie die maximale Anzahl von Schritten von \( N \) an.

b) Bestimmen Sie die Verteilung und die Verteilungsfunktion \( F_{N} \) der Zufallsvariablen \( N \).


Ich glaube das Algorithmus ist Binäre Suche

Avatar von

1 Antwort

0 Daumen

Antwort mit KI erzeugt

Stochastische Aufgabe zu Informatik

Bei dieser Aufgabe handelt es sich um die Anwendung der Binären Suche in einer sortierten Liste, wobei die Liste genau \(2^{n}-1\) Elemente enthält, mit \( n \in \mathbb{N} \). Der beschriebene Algorithmus teilt die Liste jeweils in zwei Hälften und vergleicht den gesuchten Wert \( y \) mit dem Wert in der Mitte der Liste, um zu bestimmen, in welcher Hälfte weitergesucht werden soll. Dieser Prozess wird wiederholt, bis \( y \) gefunden wird.

a) Maximale Anzahl von Schritten von \( N \)

Da die Liste bei jedem Schritt halbiert wird und mit einer Liste der Länge \(2^{n}-1\) beginnt, ist die maximale Anzahl von Schritten die Anzahl der Male, die \(2^{n}-1\) durch 2 geteilt werden kann, bis nur noch ein Element übrig bleibt. Diese Anzahl entspricht gerade \( n \), da bei jedem Schritt der Exponent um 1 verringert wird, bis \(2^{0}-1 = 0\), d.h., es bleibt kein weiteres Element zum Teilen übrig. So ist die maximale Anzahl von Schritten \( n \).

b) Verteilung und Verteilungsfunktion \( F_{N} \) der Zufallsvariablen \( N \)

Da jeder Vergleichsschritt die Liste halbiert und da angenommen wird, dass die Position von \( y \) in der Liste gleichverteilt ist, ergibt sich folgende Wahrscheinlichkeitsverteilung für \( N \):

- Wahrscheinlichkeitsverteilung \( P(N=k) \):
Da die Liste ursprünglich \(2^{n}-1\) Elemente enthält und bei jedem Schritt halbiert wird, wird jeder Schritt den Suchraum auf eine bestimmte Weise weiter einschränken. Die Anzahl der Möglichkeiten für das Finden von \( y \) im \( k \)-ten Schritt ist einfach 1, da es genau eine spezifische Position für \( y \) gibt, die in jedem Schritt erreicht wird, während die Gesamtanzahl der möglichen Positionen \(2^{n}-1\) ist. Da jedoch jeder Schritt die Liste halbiert, wird die Wahrscheinlichkeit für jeden Schritt nicht einfach als \( \frac{1}{2^{n}-1} \) formuliert. Stattdessen betrachten wir den Prozess der Halbierung in Bezug auf die Anzahl der Schritte.

Für eine korrekte Verteilung in einem gegebenen Fall, müssten wir jedoch mehr spezifisch sein hinsichtlich der Strukturierung des Problems sehend, dass für ein \( n \) die Wahrscheinlichkeitsverteilung nicht trivial abzuleiten ist ohne die Annahme, dass die Suche in jedem Schritt das Suchintervall exakt halbiert. Hierfür müsste eine binäre Unterteilung vorausgesetzt und die Wahrscheinlichkeit jedes geforderten Schrittes innerhalb eines solchen Rahmens modelliert werden.

Ohne die spezifische Anzahl der Elemente in jedem Schritt, die in solch einem binären Suchalgorithmus variieren kann, bleibt die Grundidee, dass die Suche im Durchschnitt \( \log_{2}(d+1) \) Vergleiche benötigt, wobei \( d = 2^{n}-1 \), dies vereinfacht sich zu \( n \).

- Verteilungsfunktion \( F_{N}(k) \):
Die Verteilungsfunktion gibt die Wahrscheinlichkeit an, dass die Zufallsvariable \( N \) einen Wert annimmt, der kleiner oder gleich \( k \) ist. Für die binäre Suche in einem perfekt balancierten Binärbaum (was der Fall ist, wenn die Anzahl der Elemente \(2^{n}-1\) ist), können wir davon ausgehen, dass, wenn \( k \) Schritte unternommen werden, alle vorherigen \( k-1 \) Schritte ebenfalls erfolgreich durchgeführt wurden.

Die Verteilungsfunktion in einer derart idealen Situation anzugeben, ist ohne präzise Anwendung von Wahrscheinlichkeiten auf die gegebene Situation eher theoretischer Natur. Im Allgemeinen wäre jedoch anzunehmen, dass für gegebene \( n \) und \( k \), \( F_{N}(k) \) die Kumulation der Wahrscheinlichkeiten bis zum \( k \)-ten Schritt darstellt, was jedoch für eine praktische Berechnung genauer Spezifikationen bedarf.

Für eine präzise Berechnung der Verteilung und Verteilungsfunktion in dieser spezifischen Aufgabe müsste eine tiefere Analyse der binären Suche und der spezifischen Zustände des Suchprozesses erfolgen.
Avatar von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community