Supponiamo di iniziare con l'elenco infinito di numeri primi:
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, ...
Quindi, prendiamo le differenze assolute tra ogni coppia di numeri, ripetutamente:
[1, 2, 2, 4, 2, 4, 2, 4, 6, 2, 6, 4, 2, 4, 6, 6, 2, 6, 4, ...
[1, 0, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 0, 4, 4, 2, ...
[1, 2, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 2, 4, 0, 2, ...
[1, 2, 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 2, 2, 4, 2, ...
Si noti che il numero iniziale è 1 ogni volta. La congettura di Gilbreath è la previsione che questo continua ad essere il caso per sempre.
L'unico modo in cui il numero iniziale smetterebbe di essere 1 è se il numero successivo dopo non era né uno 0 né uno 2. L'unico modo in cui il secondo numero non sarebbe uno 0 o un 2 è se il numero successivo non era né un 0 né un 2. E così via.
L'indice del primo numero, diverso dal 1 iniziale, che non è né uno 0 né un 2, non può mai scendere di più di 1 tra una coppia consecutiva di sequenze. Questo fatto è stato usato per stabilire un limite inferiore molto forte quando, se mai, una sequenza potrebbe non avere un 1 come primo elemento.
In questa sfida, ti verrà dato l'indice di una sequenza e devi generare l'indice del primo numero in quella sequenza che non è il 1 iniziale e non è uno 0 o un 2.
Ad esempio, nella quarta sequenza di differenze assolute sopra:
[1, 2, 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 2, 2, 4, 2, ...
La prima voce che non è né uno zero né due, oltre alla prima, è la 15a posizione, 14 zero indicizzata. Quindi, se l'ingresso fosse 4, si otterrebbe 14.
Per gli ingressi da 1 a 30, le uscite dovrebbero essere:
[3, 8, 14, 14, 25, 24, 23, 22, 25, 59, 98, 97, 98, 97, 174, 176, 176, 176, 176, 291, 290, 289, 740, 874, 873, 872, 873, 872, 871, 870]
Questo è OEIS A000232 .
Ciò presuppone che tu abbia 1 input indicizzati e 0 output indicizzati. Puoi indicizzare i tuoi input e output a partire da qualsiasi numero intero costante, purché tu possa accettare l'intervallo di input corrispondente a tutte le sequenze.
Requisiti: la soluzione deve essere eseguita al massimo 1 minuto con un input fino a 30. Se è abbastanza vicino da dipendere dalle specifiche del computer, è consentito.
Il codice più corto vince.