sfondo
Una sequenza di insiemi di ordine crescente è definita come una sequenza di insiemi interi che soddisfa quanto segue:S 1 , S 2 , ⋯ , S n
- Ogni è un sottoinsieme non vuoto di . { 1 , 2 , ⋯ , N }
- Per , , ovvero due insiemi consecutivi non hanno elementi in comune.S i ∩ S i + 1 = ∅
- Per , la media (valore medio) di è strettamente inferiore a quella di .S i S i + 1
Sfida
Dato un numero intero positivo N, emette la lunghezza della sequenza d'ordine impostata crescente crescente più lunga N.
Casi test
Questi sono basati sui risultati dell'utente thundre di Project Euler .
1 => 1 // {1}
2 => 2 // {1} {2}
3 => 3 // {1} {2} {3}
4 => 5 // {1} {2} {1,4} {3} {4}
5 => 7 // {1} {2} {1,4} {3} {2,5} {4} {5}
6 => 10 // {1} {2} {1,4} {3} {1,4,5} {2,3,6} {4} {3,6} {5} {6}
7 => 15 // {1} {2} {1,4} {3} {1,2,7} {3,4} {1,2,5,7} {4} {1,3,6,7} {4,5} {1,6,7} {5} {4,7} {6} {7}
8 => 21
9 => 29
10 => 39
11 => 49
12 => 63
13 => 79
14 => 99
15 => 121
16 => 145
17 => 171
18 => 203
19 => 237
20 => 277
21 => 321
22 => 369
23 => 419
24 => 477
25 => 537
Regole
Si applicano le regole standard del code-golf . Vince l'invio valido più breve in byte.
generosità
Questo problema è stato discusso qui sul forum di Project Euler circa 4 anni fa, ma non siamo riusciti a trovare un algoritmo di tempo polinomiale dimostrabile (in termini di N). Pertanto, assegnerò +200 ricompensa alla prima presentazione che raggiunge questo obiettivo, o dimostrerò la sua impossibilità.