-
Guglielmoqwerty.
User deleted
Come molti sanno i bagni degli uomini sono dotati dei orinatoi a parete. Inoltre gli uomini sono molto territoriali (o timidi, scegliete la variante che preferite) e non possono sopportare di utilizzare un orinatoio se quello vicino è occupato e, se hanno la possibilità di scegliere un bagno scelgono quello più distante possibile dagli altri. Se esistono più posti che soddisfano le caratteristiche ne viene scelto uno a caso.
ESEMPIO utilizzando un bagno con 5 orinatoi:SPOILER (clicca per visualizzare)1) bagno libero:CODICE+---+---+---+---+---+
| | | | | |
+---+---+---+---+---+
2) Entra un uomo e sceglie un posto a casoCODICE+---+---+---+---+---+
| | X | | | |
+---+---+---+---+---+
3) Entra un altro uomo e sceglie l'ultimo bagno perchè più lontano dall'altro utenteCODICE+---+---+---+---+---+
| | X | | | X |
+---+---+---+---+---+
4) Entra un altro uomo ma non riesce a trovare un posto libero. Fine del problema
Esempio con 6 bagni (diverso):SPOILER (clicca per visualizzare)1) Il bagno è libero:CODICE+---+---+---+---+---+---+
| | | | | | |
+---+---+---+---+---+---+
2) Entra un uomo e sceglie un posto a casoCODICE+---+---+---+---+---+---+
| X | | | | | |
+---+---+---+---+---+---+
3) Entra un altro uomo e sceglie il posto più lontano:CODICE+---+---+---+---+---+---+
| X | | | | | X |
+---+---+---+---+---+---+
4) Entra un altro uomo che e vede che ci sono due posizioni valide (3 e 4 posto). Ne sceglie una a caso.CODICE+---+---+---+---+---+---+
| X | | | X | | X |
+---+---+---+---+---+---+
5) Entra un altro uomo che non trova posto. Fine programma
Scopo dell'esercizio: Scrivere un programma che simuli questa situazione.
Chiedete pure per chiarimenti.. -
Dodiz.
User deleted
immagino che per "caso" intendi input dall'utente, giusto? . -
.
No, viene sorteggiato a caso in modo pseudo-casuale. . -
Guglielmoqwerty.
User deleted
No, Dodiz, l'unico input dell'utente (se vuoi che sia l'utente a scegliere) è il numero di orinatoi all'inizio.
Piccolo consiglio: il secondo uomo che entra occuperà sicuramente una delle sole due possibili
Piccolo consiglio (più utile): provate ad analizzare tutte le combinazioni possibili da 1 a 6 bagni e controllate come ragionate.. -
.
Non ho risposto non perchè abbia qualcosa di difficile, ma semplicemente perchè non ho tempo.
Immaginando di avere 6 posti totali, il ragionamento è il seguente:
1) posti disponibili: {0,1,2,3,4,5};
Occupo il posto 2.
2) posti disponibili: {0,4,5}
Occupo il posto 0.
3) posti disponibili: {4, 5}
Occupo il posto 5.
4) Posti disponibili: {}. -
Guglielmoqwerty.
User deleted
Lo so che non è difficile (era ironia ). e ti capisco quando dici che non hai tempo (ne ho anch'io meno del solito quindi non sono andato avanti a scriverlo).
Comunque no, al secondo passaggio occupi il posto 5 perchè è più lontano da 2. (5-2=3 2-0=0).
Comunque suggerisco di provare con un posto, poi con due, poi con tre poi con 4, con 5 e infine con 6 tutte le soluzioni possibili. (In totale sono una decina senza contare le ripetizioni.). -
.
Allora non è chiara una cosa: da come è mostrato, almeno il primo, sembra che la cosa importante è lasciare "un buco" tra i due occupati. Come dici tu ora è invece lasciare più buchi possibili tra i due occupati... Quindi la scelta non è casuale, ma controllata. . -
Guglielmoqwerty.
User deleted
Allora forse mi sono espresso male. Se sono disponibili due posti con ugual numero di distanza (e sono più grandi di tutti gli altri) se ne sceglie uno a caso.
ES: Supponiamo ci siano 7 bagni e il primo sceglie il 5. A questo punto sia il primo che l'ultimo sarebbero validi e se ne sceglie uno a caso.