Innanzitutto, parliamo delle sequenze di Beatty . Dato un numero irrazionale positivo r , possiamo costruire una sequenza infinita moltiplicando gli interi positivi per r in ordine e prendendo la base di ogni calcolo risultante. Per esempio,
Se r > 1, abbiamo una condizione speciale. Possiamo formare un altro numero irrazionale s come s = r / ( r - 1). Questo può quindi generare la propria sequenza Beatty, B s . Il trucco è che B r e B s sono complementari , il che significa che ogni numero intero positivo si trova esattamente in una delle due sequenze.
Se impostiamo r = ϕ, il rapporto aureo, otteniamo s = r + 1 e due sequenze speciali. La sequenza Wythoff inferiore per r :
1, 3, 4, 6, 8, 9, 11, 12, 14, 16, 17, 19, 21, 22, 24, 25, 27, 29, ...
e la sequenza Wythoff superiore per s :
2, 5, 7, 10, 13, 15, 18, 20, 23, 26, 28, 31, 34, 36, 39, 41, 44, 47, ...
Queste sono le sequenze A000201 e A001950 su OEIS, rispettivamente.
La sfida
Dato un numero intero di input positivo 1 <= n <= 1000
, emettere uno di due valori distinti che indicano se l'input è nella sequenza Wythoff inferiore o nella sequenza superiore . I valori di output potrebbero essere -1
e 1
, true
e false
, upper
e lower
, ecc.
Sebbene l'algoritmo inviato debba teoricamente funzionare per tutti gli input, in pratica deve funzionare solo con i primi 1000 numeri di input.
I / O e regole
- L'input e l'output possono essere forniti con qualsiasi metodo conveniente .
- Si può presumere che l'input e l'output si adattino al tipo di numero nativo della tua lingua.
- È accettabile un programma completo o una funzione. Se una funzione, è possibile restituire l'output anziché stamparlo.
- Sono vietate le scappatoie standard .
- Si tratta di code-golf quindi si applicano tutte le normali regole del golf e vince il codice più breve (in byte).