La sequenza di numeri segmentati o numeri primi di misurazione ( OEIS A002048 ) è la sequenza di numeri in modo tale che ciascun membro sia il numero positivo più piccolo (maggiore di zero) che non può essere costituito da una somma di numeri consecutivi precedenti, con a(0) = 1.
Esempio
Per calcolare a(7)calcoliamo prima a(0->6) = [1, 2, 4, 5, 8, 10, 14]. iniziamo quindi da zero e passiamo attraverso i numeri fino a quando non troviamo uno che non è la somma di uno o più numeri consecutivi nella sequenza.
1 = 1
2 = 2
3 = 1 + 2
4 = 4
5 = 5
6 = 2 + 4
7 = 1 + 2 + 4
8 = 8
9 = 4 + 5
10 = 10
11 = 2 + 4 + 5
12 = 1 + 2 + 4 + 5
13 = 5 + 8
14 = 14
15 = ????
Dal momento che non è possibile effettuare quindici sommando una sottosequenza consecutiva e ogni numero più piccolo può essere quindici è il numero successivo nella sequenza. a(7) = 15
Compito
Il tuo compito è prendere un numero (tramite metodi standard) e produrre l'ennesimo termine in questa sequenza (tramite metodi di output standard). Questo è code-golf e verrai valutato come tale.
Casi test
0 -> 1
1 -> 2
2 -> 4
3 -> 5
4 -> 8
5 -> 10
6 -> 14
7 -> 15
8 -> 16
9 -> 21
()per renderla una funzione corretta. Il parziale applicato!!è una sezione operatore e deve essere racchiuso()per renderlo una funzione. Senza è solo un frammento che diventa solo una funzione (o "valore" per usare termini Haskell rigorosi) con l'argomento mancante.