Considera la matrice infinita:
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 0 2 3 0 0 2 3 0 0 2 3 0 0 2 3
0 0 0 4 5 6 0 0 0 4 5 6 0 0 0 4 ...
0 0 0 0 7 8 9 10 0 0 0 0 7 8 9 10
0 0 0 0 0 11 12 13 14 15 0 0 0 0 0 11
...
Ogni nuova riga della matrice viene costruita iniziando con z
zeri, dove z
è la lunghezza delle cifre positive che stiamo usando in quella riga. Le cifre positive vengono costruite iniziando con 1
e incrementando e aggiungendo una cifra aggiuntiva ogni volta che si ripetono le righe. Quel modello si ripete all'infinito a destra. Quindi, ad esempio, la prima riga inizia 0, 1, 0, 1...
mentre inizia la seconda riga 0,0, 2,3, 0,0, 2,3...
. Seguendo il modello, inizia la terza riga 0,0,0, 4,5,6, 0,0,0, 4,5,6...
.
Dati due numeri interi come input n
e x
, in output, i primi x
numeri (più in alto) della n
th colonna della matrice sopra. (Puoi scegliere 0 o 1-indicizzazione per le colonne, basta specificare quale nella tua presentazione.)
Ad esempio, per l'input n = 0
(indicizzato 0), la colonna è interamente 0
s, quindi l'output sarebbe solo x
0
s.
Per input n = 15
e x = 6
, l'output sarebbe [1, 3, 4, 10, 11, 0]
.
Per input n = 29
e x = 15
, l'output sarebbe [1, 0, 6, 8, 15, 0, 0, 34, 39, 0, 0, 0, 0, 0, 120]
.
Per input n = 99
e x = 25
, l'output sarebbe [1, 3, 4, 0, 15, 0, 0, 0, 37, 55, 56, 0, 87, 93, 0, 0, 151, 163, 176, 0, 0, 0, 0, 0, 325]
.
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).
n=1
perché il risultato di sapply non è più una matrice. questa soluzione è costosa mi chiedo se ce n'è una più golfista?