XXI Gara Nazionale a Squadre – Finale nazionale 17 settembre 2020 – Numero 19
«Solo un atto di vero amore può sciogliere un cuore di ghiaccio».
Invece, per un cervello di ghiaccio un rimedio efficace potrebbe essere cimentarsi con il seguente problema.
Siano e
due funzioni che restituiscono rispettivamente il numero di zeri e di uni nella scrittura in base 2 del numero
, e sia
.
Per esempio, quindi, , mentre
.
Calcolare quanto vale la somma .
Rispondere con la somma di numeratore e denominatore della frazione ridotta ai minimi termini.
Soluzione 1
Forza bruta: calcolo i valori di per ogni
da 1 a 1023
![]() | ![]() | ![]() | ![]() | ![]() | Totale |
---|---|---|---|---|---|
1 | 1 | 0 | 1 | ![]() | ![]() |
2 | 10 | 1 | 1 | ![]() | 0 |
3 | 11 | 0 | 2 | ![]() | ![]() |
4 | 100 | 2 | 1 | ![]() | ![]() |
5 | 101 | 1 | 2 | ![]() | ![]() |
… | … | … | … | … | … |
13 | 1101 | 1 | 3 | ![]() | ![]() |
… | … | … | … | … | … |
17 | 10001 | 3 | 2 | ![]() | ![]() |
… | … | … | … | … | … |
1022 | 1111111110 | 1 | 9 | ![]() | ![]() |
1023 | 1111111111 | 0 | 10 | ![]() | ![]() |
Osserva
- Ho compilato la tabella utilizzando Python!
- La risposta al quesito: 341+1024 = 1365
- Non si intravede uno schema risolutivo semplice.
Soluzione 2
Faccio i conteggi raggruppando per numero di 1 nella rappresentazione binaria (i valori della funzione hanno lo stesso denominatore)
![]() | ![]() | ![]() | Quanti? | ![]() | Prodotti | Totale |
---|---|---|---|---|---|---|
1 | 0 | 1 | 1 | ![]() | ![]() | |
1 | 1 | 10 | 1 | ![]() | ![]() | |
1 | 2 | 100 | 1 | ![]() | ![]() | |
1 | 3 | 1000 | 1 | ![]() | ![]() | |
1 | 4 | 10000 | 1 | ![]() | ![]() | |
1 | 5 | 100000 | 1 | ![]() | ![]() | |
1 | 6 | 1000000 | 1 | ![]() | ![]() | |
1 | 7 | 10000000 | 1 | ![]() | ![]() | |
1 | 8 | 100000000 | 1 | ![]() | ![]() | |
1 | 9 | 1000000000 | 1 | ![]() | ![]() | 0 |
2 | 0 | 11 | 1 | ![]() | ![]() | |
2 | 1 | 110 101 | ![]() | ![]() | ![]() | |
2 | 2 | 1100 … 1001 | ![]() | ![]() | ![]() | |
2 | 3 | 11000 … 10001 | ![]() | ![]() | ![]() | |
2 | 4 | 110000 … 100001 | ![]() | ![]() | ![]() | |
2 | 5 | 1100000 … 1000001 | ![]() | ![]() | ![]() | |
2 | 6 | 11000000 … 10000001 | ![]() | ![]() | ![]() | |
2 | 7 | 110000000 … 100000001 | ![]() | ![]() | ![]() | |
2 | 8 | 1100000000 … 1000000001 | ![]() | ![]() | ![]() | ![]() |
3 | 0 | 111 | 1 | ![]() | ![]() | |
3 | 1 | 1110 … 1011 | ![]() | ![]() | ![]() | |
3 | 2 | 11100 … 10011 | ![]() | ![]() | ![]() | |
3 | 3 | 111000 … 100011 | ![]() | ![]() | ![]() | |
3 | 4 | 1110000 … 1000011 | ![]() | ![]() | ![]() | |
3 | 5 | 11100000 … 10000011 | ![]() | ![]() | ![]() | |
3 | 6 | 111000000 … 100000011 | ![]() | ![]() | ![]() | |
3 | 7 | 1110000000 … 1000000011 | ![]() | ![]() | ![]() | ![]() |
4 | 0 | 1111 | 1 | ![]() | ![]() | |
4 | 1 | 11110 … 10111 | ![]() | ![]() | ![]() | |
4 | 2 | 111100 … 100111 | ![]() | ![]() | ![]() | |
4 | 3 | 1111000 … 1000111 | ![]() | ![]() | ![]() | |
4 | 4 | 11110000 … 10000111 | ![]() | ![]() | ![]() | |
4 | 5 | 111100000 … 100000111 | ![]() | ![]() | ![]() | |
4 | 6 | 1111000000 … 1000000111 | ![]() | ![]() | ![]() | ![]() |
5 | 0 | 11111 | 1 | ![]() | ![]() | |
5 | 1 | 111110 … 101111 | ![]() | ![]() | ![]() | |
5 | 2 | 1111100 … 1001111 | ![]() | ![]() | ![]() | |
5 | 3 | 11111000 … 10001111 | ![]() | ![]() | ![]() | |
5 | 4 | 111110000 … 100001111 | ![]() | ![]() | ![]() | |
5 | 5 | 1111100000 … 1000001111 | ![]() | ![]() | ![]() | ![]() |
6 | 0 | 111111 | 1 | ![]() | ![]() | |
6 | 1 | 1111110 … 1011111 | ![]() | ![]() | ![]() | |
6 | 2 | 11111100 … 10011111 | ![]() | ![]() | ![]() | |
6 | 3 | 111111000 … 100011111 | ![]() | ![]() | ![]() | |
6 | 4 | 1111110000 … 1000011111 | ![]() | ![]() | ![]() | ![]() |
7 | 0 | 1111111 | 1 | ![]() | ![]() | |
7 | 1 | 11111110 … 10111111 | ![]() | ![]() | ![]() | |
7 | 2 | 111111100 … 100111111 | ![]() | ![]() | ![]() | |
7 | 3 | 1111111000 … 1000111111 | ![]() | ![]() | ![]() | ![]() |
8 | 0 | 11111111 | 1 | ![]() | ![]() | |
8 | 1 | 111111110 … 101111111 | ![]() | ![]() | ![]() | |
8 | 2 | 1111111100 … 1001111111 | ![]() | ![]() | ![]() | ![]() |
9 | 0 | 111111111 | 1 | ![]() | ![]() | |
9 | 1 | 1111111110 … 1011111111 | ![]() | ![]() | ![]() | ![]() |
10 | 0 | 1111111111 | 1 | ![]() | ![]() | ![]() |
La somma dei totali parziali
=
=
=
La risposta al quesito: 341 + 1024 = 1365
Soluzione 3
Deve esistere una tecnica risolutiva più veloce!
???