Liebes Forum,
ich nehme gerade an der 2. Runde des Bundesjugendwettbewerbs Informatik teil. Die erste Runde habe ich gut geschafft, in der 2. Runde habe ich die 1. Aufgabe gut gelöst, an der 2. beiße ich mir allerdings die Zähne aus.
Eines vorweg: Es ist nicht erlaubt, sich Lösungen o.ä. über Dritte zu besorgen. Worum es mir hier geht ist ein Denkansatz, der mich evtl. weiterbringt.
Die Aufgabe lautet, 11 Lochkarten mit je 128 Bit-Positionen aus insgesamt 111 Karten herauszufinden. Die weiteren 100 Lochkarten wurden zufällig erstellt und mit den ursprünglichen 11 vermischt.
Die ursprünglichen 11 haben eine Besonderheit. Die 11. Karte war quasi eine Zusammenfassung der ersten 10 und enthielt als Bitmuster das exklusive Oder der anderen 10 Karten. Sollte also eine der 10 Karten verloren gehen, kann diese mit Hilfe der Sicherungskarte rekonstruiert werden.
Nun werden eben weitere 100, wahllos erstellte Lochkarten, unter die 11 anderen gemischt und man soll ein Programm schreiben, dass die 111 Karten einliest und die 11 richtigen ausgibt, unter Berücksichtigung einer vernünftigen Laufzeit.
Wie diese 11. Sicherungskarte mit dem exklusiven Oder erstellt wird ist mir vollkommen klar. Unter Berücksichtigung der 3 Gesetze (Kommutativ, Distributiv u. Assoziativ) kann ich das nachvollziehen und programmiertechnisch auch verarbeiten. Ich habe auch verschiedene Ansätze die 11 Karten zu identifizieren, allerdings unter vollkommen inakzeptablen Laufzeiten.
Wenn hier jemand eine grundsätzliche Idee bzgl. der Problematik des Laufzeitverhaltens hätte, wäre ich dankbar.
Freundliche Grüße,
Mundy
ich nehme gerade an der 2. Runde des Bundesjugendwettbewerbs Informatik teil. Die erste Runde habe ich gut geschafft, in der 2. Runde habe ich die 1. Aufgabe gut gelöst, an der 2. beiße ich mir allerdings die Zähne aus.
Eines vorweg: Es ist nicht erlaubt, sich Lösungen o.ä. über Dritte zu besorgen. Worum es mir hier geht ist ein Denkansatz, der mich evtl. weiterbringt.
Die Aufgabe lautet, 11 Lochkarten mit je 128 Bit-Positionen aus insgesamt 111 Karten herauszufinden. Die weiteren 100 Lochkarten wurden zufällig erstellt und mit den ursprünglichen 11 vermischt.
Die ursprünglichen 11 haben eine Besonderheit. Die 11. Karte war quasi eine Zusammenfassung der ersten 10 und enthielt als Bitmuster das exklusive Oder der anderen 10 Karten. Sollte also eine der 10 Karten verloren gehen, kann diese mit Hilfe der Sicherungskarte rekonstruiert werden.
Nun werden eben weitere 100, wahllos erstellte Lochkarten, unter die 11 anderen gemischt und man soll ein Programm schreiben, dass die 111 Karten einliest und die 11 richtigen ausgibt, unter Berücksichtigung einer vernünftigen Laufzeit.
Wie diese 11. Sicherungskarte mit dem exklusiven Oder erstellt wird ist mir vollkommen klar. Unter Berücksichtigung der 3 Gesetze (Kommutativ, Distributiv u. Assoziativ) kann ich das nachvollziehen und programmiertechnisch auch verarbeiten. Ich habe auch verschiedene Ansätze die 11 Karten zu identifizieren, allerdings unter vollkommen inakzeptablen Laufzeiten.
Wenn hier jemand eine grundsätzliche Idee bzgl. der Problematik des Laufzeitverhaltens hätte, wäre ich dankbar.
Freundliche Grüße,
Mundy