Dubbi Prove scolastiche febbraio 2021

Buona sera, scrivo qui poiché avevo dei dubbi riguardo dei esercizi scritti in questa prova scolastica (Prove scolastiche febbraio 2021), chiedo se si può, di rispondere alle mie domande e se necessario anche una piccola spiegazione.

Esercizio 3

La successione di Fibonacci, i cui primi numeri sono 1, 1, 2, 3, 5, 8, 13, . . . si ottiene in base alla seguente
definizione ricorsiva:
Fib(1) = 1
Fib(2) = 1
Fib(n) = Fib(n-2) + Fib(n-1) se n maggiore di 2
Si consideri invece la successione
1, 2, 11, 50, C
ottenuta in base alla seguente definizione ricorsiva:
Gib(1) = 1
Gib(2) = 2
Gib(n) = A × Gib(n-2) + B × Gib(n-1) se n maggiore di 2
A, B e C sono numeri di cui dovete desumere il valore. Quanto vale C?

Il mio dubbio è: Qual è la definizione di A,B,C e n?

Esercizio 5

Ad una festa sono stati invitati diversi amici, si sa che a 10 di questi piacciono i treni, a 10 piacciono le macchine
da corsa e a 10 gli aerei. Ogni amico pu`o avere anche pi`u di una passione!
Si sa inoltre:
• solo uno ha la passione per tutti 3 i mezzi
• a 7 amici piacciono i treni ma non gli aerei
• a 5 amici piacciono solo le macchine
• a 8 amici piacciono gli aerei ma non le macchine
Quanti sono gli amici in tutto?

Con quale relazione si può risolvere questo esercizio?

Esercizio 9

1: variable m: integer[][][]
2: variable v: integer[]
3: variable i: integer
4: variable j: integer
5: variable k: integer
6: variable t: integer
7: v ← [4, 13, 14, 25, 72]
8: i ← 0
9: while i < 100 do
10: j ← 0
11: while j < 100 do
12: k ← 0
13: while k < 100 do
14: if i × j = k then
15: m[i][j][k] ← 1
16: else
17: m[i][j][k] ← 0
18: end if
19: k ← k + 1
20: end while
21: j ← j + 1
22: end while
23: i ← i + 1
24: end while
25: k ← 0
26: while k < 5 do
27: t ← 0
28: i ← 0
29: while i < 100 do
30: j ← 0
31: while j < 100 do
32: t ← t + m[i][j][v[k]]
33: j ← j + 1
34: end while
35: i ← i + 1
36: end while
37: k ← k + 1
38: output t
39: end while

Non ho capito come risolvere questo esercizio, perciò per chi la capito potrebbe cortesemente spiegarmelo?

Esercizio 10

1: function f(x: integer) → integer
2: if x mod 2 = 0 then
3: return 0
4: else
5: return 1 + f((x − 1) / 2)
6: end if
7: end function
8: function g(x: integer) → integer
9: if x > 250 or x ≤ 0 then
10: return 0
11: else
12: return max(f(x), g(x / 2))
13: end if
14: end function

Cosa s’intende con la funzione Max?

Esercizio 12

Descrizione: 
Il seguente programma cerca, all’interno di un array v di n interi, il sottoarray (contiguo) che pu`o essere
partizionato in due sottoarray non vuoti tale per cui la somma della prima parte, meno la somma della seconda
parte `e massima. Il programma usa la costante Infinity, che `e pi`u grande di ogni numero intero (integer).
1: variable i: integer
2: variable j: integer
3: variable k: integer
4: variable l: integer
5: variable s1: integer
6: variable s2: integer
7: variable x: integer
8: x ← −Infinity
9: i ← 0
10: while i < n − 1 do
11: j ← i + 1
12: while j < n do
13: k ← i + 1
14: while k < j do
15: s1 ← 0
16: s2 ← 0
17: l ← i
18: while l < k do
19: s1 ← s1 + v[l]
20: l ← l + 1
21: end while
22: while l ≤ j do
23: s2 ← s2 + v[l]
24: l ← l + 1
25: end while
26: if s1 − s2 > x then
27: x ← s1 − s2
28: end if
29: k ← k + 1
30: end while
31: j ← j + 1
32: end while
33: i ← i + 1
34: end while
35: output x

In questo codice c’è un errore nella riga 14, ma in c’è un errore anche nella 10 dato che si compara i con n che non è stata dichiarata?

Esercizio 14

Quattro gondole A, B, C e D sono ormeggiate sulla riva sinistra di un canale. Un gondoliere deve portare le
quattro gondole sulla riva destra.
Essendo di differente grandezza, le gondole impiegano tempi diversi per attraversare il canale: la gondola A
impiega 2 minuti, la gondola B 4 minuti, la gondola C 9 minuti e la gondola D 13 minuti.
Il gondoliere pu`o condurre una sola gondola alla volta, ma pu`o agganciare alla gondola su cui si trova una
seconda gondola e trainarla, impiegando in questo caso il tempo di quella pi`u lenta.
Qual `e il tempo minimo necessario al gondoliere per trasferire le 4 gondole da una riva all’altra?

Domande: Non capisco, il gondoliere può trasportare 2 gondole (contando la sua 3) o può solo condurre 1(contando la sua 2)?
Poi in caso, impiega il tempo di quella più lenta nel senso, se conduce A e D il tempo totale è quello di D?

Esercizio 15

Poldo `e un famoso mangiatore di panini. Il dottore ha provato a prescrivergli varie diete per convincerlo a
mangiare meno, ma Poldo trova sempre dei modi ingegnosi per aggirare le regole e mangiare quanti pi`u panini
possibile.
Per questo motivo il dottore ha prescritto a Poldo una nuova dieta: potr`a infatti mangiare esattamente K
panini, a patto che l’impatto calorico sia il minimo possibile.
Definiamo impatto calorico la differenza di peso (in grammi) tra il panino pi`u pesante mangiato e quello pi`u
leggero.
Oggi Poldo pu`o mangiare esattamente K = 3 panini. Aiutalo a trovare il minimo impatto calorico possibile,
sapendo che i panini disponibili hanno i seguenti pesi (in grammi):
48, 24, 29, 17, 21, 33, 35, 44, 41

Con quale relazione si può risolvere questo esercizio?

Esercizio 16

Considerate una piramide di numeri, come quella mostrata nella figura che segue. Definiamo una discesa come
una sequenza di numeri ottenuti partendo dalla cima della piramide e giungendo alla base, passando ogni volta
per uno dei due numeri sottostanti. Inoltre, il valore di una discesa `e definito come la somma dei numeri
della discesa. La discesa massima di una piramide `e quella che ha il massimo valore tra tutte le discese della
piramide.
Nell’esempio seguente `e stata evidenziata la discesa ottenuta partendo dalla cima scendendo prima a sinistra e
poi sempre a destra fino alla base. I numeri che compongono tale discesa sono (1, 2, 7, 11) e la loro somma vale
21, che `e il valore di questa discesa.
           1
        2    9
   2      7      5
8     4    11     6
Sia Min il valore della discesa di somma minima, Max il valore della discesa di somma massima. Quanto vale
Min+Max?

Secondo i miei calcoli la discesa minore è (1,2,2,4)=7
e la maggiore (1,9,5,11)=26 la loro somma è 33 però nelle soluzioni l’esercizio invece fa 37, com’è possibile?

Esercizio 17

Avete un insieme di numeri di cui volete calcolare la somma totale. Potete sommare due numeri alla volta,
inserendo il risultato nell’insieme di numeri, fino ad arrivare ad avere un numero solo, pari alla somma totale.
Il costo di una somma `e pari al valore della somma stessa. Ad esempio, se volete sommare i numeri 2,3 e 7,
possiamo ad esempio sommare 2 e 3, con costo 5, e poi sommare 5 e 7, con costo 12. Il costo totale `e quindi
5+12=17. In alternativa, sommando prima 3 e 7 (costo 10) e poi 2 e 10 (costo 12), il costo totale per arrivare
alla somma `e 10+12=22.
Se i numeri da sommare sono i seguenti:
7, 11, 4, 8, 21, 15
qual `e il costo minimo per sommarli tutti tra di loro?

Secondo i miei calcoli il costo della somma di queste cifre è sempre uguale a 66 e non mi varia mai, anche cambiando gli addendi(costo=somma). Però nelle soluzioni mi compare 162, sto sbagliando qualcosa?

Esercizio 3

A, B e C sono definiti nella ricorrenza e puoi notare come Gib(3) = A \times Gib(1) + B \times Gib(2) ossia A + B \times 2 = 11 e Gib(4) = A \times Gib(2) + B \times Gib(3) ossia A \times 2 + B \times 11 = 50. Risolvendo il sistema con quelle 2 equazioni trovi che A = 3, B = 4. Ed ora puoi trovare C come A \times 11 + b \times 50 = 233.

Esercizio 5

scolastiche
Questa è la soluzione, i numeri in rosso rappresentano il numero di persone in ogni insieme, ed i numeri in verde rappresentano l’ordine in cui li ho trovati. Lascio come esercizio al lettore stabilire i vari passaggi.

Esercizio 14

Il gondoliere non possiede una gondola ma deve spostare le 4 esistenti, lui parte a sinistra con le 4 gondole, ne porta 2 a destra, e torna indietro con una delle due, e ripete il procedimento fino a quando tutte 4 le gondole sono a destra. Per quanto riguarda la seconda domanda l’hai interpretata correttamente (andando verso destra, verso sinistra torna sempre con una sola gondola) il tempo di attraversamento è quello della gondola più lenta.

Esercizio 15

Semplicemente devi scegliere 3 panini in modo che la differenza tra il peso del panino più pesante ed il peso del panino più leggero sia minima. Per farlo in maniera intelligente puoi ordinare i pesi dei panini ottenendo: 17, 21, 24, 29, 33, 35, 41, 44, 48 e poi scegliere i 3 elementi consecutivi che minimizzano tale differenza, in questo caso ottieni 29 33 35 che hanno 6 come impatto calorico

Esercizio 16

Nel calcolo della discesa minima hai fatto 1+2+2+4 = 7, farebbe invece 9, mentre la discesa massima passa da 1, 9, 7, 11 che se sommati fanno 28. 9+28=37.

Esercizio 17

Tu stai solo contando la somma finale ma, come detto nel testo devi anche considerare le somme parziali. Inoltre è semplice convincersi che per sommare ottimamente tali numeri bisogna sommare sempre la coppia minore nell’insieme ottenendo:

  • \{4, 7, 8 , 11, 15, 21\}. Costo 0.
  • Sommo 4 e 7. \{8 ,11, 11, 15, 21\}. Costo totale 11.
  • Sommo 8 e 11. \{11, 15, 19, 21\}. Costo totale 30.
  • Sommo 11 e 15. \{19, 21, 26\}. Costo totale 56.
  • Sommo 19 e 21. \{26, 40\}. Costo totale 96.
  • Sommo 26 e 40. \{66\}. Costo totale 162.
1 Mi Piace

Intanto grazie per aver dedicato del tempo per aiutarmi, sei stato molto gentile.

Ok, ora ho capito, quindi n è le volte in cui si ripete questa cosa?

Nonostante lei mi abbia spiegato come ha strutturato questo diagramma di Venn, non l’ho capito a pieno, poiché ok mi hai dato la soluzione, però non mi ha detto il procedimento (anche perché come ha scritto, volevo che io stabilissi i prossimi passaggi) , perciò ho provato ad applicarlo nell’esercizio, e mi sono sorti altri problemi. Cioè specifica che a 10 di questi piacciono i treni, a 10 piacciono le macchine da corsa e a 10 gli aerei. Considerando anche le altre specificazioni:

• solo uno ha la passione per tutti 3 i mezzi
• a 7 amici piacciono i treni ma non gli aerei
• a 5 amici piacciono solo le macchine
• a 8 amici piacciono gli aerei ma non le macchine

Tecnicamente sta specificando solo 21 passioni di questi amici. Quindi il restante (di cui non si sa il numero) non si sa. Trascurando questo problema però, sorgono altri dubbi. Se a 7 piacciono i treni ma non gli aerei, vuol dire che gli piacciono anche le macchine? Stessa cosa con i 8 a cui piacciono gli aerei ma non le macchine, gli piacciono pure i treni?

Quindi se decido che il gondoliere porta a destra A(2m) e B(4m), arrivato a destra spendo 4m, e torno indietro con A spendo altri 2m o non si contano? Se non si contano, non penso faccia cosi tanta differenza questa scelta, poiché o faccio portare A o non la faccio portare sempre 4m spendo no?

Credo di aver capito. L’impatto calorico qui: (17,21,24) è 7?

Ok, ma non capisco una cosa, perché sommi 15 e 11 se già l’hai sommato prima con 8? infatti nella “lista” dei numeri l’hai tipo copiato una volta. Non so se ho capito bene: quindi si deve iniziare a fare le somme parziali dai numeri più piccoli fino a ridurti a quelli più grandi?

n rappresenta un indice casuale della successione.

Spiego il procedimento in modo da chiarire le idee.

  1. Inizialmente appunto come ad una persona piacciono tutti e 3 i mezzi.
  2. So che a 5 persone piacciono solo le macchine
  3. So che ad 8 persone piacciono gli aerei ma non le macchine, quindi a 2 persone dovranno piacere sia gli aerei sia le macchine. Sapendo che ad una di tali persone piacciono tutti e 3 i mezzi all’altra dovranno piacere aerei e macchine ma non i treni.
  4. Per lo stesso ragionamento se a 7 persone piacciono i treni ma non gli aerei significa che a 3 persone piacciono sia i treni sia gli aerei, sapendo inoltre che ad una di queste 3 persone piacciono tutti e 3 i mezzi allora a 2 persone piacciono sia gli aerei sia i treni ma non le macchine.
  5. Sapendo che in totale hai 10 persone a cui piacciono gli aerei puoi capire che a 6 (10 - 4) piacciono solo quelli.
  6. Sapendo che in totale hai 10 persone a cui piacciono le macchine puoi capire che a 3 (10 - 7) piacciano sia i treni sia le macchine.
  7. Puoi trovare che a 4 persone piacciono solo i treni come nel punto 5

Contano anche i minuti del ritorno, ora che sai ciò a quale risultato arrivi?

Sì, dovendo scegliere il minimo prenderai 29, 33, 35 ottenendo 6.

Sono 2 11 diversi, il primo appartiene alla lista iniziale, il secondo viene inserito quando sommi 4 e 7. In generale in ogni operazione prendi due elementi dall’insieme, li sommi, inserisci nell’insieme la somma ed aggiungi al costo totale la somma trovata. Ad ogni operazione diminuirai di 1 la cardinalità dell’insieme quindi, avendo inizialmente 6 elementi ti basteranno 5 somme per rimanere con un unico elemento. Ma ovviamente in base a che somme fai in ogni passaggio il costo totale cambia (anche se nell’insieme ti rimane in ogni caso il 66)

Forse nel suo procedimento ci sono delle incongruenze, cioè dice nel punto 3 che ci sono 8 persone che gli piacciono gli aerei MA non le macchine, ok, ma in base a cosa poi dice che ci sono 2 persone che gli piacciono anche le macchine oltre i aerei? Ok conta quello che gli piace tutte 3, ma l’altro da dove lo ricava? Stesso dubbio mi viene per il punto 4, cioè che in 7 persone a cui gli piacciono i treni e NON gli aerei mi trova però 2(escluso sempre quello a cui piacciono tutti i mezzi) persone a cui piacciono anche gli aerei.

Facendo delle prove mi sono reso conto che tecnicamente, se portassi ogni gondola uno a uno perdo 28 min, ma se ne portassi sempre una in più (cioè 2) perderei sempre più tempo. Nelle soluzioni c’è un eccezione dato che i minuti minimi sono 27 in realtà.

Dal testo sai che a 10 persone piacciono gli aerei, se ad 8 di esse non piacciono le macchine a 2 dovranno piacere dal momento in cui ognuna di quelle 10 persone dovrà apprezzare o meno le macchine. Puoi usare lo stesso ragionamento per la domanda successiva.

Non sono convinto tu abbia capito pienamente il testo. Ti mostro un esempio:

  • Sinistra = \{A, B, C, D\}. Destra = \{\}. Tempo totale = 0 e ti trovi a sinistra.
  • Porti A e B a destra impiegandoci max(2,4)= 4 minuti. Sinistra = \{C, D\}. Destra = \{A, B\}. Tempo totale = 4 e ti trovi a destra.
  • Porti A a sinistra impiegandoci 2 minuti. Sinistra = \{A, C, D\}. Destra = \{B\}. Tempo totale = 6 e ti trovi a sinistra.
  • Porti A e C a destra impiegandoci max(2,9)= 9 minuti. Sinistra = \{D\}. Destra = \{A, B, C\}. Tempo totale = 13 e ti trovi a destra.
  • Porti A a sinistra impiegandoci 2 minuti. Sinistra = \{A, D\}. Destra = \{B, C\}. Tempo totale = 15 e ti trovi a sinistra.
  • Porti A e D a destra impiegandoci max(2,13)= 13 minuti. Sinistra = \{\}. Destra = \{A, B, C, D\}. Tempo totale = 28 e ti trovi a destra.

In questo modo hai finito in 28 minuti, prova a ragionare a come farlo in 27 minuti.

Non so come fare :sweat_smile: poiché lei nel suo procedimento utilizza la gondola meno esosa, se provassi ad utilizzare B,C,D come lei a utilizzato A, avrei numeri più grandi di 28. Quindi rimane un qualche modo, uno scambio di gondole, che mi fa risparmiare un solo minuto. Possibile sia un errore delle soluzioni?

La soluzione è corretta, ma le consiglio di pensarci ancora, se trova la soluzione da solo è molto più gratificante :smile: