A veces, cuando presiona una tecla en un teclado, la letra no siempre se muestra en la pantalla. Si esto se debe a una conexión dudosa o de otra manera, ha decidido escribir un script para controlar la probabilidad de que se muestre una letra en la pantalla cuando se presiona la tecla correspondiente.
Un día, decides comprar un mono y sentarlo frente al teclado. Siendo curioso, decides averiguar cuáles son las probabilidades clave para ayudar al mono a escribir Hamlet en su totalidad.
Su desafío es calcular las probabilidades para cada personaje para que el pasaje se escriba en el menor número de caracteres.
Aquí hay una lista de todos los personajes que debe consolidar:
qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890!"':;.()?,
Las líneas nuevas y los espacios se incluyen en la lista anterior. Solo debe usar los caracteres de la lista, descontando todos los demás caracteres (eliminarlos del pasaje).
El programa debe ser un programa con el pasaje suministrado a través de STDIN. La salida debe ser STDOUT.
Dado que este es un desafío de Rosetta Stone, debe escribir tantos programas en diferentes idiomas como sea posible.
Para ganar, debe tener el código más corto en la mayor cantidad de idiomas.
Caso de prueba 1
¿Te comparo con un día de verano?
Eres más encantador y más templado: los
vientos fuertes sacuden los queridos capullos de mayo,
y el contrato de arrendamiento del verano tiene una fecha demasiado corta
Responder:
{
'\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 prueba 2
Hace cuatro años y siete años, nuestros padres dieron a luz en este continente una nueva nación, concebida en libertad, y dedicada a la proposición de que todos los hombres son creados iguales.
Ahora estamos involucrados en una gran guerra civil, probando si esa nación, o cualquier nación tan concebida y tan dedicada, puede perdurar por mucho tiempo. Nos encontramos en un gran campo de batalla de esa guerra. Hemos llegado a dedicar una parte de ese campo, como un lugar de descanso final para aquellos que aquí dieron sus vidas para que esa nación pudiera vivir. Es totalmente apropiado y apropiado que hagamos esto.
Responder:
{
'\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
}
Mira la teoría aquí .
Tabla de clasificación
C - 371 - Gerwin Dox
Java - 788 - Luminous
!
(33) hasta z
(122) o ~
(126)? Cuando dividimos por el número total de caracteres, ¿está bien simplemente dividir por la longitud de la entrada, o tenemos que excluir los caracteres que no están en la lista (espacio, etc.)?