Wert einer Folge berechnen

9. Juli, 2008

Gegeben sei folgende rekursive definierte Folge:

a_1 = 2, a_n = \frac{a_{n-1}}{2} + \frac{1}{a_{n-1}}

Diese Folge konvergiert gegen die Quadratwurzel von 2. Die Folge ist ein Beispiel für ein allgemeines Halbierungsverfahren zur Bestimmung der Quadratwurzel einer Zahl.

Implementieren Sie jeweils eine rekursive und nicht rekursive Methode, um den Wert der Folge näherungsweise zu berechnen.


Texte entschlüsseln

26. Juni, 2008

Die mit polyalphabetischer Verschlüsselung kodierten Texte (bei Verwendung eines Alphabets) lassen sich meist sehr einfach über die Häufigkeitsverteilung der Buchstaben in Texten entschlüsseln.

Texte in deutscher Sprache haben etwa folgende Verteilung (nach deutscher Wikipedia) als double-Feld. Umlaute sind als ae, ue, oe gezählt:

double [] haeufigkeiten = new double[256];

        haeufigkeiten['a'] = 0.0651;
        haeufigkeiten['b'] = 0.0189;
        haeufigkeiten['c'] = 0.0306;
        haeufigkeiten['d'] = 0.0508;
        haeufigkeiten['e'] = 0.1740;
        haeufigkeiten['f'] = 0.0166;
        haeufigkeiten['g'] = 0.0301;
        haeufigkeiten['h'] = 0.0476;
        haeufigkeiten['i'] = 0.0755;
        haeufigkeiten['j'] = 0.0027;
        haeufigkeiten['k'] = 0.0121;
        haeufigkeiten['l'] = 0.0344;
        haeufigkeiten['n'] = 0.0253;
        haeufigkeiten['m'] = 0.0978;
        haeufigkeiten['o'] = 0.0251;
        haeufigkeiten['p'] = 0.0079;
        haeufigkeiten['q'] = 0.0002;
        haeufigkeiten['r'] = 0.0700;
        haeufigkeiten['s'] = 0.0727;
        haeufigkeiten['t'] = 0.0615;
        haeufigkeiten['u'] = 0.0435;
        haeufigkeiten['v'] = 0.0067;
        haeufigkeiten['w'] = 0.0189;
        haeufigkeiten['x'] = 0.0003;
        haeufigkeiten['y'] = 0.0004;
        haeufigkeiten['z'] = 0.0113;
        haeufigkeiten['ß'] = 0.0031;

Implementieren Sie ein Programm, welches mit Hilfe dieser Verteilung einen verschlüsselten Text entschlüsselt: die Zeichen im verschlüsselten Text werden gezählt und dann mit den am besten passenden Buchstaben obiger Verteilung ersetzt. Der verschlüsselte Text sollte möglichst lang sein (mehr als 1000 Zeichen).

Man kann den Algorithmus noch verbessern, indem die Buchstabenhäufigkeit von Anfangs- und Endbuchstabe mit berücksichtigt wird oder ein Wörterbuch verwendet wird.


Konvergenz einer geometrischen Reihe prüfen

16. Juni, 2008

Gegeben sei folgende geometrische Reihe (die Summe der Kehrwerte aller 2er-Potenzen):

\sum_{n=0}^{\infty} \frac{1}{2^n} = \frac{1}{1} +  \frac{1}{2} +  \frac{1}{4} +  \frac{1}{8} +  \frac{1}{16} + \ldots

Implementieren Sie ein Programm, mit dem Sie überprüfen, ob diese Reihe – vermutlich – konvergiert. Falls die Reihe konvergent ist: gegen welchen Wert konvergiert sie?


Lottozahlen erzeugen

12. Juni, 2008

Schreiben Sie ein Programm, das 6 zufällige Zahlen aus dem Bereich 1 bis 49 auf dem Bildschirm ausgibt (Lotto 6 aus 49). Es dürfen dabei keine Zahlen doppelt vorkommen.


Harmonische Reihe berechnen

9. Juni, 2008

Die Harmonische Reihe h(n) ist die Summe der Kehrwerte von 1 bis n (wobei n gegeben unendlich strebt).

h(n) := \frac{1}{1} + \frac{1}{2} + \frac{1}{3} + \frac{1}{4} + \cdots + \frac{1}{n}

Implementieren Sie diese Funktion (bis zur Obergrenze n). Zeichnen Sie den Funktionsverlauf für diese Funktion. Welchen Wert berechnet diese Funktion ungefähr (Angabe im O-Kalkül)?