Hallo zusammen,
dieser Titel sagt euch wahrscheinlich wenig, mir viel leider kein besserer ein, darum erkläre ich einfach mal um was es geht.
Ich habe Fehlerpunkte, Fragen mit verschiedenen Fehlerpunkten und eine Anzahl an Fragen. Die Punkte variieren auch.
Beispiel:
Fehlerpunkte = 33
Fragenanzahl = 10
und 120 Fragen mit verschiedenen Fehlerpunkten zwischen 2 und 5.
Es ist das Ziel mit der Anzahl der Fragen genau auf die Fehlerpunkte zu kommen, dabei sollen die Fragen jedoch per Zufallgewählt sein, damit sich nicht immer das gleiche Bild ergibt.
Bin damit bereits seit gestern dran und habe eine Lösung, die allerdings nicht schön ist.
Meine Lösung bis jetzt sieht so aus, dass ich mir per Zufall aus den verfügbaren Fragen 10 raushole und wenn die Summe der Fehlerpunkte dann nicht den Fehlerpunkten entspricht, schmeiß ich die 10 wieder weg und hole die nächsten bis es passt.
Wäre für Hinweise und Gedanken wie man es anstellen könnte sehr dankebar.
Grüße
Chris
Hallo John Sanson,
eine Variante des Rucksackproblems. Kein Wunder, dass du da keine gute Lösung gefunden hast. 😃 Das ganze ist NP-schwierig, was im Endeffekt darauf hinausläuft, dass man alle Kombinationsmöglichkeiten ausprobieren muss. Vor diesem Hintergrund ist dein Ansatz zumindest verständlich. 😃
Ich würde trotzdem wohl eher einzelne Fragen tauschen. Also wenn die Summe zu hoch ist, nimm eine der gewählten Fragen und suche zu dieser eine Frage mit einer niedrigeren Punktzahl und wenn du eine findest, ersetze die bisher gewählt durch die neue, sonst wählen eine andere Frage. Wenn die Summe zu niedrig ist, analog. Solange bis es passt. Wobei du den Fall berücksichtigen solltest, dass u.U. es keine exakte Lösung gibt. Wenn z.B. alle Fragen gerade Punktzahlen haben, kann man keine ungerade Punktsumme erzeugen.
herbivore
ja stimmt, es ist das Rucksackproblem, jetzt kann ich dem ganzen auch einen Namen geben.
Bei mir ist das ganze noch etwas komplizierter, da jede Frage einen Typ hat und der auch noch in die Auswertung mit einfließt.
Bis jetzt brauchte das ganze bei mir immer zwischen 1 und 12 Versuchen bis es gepasst hat, werde nochmal sehen ob ich 1, 2 Stellen optimieren kann.
Danke für den Link.