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

Do you need help?

qualcosa viene qualcosa no es2 hw4

Light (5130 points)
58 181 229
in Es2 by (5.1k points)
io ho voluto creare un albero di gioco di sole foglie; e per crearla ho usato ovviamente una funzione ricorsiva in cui mi prende la lista della configurazione iniziale(quella che mi da in input in primis) e la trasformo prima di metterla nella ricorsione con un .split in una lista; il problema è che il dizionario mi prende configurazioni che non deve prendere; ora vi mostro alcune delle tante in piu che prende che ho visto facendo i print: [15, 19]
[15, 35, 3]
[15, 35, '5', '1']
[14]
[25, 3]
[17]
[15, 19]
[15, 35, 3]
[15, '30', '40', 3]
[15, '30', '40', '5', '1']

ed ho visto che mi mette anche copie con chiavi uguali come è possibile? ora vi dico come ho imposto la ricorsione: inanzittutto io uso una classe Nodo che ha radice la configurazione ed ha una lista di figli che se vuota è foglia; io inizio con il caso base che è lista lunga uno; se è metto nel dizionario con valore lista vuota perche è foglia; poi continuo e itero su questa configurazione se non è lunga uno allora vedo se due numeri sono pari la somma: fai la media e chiama la ricorsione portando appresso il dizionario che io aggiorno con un .update(chiama la funzione con la nuova configurazione)... e se in questo for non entro mai nel caso di due numeri pari allora quella configurazione è una foglia e ho fatto subito dopo fuori il for come il caso base che mi mette dentro il dizionario quella configurazione con valore lista vuota....dove posso avere sbagliato? forse il caso base non deve essere se è solo un numero la configurazione?
388 views
closed

2 Answers

Best answer
a.capobianco1 (16770 points)
13 54 165
by (16.8k points)
selected by
Come rilevato dal prof è strano tu abbia valori in formato testo (quelli tra gli apici) e valori numerici… strano mix!..

Il fatto che vi siano sequenze che si ripetono è una cosa che può accadere .. anche nell'immagine esempio vi sono dei casi del genere.

Prova a trasformare subito in numeri… a lavorare sui numeri e, quando hai finito, ritrasformi in stringa… e se riesci trova anche un modo per evitare di rielaborare sequenze già elaborate
andrea.sterbini (207940 points)
754 1269 2377
by (208k points)
Non capisco perchè alcune chiavi sono interi ed altre stringhe ...

C'è un secondo caso base, se non c'è nessuna coppia che ha somma pari
Light (5130 points)
58 181 229
by (5.1k points)
ah...si riscrivendolo qua come domanda mi è piu chiaro il mio errore di non aver fatto il secondo caso base...e per la parte di interi e stringhe è che misa che dovrei trasformare la stringa input in una lista di interi subito cosi non ci sono queste problematiche che posso creare errori..