USTED PODRÁ DARSE UNA ESCRITURA QUE CONSIDERA DE CARACTERÍSTICAS ASPIRABLES PINTABLES.
USTED ESTÁ A TRAVÉS DE ESCRIBIR EL RENDIMIENTO DE CAMBIO (UNIFORME, 50% DE CARACTERÍSTICAS DE CARGA) PARA UTILIZAR Y EXPERTAR MÁS.
Eso es.
(perdón por la puntuación, fue por el concepto de la pregunta)
Versión legible:
Se le dará una cadena que consiste en caracteres ASCII imprimibles.
Usted itera a través de la cadena y cambia las letras aleatorias (uniformes, 50% de probabilidad en mayúsculas) a mayúsculas, y todo lo demás a minúsculas.
Eso es.
EJEMPLOS
iNpuT => pOssiBle oUtPUt
Programming puzzles and Code Golf => pRogRaMMiNg pUzzlEs aNd coDe goLf
dErpity deRp derP => deRpiTy dErp DerP
CAAAPSLOOOCK => cAAapslOoocK
_#$^&^&* => _#$^&^&*
s=>rand()%2?s.upper():s.lower()
Respuestas:
C - 65 bytes
¡Bastante bueno para un lenguaje convencional!
Utiliza XOR para voltear aleatoriamente el bit en
0x20
cada carácter alfabético. El programa asume el conjunto de caracteres ASCII y esoEOF < 0
.Ejecución de muestra en su propia fuente!
Muy derpy.
fuente
JavaScript, 87 bytes
68 bytes en ES6:
fuente
Jalea , 6 bytes
Pruébalo en línea!
¿Cómo?
Poner en minúsculas todos los caracteres de la entrada y luego en mayúsculas cada uno con un 50% de probabilidad es lo mismo que elegir uno de los caracteres originales y el carácter de mayúsculas y minúsculas con la misma probabilidad ...
fuente
X
se implementa utilizando Pythonrandom.choice
, por lo que cuando se le presenta una lista de 2 caracteres elegirá cada uno con un 50% de probabilidad, cada personaje en la entrada produce dicha lista (los caracteres no alfabéticos serán una lista de 2 caracteres iguales, pero eso no importa si la interpretación de "uniforme" anterior es correcta).PowerShell ,
6460 bytesPruébalo en línea!(asegúrese de que "deshabilitar caché de salida" esté marcado si desea resultados aleatorios)
Traducción exacta del desafío. Toma la cadena de entrada,
ToLower()
la convierte, la convierte en unachar
matriz, recorre cada carácter|%{...}
y selecciona aleatoriamente entre el carácter existente o la variante en mayúscula. Luego-join
, vuelva a juntarlos en una sola cuerda. Esto funciona porqueToUpper
yToLower
solo afecta a los caracteres alfabéticos, dejando los signos de puntuación y similares sin cambios.(Dennis arregló la lista de alias en TIO, por lo que
Random
no está probando Linuxrandom
sino correctamente aliasGet-Random
como un comando de PowerShell, como debería ser. ¡Gracias, Dennis!)fuente
MATL ,
1312 bytesPruébalo en MATL Online
Explicación
fuente
Japt , 10 bytes
Pruébalo en línea!
Explicación
Este es un truco cursi, pero funciona. En JavaScript puedes hacer algo como
convertir aleatoriamente
x
a mayúsculas o minúsculas. En Japt, las funciones equivalentes sonu
paratoUpperCase
yv
paratoLowerCase
. Pero en Japt no hay una forma directa de obtener un valor de propiedad calculado (x[expression]
en JavaScript).Una de mis características favoritas de Japt es que si tiene una función que se compone de una sola llamada a un método (por ejemplo
mX{Xq}
, o.m(X=>X.q())
en JS), puede omitir todo excepto el nombre del método, por ejemplomq
. El compilador luego convierte esto en una cadena que se pasa al método original llamado (.m("q")
), y el método vuelve a convertir esto en una función. Entonces no hay diferencia entremq
ym"q"
; ambos producen la misma salida.Ahora, a dónde iba con esto: si bien no podemos llamar directamente a un método aleatorio en una cuerda, que podemos llamar
m
de esa cadena con un nombre de método aleatorio. Entonces, para la explicación:fuente
Mq
predeterminado a 2? ¿O fue agregado recientemente?PHP, 53 bytes
fuente
strto.*.er
. :)rand()&1
foreach(str_split($argv[1]as$c)...
lugar de la indexación de matriz.Perl 5 , 26 bytes
25 bytes +
-p
bandera.Pruébalo en línea!
fuente
Perl 6 ,
3229 bytesIntentalo
Intentalo
fuente
Python 2 ,
7774 bytesPruébalo en línea!
fuente
Japt ,
1210 bytesExplicación:
Pruébalo en línea!
fuente
05AB1E , 8 bytes
Pruébalo en línea!
Explicación
fuente
JavaScript, 77 bytes
Pruébalo en línea!
fuente
CJam , 14 bytes
Pruébalo en línea!
Explicación
fuente
MATL ,
1211 bytes1 byte eliminado usando la idea de Jonathan Allan de cambiar directamente el caso.
Probar en MATL en línea!
Explicación
fuente
Pyth, 5 bytes
Banco de pruebas
fuente
Befunge , 136 bytes
Pruébalo en línea!
Hay muchos espacios en blanco de los que creo que es posible deshacerse. Befunge no tiene una manera de averiguar qué es una carta y qué no, así que esto es lo que estoy haciendo en la primera fila.
fuente
~
Golpetazo , 64 bytes
primer intento
Pruébalo en línea!
baraja mayúsculas, toma los primeros 13, elimina las nuevas líneas y se guarda en $ a. $ b contiene $ a en minúsculas. La entrada se establece en minúsculas por $ {1 ,,} y se pasa como heredoc a tr, que reemplaza cada aparición de $ b por $ a
Esto no es competitivo porque la misma letra siempre está en mayúscula.
fuente
JavaScript + HTML, 115 bytes
fuente
Bash, 162 bytes
Bastante autoexplicativo. Toma información de la línea de comando arg, escribe en stdout.
Corre como
derpifier.sh "Derp this"
Hombre, una vez que empiezo a aplicar los consejos, el código se reduce rápidamente.
fuente
Swift: demasiados bytes (
176167)uppercased()
,lowercased()
,arc4random_uniform()
Realmente matar a la puntuación, además de para mí tener que agregar una función ya que Swift no tiene un método de entrada estándar!Función con uso:
print(g(x: "Your String Here"))
fuente