Consapevolezza posizionale


10

Consapevolezza posizionale

Il tuo compito è generare un programma che, per ogni permutazione dei suoi personaggi (che include il programma originale), emetta le posizioni di ogni personaggio rispetto al programma originale.

Se il tuo programma è

Derp

devi produrre

[0, 1, 2, 3]

(o qualche equivalente). Questo perché Dè in 0° posizione, eè nel 1st, r il 2nd, e pil 3rd.

Prendiamo un altro programma che è il programma originale, ma con i suoi caratteri permutati:

epDr

Devi produrre

[1, 3, 0, 2]

perché eè nella 1posizione di st del programma originale, pè nella 3posizione di rd, Dil 0°, e rl' 2ND.

Se il programma originale ha due caratteri ripetuti:

abcda -> [0, 1, 2, 3, 4]

Quindi per la permutazione, il 0e 4l'array devono essere in ordine crescente:

baadc -> [1, 0, 4, 3, 2] (0 first, then 4)

Regole:

  • Il programma deve contenere almeno due caratteri univoci.
  • Al massimo i floor(n/2)personaggi devono essere gli stessi.

     aabb (acceptable)
     aaaabc (not acceptable, only floor(6/2) = 3 a's allowed)
    
  • L'output del tuo programma può essere un array (o qualcosa di simile) contenente tutte le posizioni dei caratteri in ordine, oppure una stringa con qualsiasi delimitatore, quindi questi sono perfettamente a posto:

    [0, 1, 2, 3]
    0,1,2,3
    0 1 2 3
    

7
Non credo che questa sfida consenta qualsiasi soluzione non banale poiché praticamente qualsiasi risposta in qualsiasi lingua di lunghezza> = ~ 5 non sarà un programma valido per ogni permutazione, per non parlare di un programma che risolve la sfida a portata di mano.
orlp

1
@ Qwerp-Derp Quasi nessuno dice nulla sulla sandbox. Qualche tempo fa, ho pubblicato una domanda dopo essere stato nella sandbox per circa un mese (circa). E solo quando l'ho pubblicato, è stato quando la gente ha fatto notare errori e i voti negativi sono piovuti. Secondo la mia onesta opinione, la sandbox è inutile.
Ismael Miguel,

1
Per una volta, mi sento come in questa sfida, una risposta più lunga sarebbe più impressionante di una più breve.
Wojowu,

1
@Wojowu Posso farlo bowling , se possibile - vince il programma più lungo.
clismique,

1
Il programma 12in R sarebbe valido? 12Stamperebbe semplicemente e se permutato; 21.
Billywob,

Risposte:


21

In realtà , 2 byte

10

Provalo online!

Questo stampa

0
1

mentre la (unica) altra permutazione

01

stampe

1
0

Come funziona

In In realtà, le cifre consecutive vengono analizzate separatamente, quindi 10spinge 1 sulla pila, quindi 0 sopra di essa.

Al termine del programma, la pila viene stampata dall'alto verso il basso, quindi stampa prima 0 , quindi un avanzamento riga, quindi 1 .

Il programma sottovalutato 01fa lo stesso, nell'ordine opposto.


1
Altre lingue in cui funziona; Scherzi a parte, 05ab1e, ///, 2sable.
Pellicano alzavola,

Le specifiche indicano che i numeri devono essere separati. Funziona seriamente, ma in realtà è solo seriamente 2.0.
Dennis,

7

Gelatina , 2 byte

;J

Provalo online!

Uscite: [0, 1]

Altre J;uscite di permutazione :[1, 0]

Come funziona:

;J
;          Concats 0 with...
 J         [1...len(z)], here just [1]

J;
J          [1...len(z)], here just [1]
 ;         ...Concatted with 0
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.