La tarea
En este desafío, su tarea es escribir un código que genere uno de sus anagramas elegidos aleatoriamente con una distribución uniforme, pero nunca debería emitirse.
Elaboración
Sin ninguna entrada, su programa debería generar cualquiera de los anagramas de su código fuente. Su programa nunca debería generar su propia fuente tal como es, es decir, nunca debería ser una quine.
Entrada
Su programa no debe tomar ninguna entrada. Sin embargo, si su idioma requiere entrada como una necesidad, puede suponer que se le dará minúscula a. Sin embargo, no debe usar la entrada de ninguna manera.
Salida
Su programa puede generar resultados de cualquier manera, excepto escribirlo en una variable. Se permite escribir en archivos, consolas, pantallas, etc. La función también returnestá permitida.
Reglas Adicionales
El código fuente de su programa debe tener al menos 3 caracteres (no 3 bytes).
El código fuente de su programa debe tener al menos 3 anagramas posibles (excluyéndose a sí mismo). Por ejemplo,
aabno cuenta como un envío válido ya queaabsolo tiene dos anagramas distintos deaab(baayaba).Su programa no debe producir ningún error.
Su programa debe generar sus anagramas exactamente .
Se aplican las lagunas estándar y las reglas de quine estándar .
Ejemplo
Supongamos que el código fuente de su programa es abc. Debería generar aleatoriamente cualquiera de los siguientes (con distribución uniforme):
acbbcabaccbacab
Y, nunca debería salir abc.
Criterio ganador
Este es el código de golf , por lo que gana el código más corto en bytes. En caso de empate, ¡la solución que se publicó anteriormente gana!
fuente

Respuestas:
Jalea , 15 bytes
Solo para comenzar las cosas; esto es casi seguro vencible. Esto es básicamente una combinación de un constructor universal de quine y una función "elegir una permutación aleatoria que no sea la entrada"; lo último puede ser mejorable, lo primero es casi seguro.
Explicación
Constructor universal de quine
Esto puede verse como una quine si se ejecuta solo. También es un quine apropiado según la mayoría de las definiciones que conozco; no lee su propia fuente (más bien, contiene un literal que es "evaluado" y se le da una copia de sí mismo como argumento), puede llevar una carga útil (como se ve aquí) y el
vexterior de la cadena literal está codificado por elvinterior.Elige un anagrama al azar
Esto es realmente ineficiente en una cadena de este tiempo, por lo que no he podido probar el programa en su conjunto, pero lo he probado en cadenas más cortas y parece funcionar correctamente.
fuente
Q. Sin embargo, creo que puede cambiar este método de "todas las permutaciones" con uno "aleatorio" utilizandoẊ⁼¿, guardando un byte y permitiendo que funcione en TIO.CJam , 17 bytes
Esto no va a terminar pronto, por lo que esta vez no habrá un enlace TIO.
Como consuelo, aquí hay una solución de 20 bytes que termina muy rápidamente:
Pruébalo en línea!
Explicación
En cambio, la solución de 20 bytes baraja el código fuente hasta que sea diferente del original.
fuente
Python 2, 117 bytes
Sorprendentemente, esta solución es más corta de lo que esperaba. Baraja el código fuente, hasta que difiere del original.
-2 bytes, gracias a @ mbomb007
-3 bytes, gracias a @Wondercricket
Pruébalo en línea
Esta es una de las quines básicas en Python, que he modificado
La generación del anagrama se realiza mediante un módulo aleatorio.
Donde R contiene el código fuente
Se necesitaban comillas triples ya que me vi obligado a mantener los códigos de línea reales en código. Los anagramas tendrán 3 líneas de todos modos.
fuente
exec sen lugar deexec(s)stres inmutable, puede guardar bytes haciendoL=Ry usandosampleenLlugar de usarshuffleenlist. repl.it . La idea está tomada de esteJava 7,
376428426428 bytes+52 y +2 bytes para dos correcciones de errores. No estaba comprobando (correctamente) si la cadena de generación aleatoria era igual al código fuente original. Las posibilidades de esto son astronómicas pequeñas considerando la cantidad de personajes involucrados, pero tengo que validarlo independientemente de cumplir con las reglas del desafío.
Mi primera respuesta quine en Java ...
Pruébalo aquí.
Puede eliminar ambos
Collections.shuffle(l)y agregarlos!delante de ambosx.equals(s)para verificar que la salida realmente sea igual al programa:Pruébelo aquí.
Explicación:
String scontiene el código fuente sin formato.%sse utiliza para ingresar esta cadena en sí misma con els.format(...).%c,%1$cy34se usan para formatear las comillas dobles.s.format(s,34,s)lo pone todo juntoY esta parte del código es responsable de generar un anagrama aleatorio:
fuente
05AB1E , 22 bytes
Esto crea una lista que es demasiado grande para TIO, por lo que el enlace usa una cadena más pequeña, pero la idea es la misma.
Pruébalo en línea!
fuente
Javascript (ES6), 128 bytes
Utiliza sort () que devuelve aleatorio -1,0 o 1 para barajar la salida
fuente
Bash,
2796 bytesfolddivide el código en líneas,shufbaraja las líneas ytrvuelve a armar el códigosolucionó el problema de que se produjera, ahora nunca se generará
Pruébalo en línea!
fuente
$0parece una violación de "Su programa no debe tomar ninguna entrada".