Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Homework 1 esercizio 2

Adriano.Sapuppo (350 points)
2 6 8
in Es2 by (350 points)
closed by

Ciao a tutti,

credo di aver trovato l asoluzione ma non l'approccio:

  • Si accende una lampadina se del tasto cliccato c'è il divisore
  • Una lampadina spenta rimarrà accesa se il numero massimo dei divisori è dispari tra i tasti cliccati

Quindi se io ho una lista di liste dove dentro le liste ci sono i divisori di N fino ad uno + i tasti già accesi, volevo sapere per intenderci quante volte è presente l'elemento 6 all'interno delle liste della lista. Come si fa?

Grazie

1.1k views
closed with the note: deadline passed

2 Answers

A
Andre (330 points)
0 0 3
by (330 points)
Si fa con un for dentro un for. Questo approccio però è estremamente costoso
Adriano.Sapuppo (350 points)
2 6 8
by (350 points)
Immaginavo. Hai qualche idea da condividermi?
A
Andre (330 points)
0 0 3
by (330 points)
Più che altro ti sconsiglio di prendere quell'approccio. Quello che potresti provare è fare cambiamenti su una copia dell'insieme accese per ricordarti quali luci sono accese e quali no in un determinato momento
dico una copia perché i valori di input non vanno mai modificati a meno che non sia richiesto
Adriano.Sapuppo (350 points)
2 6 8
by (350 points)
Però ti pongo una domanda riguardo a quanto mi consigli. Come fai ad escludere un tasto? Perché come dici tu di sicuro devi premere in sequenza tutti i tasti per vedere che succede.
Xriuk (13590 points)
6 24 116
by (13.6k points)
Scusami, secondo il tuo approccio tu prima calcoli i divisori di ogni interruttore (da cui la lista di liste) e poi li conteggi, giusto? Non saprei dirti se il tuo approccio è corretto, perchè io l'ho svolto diversamente.

Comunque, ti potrei consigliare di fare così: mentre calcoli i divisori di ogni interruttore tramite un dizionario potresti tenere traccia del numero di volte che compaiono. Così eviti di fare due cicli "ripetitivi"
Adriano.Sapuppo (350 points)
2 6 8
by (350 points)
Ciao, unico approccio a cui sono arrivato è quello scritto quindi con il conteggio dei divisori. Ma da tutte le parti mi dicono che è dispendioso in quanto devo utilizzare più cicli di controllo. Premesso che ai dizionari non ci sono ancora arrivato ma se necessario me li studio, se questa strada mi farà perdere tempo quindi dopo che ho sviluppato finalmente sto codice mi accorgo di aver perso tempo in quanto supero il secondo a test penserò di lanciare il PC dal 5° piano XD. Tu che strada hai intrapreso? Quello che mi frega a me è l'1 divisore di tutti e le lampadine già accese.