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

Do you need help?

come faccio il secondo caso base dell' hw4 es2?

Light (5130 points)
59 181 229
in Es2 by (5.1k points)
mi sto cervellando ma non so come dire di: se non è uno solo l'elemento della configurazione allora itera su quella configurazione e come faccio pero a dire se finisce e nessun numero si somma allora è un caso base cioe una foglia dell'albero? mi sfugge la chiave su come dire nessun numero si somma..spero di essere stato chiaro
626 views

5 Answers

c
cristian (2770 points)
3 17 29
by (2.8k points)
il caso base è quando nella lista non ci sono due numeri  consecutivi la cui somma sia pari e questo lo puoi controllare con un for
v
val9 (9770 points)
6 30 53
by (9.8k points)
Potresti inizializzare un insieme/lista vuoto/a e riempirlo con le configurazioni che soddisfano. Se l'insieme/lista resta vuoto/a anche dopo aver iterato fino alla fine della configurazione esaminata, allora la configurazione in esame va conservata..
K
Khalester (3310 points)
2 5 24
by (3.3k points)
Io mentre scorro la lista, vedo se non ho sommato niente e tramite una variabile booleana passo al secondo caso base: ovvero


Se non ho sommato nulla:
    Allora fai questo

Edit: "non ho sommato" prendilo come un "not somma" dove somma è la variabile booleana
Light (5130 points)
59 181 229
by (5.1k points)
eh si questo volevo fare una cosa del genere ma non so come dire "ho finito il for ma non sono entrato mai nell'if che mi attiva il passo induttivo" :/...non mi viene davvero niente in testa
c
cristian (2770 points)
3 17 29
by (2.8k points)
se non ci sono numeri consecutivi la cui somma sia pari:

         fai una cosa

altrimenti

        fai un altra
K
Khalester (3310 points)
2 5 24
by (3.3k points)
Metti una variabile all'inizio fuori dal for e la metti True, appena viene sommato qualcosa, la metti a False. Quindi finito il for metti il secondo caso base
a.capobianco1 (16770 points)
14 54 165
by (16.8k points)

Io nel METODO ricorsivo itero sui figli della RADICE e valuto il numero n e quello n+1 per vedere se danno origine ad una nuova sequenza e quindi una nuova chiamata ricorsiva.

Mi fermo al penultimo figlio in maniera tale da confrontarlo con l'ultimo.

Se un determinato nodo self non ha figli (sub sequenze), allora dovrà essere considerato come foglia e salvato.

I
InnerAlbeiro (550 points)
1 2 7
by (550 points)
edited by
si crei una funzine che per ogni nodo ti genera le sue combinazioni allora se fai in modo che questa funzione ti, invie una lista vuota quando non trova le combinazioni allora quella combinazione è una foglia e andra su un else cosi fai continuare il ciclo lasciato in sospeso dalla ricorsione e vai al nodo successivo, in teoria dovestri averne una cosa di questo tipo for root in radice.figli:  lista=genera_combinazioni(root.numero) if lista: root.figli+=[lista] richiama funzione ('Funzione(root)') else: non richiami nulla perchè è una foglia, con questo metodo l'unico problema è che la radice va calcolata prima quidni prima di chiamare la funzione calcoli i figli di radice e come è logico che sia la funzione genera_combinazioni deve tornare una lista di indirizzi di memoria quidni creare i nodi