Esercizio 2 hw 1 - Ordine

DanielePi (1440 points)
0 3 16
asked Oct 28, 2018 in Es2 by DanielePi (1,440 points)
closed Nov 7, 2018 by andrea.sterbini
Ciao , sto provando a svolgere l'esercizio 2 del primo homework ma sto riscontrando diffcoltà. Non riesco a trovare un algoritmo che mi permetta di cominciare a buttare giù codice. Leggendo le varie risposte sul forum riguardanti questo argomento ho letto che è consigliato scorrere i pulsanti al contrario (dal più grande al più piccolo), ma il testo non diceva che i pulsanti vanno premuti in ordine crescente?
262 views
closed with note: deadline passed

3 Answers

T
Torri (680 points)
0 8 17
answered Oct 28, 2018 by Torri (680 points)
Si devono essere in ordine ma se ci fai caso premere i pulsanti 2 e 4 da lo stesso risultato di premere i pulsanti 4 e 2, per cui ragionare al contrario ti porta alla soluzione e a quel punto ti basta invertire la lista ottenuta
Nevynura (2490 points)
0 4 16
answered Oct 28, 2018 by Nevynura (2,490 points)
Ciao, come hanno detto andrebbe risolto trovando i bottoni da premere da quello più grande a quello più piccolo. La soluzione poi la ottieni trovandoti il reverse di quei bottoni.
Prima di tutto ti chiedi: se io ho una lista con N=6 e ins=2,4... Sappiamo che la condizione da soddisfare è che TUTTE le lampadine siano accese... Ma 6 (che in questo caso è spenta) non può essere accesa da suoi divisori (perché ogni bottone accende se stesso e i suoi divisori) ne da i suoi multipli (perché le lampadine sono 6, e non c'è una lampadina 12 in grado di accendere 6) Da questo si conclude che 6 si accede SOLO a causa del suo stesso bottone (e che quindi quel bottone fa per forza parte della soluzione). Spero che da questo ragionamento tu possa capire come risolvere.
_andrea_ (45670 points)
2 40 297
answered Oct 28, 2018 by _andrea_ (45,670 points)
I pulsanti in ordine crescente sono quelli che devi dare come risultato della tua funzione, ma è impossibile iniziare veramente a premerli dal più piccolo al più grande perché non puoi sapere cosa avrai dopo. Quindi devi iniziare da destra nel senso che ragioni da destra, poi quando ritorni il risultato lo ordini in ordine crescente. Nessuno ti vieta di usare un ragionamento a partire da N verso 1 e poi dare una risposta adatta a ciò che ti si chiede. Un consiglio è scriverti le lampadine da 1 a 6 come nell'esempio su un pezzo di carta in fila orizzontale, e sotto ci metti dei segni tipo una x e un punto per capire se sono accese o spente. Poi su quell'esempio cerchi di risolverlo tu, realmente, non con un programma, e vedrai che la soluzione sarà quella che sta nella descrizione. Poi fallo con 10 lampadine, iniziando con tot lampadine accese a caso (a scelta tua) poi lo fai con 15 e con 20 e cerchi di capire come lo risolveresti TU nella vita reale. Poi lo fai fare a un programma