Wenn Sie eine Taste auf einer Tastatur drücken, wird der Buchstabe manchmal nicht immer auf dem Bildschirm angezeigt. Unabhängig davon, ob dies auf eine zweifelhafte Verbindung oder auf andere Weise zurückzuführen ist, haben Sie beschlossen, ein Skript zu schreiben, um die Wahrscheinlichkeit zu steuern, dass ein Buchstabe auf dem Bildschirm angezeigt wird, wenn die entsprechende Taste gedrückt wird.
Eines Tages beschließen Sie, einen Affen zu kaufen und ihn an eine Tastatur zu setzen. Wenn Sie neugierig sind, entscheiden Sie sich herauszufinden, welche Schlüsselwahrscheinlichkeiten es sind, dem Affen zu helfen, Hamlet in seiner Gesamtheit zu schreiben.
Ihre Herausforderung besteht darin, die Wahrscheinlichkeiten für jedes Zeichen so zu berechnen, dass die Passage mit der geringsten Anzahl von Zeichen eingegeben wird.
Hier ist eine Liste aller Zeichen, die Sie konsolidieren sollten:
qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890!"':;.()?,
Zeilenumbrüche und Leerzeichen sind in der obigen Liste enthalten. Sie dürfen nur die Zeichen in der Liste verwenden und alle anderen Zeichen rabattieren (entfernen Sie sie aus der Passage).
Das Programm muss ein Programm sein, dessen Passage über STDIN geliefert wird. Der Ausgang muss STDOUT sein.
Da dies eine Rosetta Stone-Herausforderung ist, müssen Sie so viele Programme wie möglich in verschiedenen Sprachen schreiben.
Um zu gewinnen, müssen Sie den kürzesten Code in den meisten Sprachen haben.
Testfall 1
Soll ich dich mit einem Sommertag vergleichen?
Du bist schöner und gemäßigter:
Starke Winde schütteln die süßen Knospen des Monats Mai,
und der Sommerpachtvertrag hat ein allzu kurzes Datum
Antworten:
{
'\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
}
Testfall 2
Vor vier Punkten und sieben Jahren haben unsere Väter auf diesem Kontinent eine neue Nation hervorgebracht, die in Freiheit konzipiert und dem Vorschlag gewidmet ist, dass alle Menschen gleich geschaffen werden.
Jetzt befinden wir uns in einem großen Bürgerkrieg und prüfen, ob diese Nation oder eine so konzipierte und engagierte Nation lange Bestand haben kann. Wir werden auf einem großen Schlachtfeld dieses Krieges getroffen. Wir sind gekommen, um einen Teil dieses Feldes als letzte Ruhestätte für diejenigen zu widmen, die hier ihr Leben gaben, damit diese Nation leben kann. Es ist insgesamt angemessen und angemessen, dass wir dies tun.
Antworten:
{
'\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
}
Siehe die Theorie hier .
Bestenliste
C - 371 - Gerwin Dox
Java - 788 - Luminous
!
(33) bis z
(122) oder ~
(126) einschließen ? Wenn wir durch die Gesamtzahl der Zeichen dividieren, ist es in Ordnung, einfach durch die Länge der Eingabe zu dividieren, oder müssen wir die Zeichen ausschließen, die nicht in der Liste enthalten sind (Leerzeichen usw.)?