VOCÊ SERÁ DIVERTIDO, QUE CONTINUA DE IMPERMEÁVEIS COMO CII CHARACTORES.
VOCÊ CONHECE A RESTRIÇÃO DO RENDIMENTO DE MUDANÇAS (UNIFORME, 50% DE CUMPRIR O UPPercAse), prefere utilizar o mesmo e muito mais.
é isso aí.
(desculpe pela pontuação, foi pelo conceito da pergunta)
Versão legível:
Você receberá uma sequência que consiste em caracteres ASCII imprimíveis.
Você percorre a string e altera as letras aleatórias (uniformes, com 50% de chance de maiúsculas) para maiúsculas e todo o resto para minúsculas.
é isso aí.
exemplos
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()
Respostas:
C - 65 bytes
Muito bom para um idioma convencional!
Usa XOR para virar aleatoriamente o bit em
0x20
para cada caractere alfabético. Programa assume conjunto de caracteres ASCII e issoEOF < 0
.Amostra executada em sua própria fonte!
Muito derpy.
fonte
JavaScript, 87 bytes
68 bytes no ES6:
fonte
Gelatina , 6 bytes
Experimente online!
Quão?
A caixa inferior de todos os caracteres da entrada e, em seguida, a maiúscula cada uma com 50% de probabilidade é o mesmo que escolher um dos caracteres originais e o caractere de caixa trocada com probabilidade igual ...
fonte
X
é implementado usando o Pythonrandom.choice
, portanto, quando apresentado com uma lista de 2 caracteres, ele escolhe cada um com 50% de probabilidade - cada caractere na entrada produz essa lista (caracteres não alfabéticos serão uma lista de 2 caracteres iguais, mas isso não importa se a interpretação de "uniforme" acima estiver correta).PowerShell ,
6460 bytesExperimente online! (verifique se "desativar cache de saída" está marcado se você deseja resultados aleatórios)
Tradução exata do desafio. Pega a sequência de entrada,
ToLower()
s it, converte-a em umachar
matriz, passa por cada caractere|%{...}
e seleciona aleatoriamente entre o caractere existente ou a variante maiúscula. Depois,-join
todos eles se juntam novamente em uma única sequência. Isso funciona porqueToUpper
eToLower
afetam apenas caracteres alfabéticos, deixando pontuação e afins inalterado.(Dennis corrigiu a lista de alias no TIO para que
Random
não tentasse o Linux,random
mas alias corretamenteGet-Random
como um comando do PowerShell, como deveria. Obrigado, Dennis!)fonte
MATL ,
1312 bytesExperimente no MATL Online
Explicação
fonte
Japonês , 10 bytes
Experimente online!
Explicação
Portanto, isso é um truque brega, mas funciona. Em JavaScript, você pode fazer algo como
converter aleatoriamente
x
para maiúsculas ou minúsculas. No Japt, as funções equivalentes sãou
paratoUpperCase
ev
paratoLowerCase
. Mas no Japt não há maneira direta de obter um valor calculado da propriedade (x[expression]
em JavaScript).Um dos meus recursos favoritos do Japt é que, se você possui uma função composta por uma única chamada de método (por exemplo
mX{Xq}
, ou.m(X=>X.q())
em JS), pode deixar de fora tudo, exceto o nome do método, por exemplomq
. O compilador transforma isso em uma seqüência de caracteres que é passada para a chamada de método original (.m("q")
) e o método transforma isso de volta em uma função. Portanto, não há diferença entremq
em"q"
; ambos produzem a mesma saída.Agora, onde eu estava indo com isso: enquanto não podemos chamar diretamente um método aleatório em uma corda, que pode chamar
m
naquela corda com um nome de método aleatório. Então, para a explicação:fonte
Mq
padrão para 2? Ou foi adicionado recentemente?PHP, 53 bytes
fonte
strto.*.er
. :)rand()&1
foreach(str_split($argv[1]as$c)...
vez de indexação de matriz.Perl 5 , 26 bytes
25 bytes +
-p
sinalizador.Experimente online!
fonte
Perl 6 ,
3229 bytesTente
Tente
fonte
Python 2 ,
7774 bytesExperimente online!
fonte
Japonês ,
1210 bytesExplicação:
Experimente online!
fonte
05AB1E , 8 bytes
Experimente online!
Explicação
fonte
JavaScript, 77 bytes
Experimente online!
fonte
CJam , 14 bytes
Experimente online!
Explicação
fonte
MATL ,
1211 bytes1 byte removido usando a idéia de Jonathan Allan de mudar diretamente de caso.
Experimente o MATL online!
Explicação
fonte
Pitão, 5 bytes
Suíte de teste
fonte
Befunge , 136 bytes
Experimente online!
Há muito espaço em branco que eu acho que é possível se livrar. Befunge não tem como descobrir o que é uma letra e o que não é, então é isso que estou fazendo na primeira linha.
fonte
~
Bater , 64 bytes
primeira tentativa
Experimente online!
embaralha letras maiúsculas, leva os 13 primeiros, remove novas linhas e salva em $ a. $ b mantém $ a em minúsculas. A entrada é definida como minúscula em $ {1 ,,} e passada como um heredoc para tr que substitui cada ocorrência de $ b por $ a
Isso é um tanto pouco convincente, porque a mesma letra é sempre maiúscula.
fonte
JavaScript + HTML, 115 bytes
fonte
Bash, 162 bytes
Bastante auto-explicativo. Pega a entrada da linha de comando arg, grava no stdout.
Corra como
derpifier.sh "Derp this"
Cara, assim que começo a aplicar as dicas, o código diminui rapidamente.
fonte
Swift - muitos bytes (
176167)uppercased()
,lowercased()
,arc4random_uniform()
Realmente matar a pontuação, além de me ter de adicionar uma função desde Swift não tem nenhum método padrão de entrada!Função com uso:
print(g(x: "Your String Here"))
fonte