Snooker-Aufgabe - C Programm

  • Hallo,

    ich habe mir den Kopf zerbrochen um diese Schulaufgabe zu lösen, jedoch ohne Erfolg. Ich hoffe dass mir einer von Ihnen weiterhelfen kann.
    Die Aufgabe soll in der Programmiersprache C programmiert werden.

    Hat jemand den Quelltext zu der folgenden Aufgabe oder wenigstens Lösungsansätze bzw. Algorithmusvorschläge?


    Die Aufgabe lautet wie folgt:

    Auf einem Snookertisch befinden sich 15 rote Kugeln und jeweils eine gelbe, grüne, braune, blaue, pinke und schwarze Kugel. Diese werden auch farbige Kugeln genannt. Die roten Kugeln haben eine Wertigkeit 1 und die Farbigen die Wertigkeit 2 bis 7 (in der genannten Reihenfolge). Ziel von Snokker ist es, so viele Kugeln wie möglich hintereinander einzulochen. Dabei muss abwechselnd immer eine rote gefolgt von einer farbigen Kugel gespielt werden. Die Farbigen werden nach dem Lochen wieder auf den Tisch zurückgelegt.

    Als Eingabe wird eine mögliche Punktzahl übergeben. Geben Sie alle Varianten der Reihenfolgen an, in welchen die Kugeln eingelocht werden müssen, um genau diese Punktzahl zu erreichen. Dabei sollen die Permutationen von möglichen Reihenfolgen nur einmal berücksichtigt werden.

    z.B.: Eingabe = 8
    1. rot schwarz
    2. rot pink rot
    3. rot braun rot gelb
    4. rot gelb rot braun !!!Diese Permutation nicht anzeigen; siehe 3.!!!
    5. rot grün rot grün

    Vielen Dank im Voraus

  • das kling nach einem rucksackproblem. such einfach im google nach "enumerationsverfahren" oder "rucksackproblem"

    es geht im prinzip darum den rucksack mit deinen kugeln genau voll zu kriegen wobei genausoviele rote bzw. eine mehr als farbige kugeln in den rucksack rein müssen.

    du findest sicher einen beispielalgorithmus an den du dich orientieren kannst. so ähnlich müsste es jedenfalls zu lösen sein.

    Patient: "Doctor, doctor, my eye hurts when I poke it with a spoon."
    Doctor: "Don't poke it, then."

  • was mir noch eingefallen ist wie es zu lösen ist:

    du schreibst einen algorithmus der dir alle möglichen varianten von reihenfolgen der eingelochten kugeln berechnet. jede dieser varianten gehst du von vorne bis hinten durch bis der gesamtwert der eingelochten kugeln > vorgegebener wert ist. falls gesamtwert der eingelochten kugeln = vorgegebener wert dann musst du diese variante speichern. wie in der angabe schon steht musst du drauf achten keine doppelten varianten am ende auszugeben.

    viel spass :shinner:

    EDIT: die farbigen werden nach dem einlochen wieder auf den tisch gelegt...das könnte noch etwas kompliziert werden

    Patient: "Doctor, doctor, my eye hurts when I poke it with a spoon."
    Doctor: "Don't poke it, then."

  • OFFTOPIC: Genau genommen, sollte man dazusagen, dass bei Snooker auch erlaubt ist, 2 oder mehr rote Kugeln gemeinsam mit einem Stoss zu versenken.

    D.h. ich kann 8 Punkte theoretisch auch erreichen indem ich:
    Rot-Rot (mit einem stoss) - Pink versenke.

    Aber das steht nicht in deiner spezifikation, wollte es nur mal erwaehnt haben ;)

    Gibts eigentlich sonst noch Snooker-Fans hier? Seit Eurosport dass so oft uebertraegt, scheint das ja fast Fussball an der Popularitaet zu uebertreffen, soviele kenn ich, die es gerne schauen :)

  • wenn du das Snooker Problem gelöst hast kannst du den Quelltext dann mal hier posten? Würde mich interessieren wie du es angegangen bist, da ich ein ähnliches Problem habe.

    Danke

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!