0 Daumen
369 Aufrufe

Schreiben Sie einen Algorithmus in Pseudocode, der zu einer gegebenen reellen Zahl \( x \in \mathbb{R} \) die kleinste Zahl \( n \) bestimmt, so dass \( \prod \limits_{i=1}^{n} \frac{3 i+3}{2 i} \) größer als \( x \) ist.

Bin mir nicht sicher wie ich den Algo schreiben soll. Wahrscheinlich mit einer while-Schleife, aber ich weiß nicht was das Zeichen bedeutet (ist das ein Summenzeichen?).

Avatar von

1 Antwort

0 Daumen

Der Algorithmus könnte wie folgt aussehen:

Algorithm: smallest_n(x)

Input: x, eine reelle Zahl
Output: n, die kleinste Zahl, so dass produkt_{i=1}^{n} (3i+3)/(2i) > x

1. Setze n auf 1
2. Setze produkt auf 1
3. Solange produkt <= x:
  3.1. produkt = produkt * (3n+3)/(2n)
  3.2. n = n+1
4. Gib n zurück

Dieser Algorithmus beginnt mit einer Initialisierung von n auf 1 und produkt auf 1. Es wird dann eine Schleife ausgeführt solange produkt kleiner oder gleich x ist. Innerhalb der Schleife wird produkt auf das Produkt aus produkt und (3n+3)/(2n) aktualisiert und n wird um 1 erhöht. Sobald produkt größer als x ist, bricht die Schleife ab und der Algorithmus gibt n zurück.

Dieser Algorithmus hat eine Laufzeit von O(n), wobei n die Anzahl der Schleifendurchläufe ist, bis das Produkt größer als x ist.

Avatar von

Bei Eingabe von 2 liefert der Algorithmus 2 als Ausgabe.

Laut Aufgabenstellung soll der Algorithmus stattdessen 1 als Ausgabe liefert, weil \(\prod\limits_{i=1}^{1} \frac{3i+3}{2i} = 3 > 2\) ist.

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community