Conciencia Posicional

10

Conciencia Posicional

Su tarea es generar un programa que, por cada permutación de sus caracteres (que incluye el programa original), muestre las posiciones de cada personaje en relación con el programa original.

Si tu programa es

Derp

debes dar salida

[0, 1, 2, 3]

(o algún equivalente). Esto es porque Destá en la 0posición XX, eestá en el 1st, R la 2ND, y pel 3rd.

Tomemos otro programa que es el programa original, pero con sus caracteres permutados:

epDr

Debe salida

[1, 3, 0, 2]

porque eestá en la 1posición st del programa original, pse encuentra en la 3posición tercera, Del 0XX, y rla 2ND.

Si el programa original tiene dos caracteres repetidos:

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

Luego, para la permutación, el 0y el 4en la matriz deben estar en orden ascendente:

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

Reglas:

  • Su programa debe contener al menos dos caracteres únicos.
  • A lo sumo, los floor(n/2)personajes deben ser lo mismo.

     aabb (acceptable)
     aaaabc (not acceptable, only floor(6/2) = 3 a's allowed)
    
  • La salida de su programa puede ser una matriz (o algo similar) que contiene todas las posiciones de los caracteres en orden, o una cadena con cualquier delimitador, por lo que estos están perfectamente bien:

    [0, 1, 2, 3]
    0,1,2,3
    0 1 2 3
    
clismique
fuente
77
No creo que este desafío permita ninguna solución no trivial, ya que prácticamente cualquier respuesta en cualquier idioma de longitud> = ~ 5 no será un programa válido para cada permutación, y mucho menos un programa que resuelva el desafío en cuestión.
orlp
1
@ Qwerp-Derp Casi nadie dice nada en la caja de arena. Hace un tiempo, publiqué una pregunta después de estar en la caja de arena durante aproximadamente un mes (más o menos). Y solo cuando lo publiqué, fue cuando la gente señaló errores y llovieron los votos negativos. En mi sincera opinión, el sandbox es inútil.
Ismael Miguel
1
Por una vez, siento que en este desafío, una respuesta más larga sería más impresionante que una más corta.
Wojowu
1
@Wojowu Puedo convertirlo en un juego de bolos , si eso es posible: el programa más largo gana.
clismique
1
¿ 12Sería válido el programa en R? Simplemente se imprimiría 12y si se permutara; 21.
Billywob

Respuestas:

21

En realidad , 2 bytes

10

Pruébalo en línea!

Esto imprime

0
1

mientras que la (única) otra permutación

01

huellas dactilares

1
0

Cómo funciona

En realidad, los dígitos consecutivos se analizan por separado, por lo que 10empuja 1 en la pila y luego 0 en la parte superior.

Cuando finaliza el programa, la pila se imprime de arriba a abajo, por lo que imprime 0 primero, luego un salto de línea, luego 1 .

El programa desorganizado 01hace lo mismo, en el orden opuesto.

Dennis
fuente
1
Otros idiomas en los que funciona; En serio, 05ab1e, ///, 2sable.
Teal pelican
La especificación dice que los números tienen que estar separados. Funciona en serio, pero en realidad es solo en serio 2.0.
Dennis
7

Jalea , 2 bytes

;J

Pruébalo en línea!

Salidas: [0, 1]

Otras J;salidas de permutación :[1, 0]

Cómo funciona:

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

J;
J          [1...len(z)], here just [1]
 ;         ...Concatted with 0
Leche
fuente