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

Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2023-24 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2023-24 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

Funzione dizionario_gradi_antenati poco chiara

edoardo (7090 points)
19 52 67
in Es1 by (7.1k points)
closed by

Ciao ragazzi! Da stamattina cerco di capire cosa vuole la quarta funzione del primo esercizio.

la funzione dizionario_gradi_antenati(fnome,y,fout) che, presi:
- il nome di un file json contenente un dizionario-albero  d (fonome)
- un intero y
- il nome di un file json (fout)

costruisce  il dizionario che ha come chiavi gli identificativi dei nodi dell'albero 
rappresentato dal dizionario-albero d, attributo di una chiave di valore x e' il numero 
di antenati di grado y che ha il nodo con identificativo x nell'albero.
Registra il dizionario costruito nel file fout.

Ad esempio se fnome contiene il dizionario-albero d allora dopo l'esecuzione di  
dizionario_gradi_antenati(fnome,2,fout)
il file fout conterra' il dizionario 

{'a': 0, 'b': 0, 'c': 1, 'd': 1, 'e': 2, 'f': 2, 'g': 2, 'h': 2, 'i': 1, 'l': 2}

 

Questo è l'albero da cui viene fatto l'esempio

Qualcuno di voi è riuscito a capirlo? Se sì, potrebbe spiegarmi perché, ad esempio, il valore della chiave 'i' è diverso dal valore della chiave 'e'?

665 views
closed with the note: answered

5 Answers

Best answer
a
angelo.monti (1080 points)
2 8 13
by (1.1k points)
selected by
'i' ha alle sue spalle un solo nodo di grado 2 (il nodo 'b')  mentre 'e' ha alle sue spalle 2 nodi di grado 2 ( i nodi 'd' e 'b').

Gli antenati sono i nodi che si incontrano sul cammino che dal nodo porta alla radice. Il grado di un nodo e' il numero di figli che ha.
edoardo (7090 points)
19 52 67
by (7.1k points)
grazie mille :D
t
trianni.andrea (930 points)
3 8 15
by (930 points)
E' il problema che ho anche io, non riesco a capire perché la i abbia valore 1 ...
P
Powner (5600 points)
36 68 85
by (5.6k points)
Io in realtà mi sono fermato ancora prima: non ho capito neanche cosa significa "antenati di grado y"...
edoardo (7090 points)
19 52 67
by (7.1k points)
Ti dico come l'ho interpretato io:
partiamo da "e", torniamo indietro di 2 (dove 2 sarebbe la y) e, quindi, arriviamo a "b". B ha 2 nodi, quindi e ha come valore 2. Ma magari sto toppando alla grande...
G
GiovanniQuadraroli (1230 points)
10 28 38
by (1.2k points)
secondo questo ragionamento anche i dovrebbe avere valore 2. Invece ha 1
gianpcr (4620 points)
5 16 34
by (4.6k points)
Stessa cosa che ho pensato io, il problema è che se applichi la regola alla lettera 'l' ottieni 2 e non 1
edoardo (7090 points)
19 52 67
by (7.1k points)
Appunto.. credo che il ragionamento sia sbagliato x' ma è l'unica cosa che m'è venuta in mente..
f
federicatardia (540 points)
3 7 14
by (540 points)
Stesso problema...
v
valerioalbano (760 points)
4 6 13
by (760 points)
se qualcuno è riuscito a farlo potrebbe rispondere con una lista, nome nodo: nomi dei nodi di grado 2. credo aiuterebbe tutti a capire perchè il numero degli antenati di I,  E ed L sono diversi.
t
teresa (960 points)
3 9 17
by (960 points)
reshown by
i ha un solo antenato con due figli. Dobbiamo cercare, per ogni nodo, quanti nodi con due figli si incontrano muovendosi verso la radice ( y=2 due figli). i  è preceduto da c ,che ha un solo figlio ,da b, che ne ha due, da a , che ne ha uno.  f è preceduto da e, che ha tre figli, da d, che ne ha due, da b, che ne ha due,e da a, che ne ha uno.
Spero di esserti stata utile.
t
teresa (960 points)
3 9 17
by (960 points)
Mi sono appena accorta che avevate risolto. Non riesco a cancellare il mio commento. Chiedo scusa.
edoardo (7090 points)
19 52 67
by (7.1k points)
grazie comunque :D