Aufgaben per Zufall auswählen



  • Hallo :),

    mein Programm soll aus den vorhandenen Klausuraufgaben entsprechend viele Aufgaben per Zufall auswählen, um die gewünschte Punktzahl der Klausur zu erreichen.

    Kann mir jemand da behilflich sein.

    LG



  • Was hast du denn bisher?! Wo hast du Probleme? Und ansonsten:

    Random rnd = new Random();
    
    var points = 20;
    var curSelectedPoints = 0;
    var selectedExamTasks = new List<ExamTask>();
    
    while(curSelectedPoints < points)
    {
        var taskNum = rnd.Next(0, examTasks.Count-1);
        var task = examTasks[taskNum];
        if(!selectedExamTasks.Contains(task) && curSelectedPoints + task.Points <= points)
        {
            curSelectedPoints += task.Points;
            selectedExamTasks.Add(task);
        }
    }
    


  • Danke. Bis jetzt hab ich die datenbank eingefügt und die dazu gehörigen tabellen über datagridview. Die Codes für die Buttons wurden ebenfalls deklariert. Jetzt brauch ich das mit dem Zufall.



  • Schau dir die Random-Klasse an.



  • Hallo,

    ich hab das mit dem Zufall immer noch nicht hinbekommen. Das mit der Random-Klasse sagt mir leider nichts bzw. ich weiss nicht wie ich es anwenden soll 😞 .



  • Schau dir doch einfach mal das Beispiel von mir an?!



  • beri schrieb:

    mein Programm soll aus den vorhandenen Klausuraufgaben entsprechend viele Aufgaben per Zufall auswählen, um die gewünschte Punktzahl der Klausur zu erreichen.

    "um die gewünschte Punktzahl der Klausur zu erreichen" - mindestens oder genau?

    Falls mindestens, dann ist das ja doch eher trivial.
    Falls genau, dann google mal nach Teilsummenproblem.

    ps: Das Teilsummenproblem ist aber NP-Schwer, d.h. es gibt keine "effiziente" Lösung. (Ich hoffe jetzt das gilt auch wenn die Schranke genau erreicht werden muss - falls nicht bitte einfach korrigieren.)



  • Hallo :D,

    ich wollte mich nur bedanken. Hab es hinbekommen.

    DANKE 🙂

    bery


Anmelden zum Antworten