Às vezes, quando você pressiona uma tecla do teclado, a letra nem sempre é exibida na tela. Seja por causa de uma conexão desonesta ou não, você decidiu escrever um script para controlar a probabilidade de uma letra ser exibida na tela quando a tecla correspondente for pressionada.
Um dia, você decide comprar um macaco e sentar em um teclado. Sendo curioso, você decide descobrir quais são as principais probabilidades de ajudar o macaco a escrever Hamlet na sua totalidade.
Seu desafio é calcular as probabilidades de cada caractere para que a passagem seja digitada com o menor número de caracteres.
Aqui está uma lista de todos os caracteres que você deve consolidar:
qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890!"':;.()?,
Novas linhas e espaços estão incluídos na lista acima. Você deve usar apenas os caracteres da lista, descontando todos os outros caracteres (remova-os da passagem).
O programa deve ser um programa com a passagem fornecida via STDIN. A saída deve ser para STDOUT.
Como esse é um desafio da Rosetta Stone, você deve escrever o maior número possível de programas em idiomas diferentes.
Para ganhar, você precisa ter o código mais curto no maior número de idiomas.
Caso de teste 1
Devo comparar-te com um dia de verão?
Tu és mais amável e mais temperada:
ventos fortes agitam os botões queridos de maio
E o arrendamento do verão tem um encontro muito curto
Responda:
{
'\n': 0.017543859649122806,
' ': 0.16959064327485379,
'!': 0.0,
'"': 0.0,
"'": 0.011695906432748537,
'(': 0.0,
')': 0.0,
',': 0.0058479532163742687,
'.': 0.0,
'0': 0.0,
'1': 0.0,
'2': 0.0,
'3': 0.0,
'4': 0.0,
'5': 0.0,
'6': 0.0,
'7': 0.0,
'8': 0.0,
'9': 0.0,
':': 0.0058479532163742687,
';': 0.0,
'?': 0.0058479532163742687,
'A': 0.0058479532163742687,
'B': 0.0,
'C': 0.0,
'D': 0.0,
'E': 0.0,
'F': 0.0,
'G': 0.0,
'H': 0.0,
'I': 0.0058479532163742687,
'J': 0.0,
'K': 0.0,
'L': 0.0,
'M': 0.0058479532163742687,
'N': 0.0,
'O': 0.0,
'P': 0.0,
'Q': 0.0,
'R': 0.0058479532163742687,
'S': 0.0058479532163742687,
'T': 0.0058479532163742687,
'U': 0.0,
'V': 0.0,
'W': 0.0,
'X': 0.0,
'Y': 0.0,
'Z': 0.0,
'a': 0.08771929824561403,
'b': 0.0058479532163742687,
'c': 0.0058479532163742687,
'd': 0.046783625730994149,
'e': 0.093567251461988299,
'f': 0.0058479532163742687,
'g': 0.011695906432748537,
'h': 0.052631578947368418,
'i': 0.011695906432748537,
'j': 0.0,
'k': 0.0058479532163742687,
'l': 0.046783625730994149,
'm': 0.046783625730994149,
'n': 0.023391812865497075,
'o': 0.070175438596491224,
'p': 0.011695906432748537,
'q': 0.0,
'r': 0.052631578947368418,
's': 0.052631578947368418,
't': 0.058479532163742687,
'u': 0.029239766081871343,
'v': 0.0058479532163742687,
'w': 0.0058479532163742687,
'x': 0.0,
'y': 0.017543859649122806,
'z': 0.0
}
Caso de teste 2
Há quatro anos e sete anos atrás, nossos pais trouxeram neste continente uma nova nação, concebida em liberdade, e dedicada à proposição de que todos os homens são criados iguais.
Agora estamos envolvidos em uma grande guerra civil, testando se essa nação, ou qualquer nação tão concebida e tão dedicada, pode durar muito tempo. Nós somos encontrados em um grande campo de batalha daquela guerra. Viemos para dedicar uma parte desse campo, como um local de descanso final para aqueles que aqui deram suas vidas para que aquela nação pudesse viver. É totalmente apropriado e apropriado que façamos isso.
Responda:
{
'\n': 0.0036036036036036037,
' ': 0.18018018018018017,
'!': 0.0,
'"': 0.0,
"'": 0.0,
'(': 0.0,
')': 0.0,
',': 0.010810810810810811,
'.': 0.0090090090090090089,
'0': 0.0,
'1': 0.0,
'2': 0.0,
'3': 0.0,
'4': 0.0,
'5': 0.0,
'6': 0.0,
'7': 0.0,
'8': 0.0,
'9': 0.0,
':': 0.0,
';': 0.0,
'?': 0.0,
'A': 0.0,
'B': 0.0,
'C': 0.0,
'D': 0.0,
'E': 0.0,
'F': 0.0018018018018018018,
'G': 0.0,
'H': 0.0,
'I': 0.0018018018018018018,
'J': 0.0,
'K': 0.0,
'L': 0.0,
'M': 0.0,
'N': 0.0018018018018018018,
'O': 0.0,
'P': 0.0,
'Q': 0.0,
'R': 0.0,
'S': 0.0,
'T': 0.0,
'U': 0.0,
'V': 0.0,
'W': 0.0036036036036036037,
'X': 0.0,
'Y': 0.0,
'Z': 0.0,
'a': 0.082882882882882883,
'b': 0.0054054054054054057,
'c': 0.025225225225225224,
'd': 0.03783783783783784,
'e': 0.10270270270270271,
'f': 0.016216216216216217,
'g': 0.023423423423423424,
'h': 0.041441441441441441,
'i': 0.057657657657657659,
'j': 0.0,
'k': 0.0,
'l': 0.027027027027027029,
'm': 0.0072072072072072073,
'n': 0.063063063063063057,
'o': 0.066666666666666666,
'p': 0.010810810810810811,
'q': 0.0018018018018018018,
'r': 0.050450450450450449,
's': 0.028828828828828829,
't': 0.093693693693693694,
'u': 0.010810810810810811,
'v': 0.014414414414414415,
'w': 0.014414414414414415,
'x': 0.0,
'y': 0.0054054054054054057,
'z': 0.0
}
Veja a teoria aqui .
Entre os melhores
C - 371 - Gerwin Dox
Java - 788 - Luminous
!
(33) a z
(122) ou ~
(126)? Quando dividimos pelo número total de caracteres, não há problema em simplesmente dividir pelo comprimento da entrada ou temos que excluir os caracteres que não estão na lista (espaço etc.)?