Un righello standard di lunghezza n ha segni di distanza nelle posizioni 0, 1, ..., n (in qualsiasi unità). Un righello sparso ha un sottoinsieme di quei segni. Un righello può misurare la distanza k se ha segni nelle posizioni p e q con p - q = k .
La sfida
Dato un numero intero positivo n , emette il numero minimo di segni richiesto in un righello rado di lunghezza n in modo che possa misurare tutte le distanze 1, 2, ..., n .
Questo è OEIS A046693 .
Ad esempio, per l'ingresso 6 l'uscita è 4. Vale a dire, un righello con segni a 0, 1, 4, 6 funziona, come 1−0 = 1, 6−4 = 2, 4−1 = 3, 4−0 = 4, 6−1 = 5 e 6−0 = 6.
Regole aggiuntive
- L'algoritmo dovrebbe essere valido per n . Arbitrariamente grandi . Tuttavia, è accettabile se il programma è limitato da limitazioni di memoria, tempo o tipo di dati.
- L'input / output può essere preso / prodotto con qualsiasi mezzo ragionevole .
- Programmi o funzioni sono consentiti, in qualsiasi linguaggio di programmazione . Sono vietate le scappatoie standard .
- Vince il codice più breve in byte.
Casi test
1 -> 2
2 -> 3
3 -> 3
4 -> 4
5 -> 4
6 -> 4
7 -> 5
8 -> 5
9 -> 5
10 -> 6
11 -> 6
12 -> 6
13 -> 6
14 -> 7
15 -> 7
16 -> 7
17 -> 7
18 -> 8
19 -> 8
20 -> 8
21 -> 8
22 -> 8
23 -> 8
24 -> 9
25 -> 9
26 -> 9
27 -> 9
28 -> 9
29 -> 9
30 -> 10
31 -> 10
32 -> 10