La mia università elenca la rotazione dei corsi ogni semestre / anno. Pertanto, è possibile prevedere quando verrà insegnata ogni classe.
Sto provando a creare un programma JavaScript (la lingua è irrilevante, in realtà) che consentirà all'utente di selezionare tutti i corsi che vorrebbero prendere, per quanti semestri e il numero massimo (o forse esatto) di classi che hanno Mi piacerebbe prendere durante ognuno di quei semestri.
Quindi, ad esempio, la mia università offre: 12 corsi in autunno (varia tra anni pari e dispari) 10 corsi in primavera (varia tra anni pari e dispari) 6 corsi in estate (varia tra anni pari e dispari) in sostanza, 6 pattern semestrali diversi
Fondamentalmente, l'utente sceglierà i suoi 16 corsi preferiti, inserire 6 semestri, il semestre in cui vorrebbe iniziare e il numero massimo di corsi per semestre. Da lì, vorrei generare tutte le possibili mappe dei corsi che l'utente potrebbe prendere per laurearsi in 6 semestri. Voglio che siano in grado di variare il numero di corsi di ogni semestre - come 3 corsi un semestre, 2 corsi in un altro, ecc. Voglio anche controllare le lezioni precedenti per assicurarmi che le lezioni non siano duplicate, così come garantire che le classi soddisfino i rispettivi prerequisiti.
Il mio istinto dice di andare con la ricorsione per farlo, ma non sono esattamente sicuro di come lo farei.
Finora, sono stato in grado di venire in mente: generare tutti gli insiemi per semestre sulla base di molti corsi che l'utente vorrebbe in quel semestre (se l'utente sceglie 3 corsi per il primo semestre, quindi crea tutti i set di 3 dei 12 corsi). Fallo per ogni semestre. Quindi, passa attraverso tutte queste combinazioni per vedere quali funzionano. Sembra molto inefficiente e lento per me.
Poiché si tratta di Programmers SE, non cerco realmente alcun codice, ma forse un algoritmo o un approccio più efficiente a questo problema. Qualsiasi aiuto sarebbe molto apprezzato. Posso pubblicare un link alla rotazione del corso della mia università, se ciò fosse di aiuto.