Quando è necessario scegliere chi interrogare oppure chi spostare in classe potrebbe essere utili avere un generatore automatico di sequenze casuali di vittime predestinate del sistema scolastico nazionale…
Algoritmo
- Quanti allievi in classe?
- Acquisisci tutti nomi
- Mescola i nomi in modo imparziale
- Comunica la sequenza di nomi
Esempio
- Elenco prima = { ‘Antoniol’, ‘Canzio’, ‘Cappellaro’, ‘Casanova De Marco’, ‘Chiovaro’, …, ‘Zucco’ }
- Elenco dopo = { ‘Chiovaro’, ‘Antoniol’, ‘Peratoner’, ‘Cappellaro’, ‘Casanova De Marco’, …, ‘Canzio’ }
Approfondimenti
- I nomi degli allievi sono stringhe
- La sequenza di nomi diventa un array
- Per mescolare in modo imparziale si usano le funzioni Random() e SCAMBIA()
- Le permutazioni possibili per n nomi sono n!=n*(n-1)*(n-2)*...*2*1.
CODIFICA
- Pascal
- PHP: shuffle()
- Python: random.shuffle()
Continua
- Fai in modo che il programma possa essere utilizzato per qualsiasi classe
Numero studenti? Nomi? - Se la sequenza risultante non è soddisfacente?
Aggiungi un menu con le opzioni input-mescola-output...
Attenzione!
Se si aggiungono delle condizioni, come
- Tizio non può sedersi con Caio
- Sempronio è miope…
- le coppie (1°-2°, 3°-4°, …) devono essere sempre diverse
- chi oggi occupa la prima fila la prossima volta deve passare in seconda..
- …
allora ogni permutazione generata deve
- superare tutte le condizioni stabilite,
- … anche quelle rispetto alle permutazioni utilizzate precedentemente
- … che quindi devono essere salvate su memoria di massa (file).
Il problema diventa più complesso…