Stavo giocando con alcuni numeri e ho trovato una sequenza che, ovviamente, è su OEIS. È A005823 : numeri la cui espansione ternaria non contiene 1 . Va:
a (2n) = 3 * a (n) +2
a (2n + 1) = 3 * a (n + 1)
a (1) = 0
a = 0,2,6,8,18,20,24,26,54 ....
Ho scritto un programma CJam che genera la prima n di questi numeri convertendo l'indice in binario, sostituendo 1 con 2 e convertendo da ternario a decimale.
Ho anche notato che qualsiasi numero pari può essere ottenuto prendendo la somma di due numeri nella sequenza (a volte il numero con se stesso).
La sfida:
Dato qualsiasi numero pari non negativo come input, genera gli indici di due numeri nella sequenza che lo sommano. (Nota che a volte sono possibili più coppie.)
Le regole:
- Specifica se stai utilizzando l'indicizzazione 0 o 1.
- Se stai producendo una stringa, inserisci un delimitatore tra i due indici.
- È possibile eseguire l'output come numero complesso.
- Se lo desideri, puoi generare ogni coppia valida.
- Codice Golf: vince la risposta più breve
Casi test
Uso l'indicizzazione 0. Qui elencherò ogni possibile output per ogni input, ma è necessario solo emetterne uno.
0: [0 0] 2: [1 0] 4: [1 1] 6: [2 0] 8: [2 1] [3 0] 10: [3 1] 12: [2 2] 14: [3 2] 16: [3 3] 18: [4 0] 30: [6 2] 32: [6 3] [7 2] 46: [7 5] 50: [7 6] 120: [10 10] 338: [19 18] 428: [30 23] [31 22] 712: [33 27] [35 25] [41 19] [43 17] [49 11] [51 9] [57 3] [59 1] 1016: [38 37] [39 36]Grazie a @Luis Mendo per l'aiuto nel caso di test.
Correlati: è all'interno del set Cantor?