Erstellen Sie ein Programm, das das Hamming-Gewicht einer Zeichenfolge berechnet . Gewinner ist das Programm mit dem niedrigsten Hamminggewicht.
Regeln:
- Die Hamming-Gewichtung für ein ASCII-Zeichen ist definiert als die Gesamtzahl der
1
in seiner Binärdarstellung festgelegten Bits . - Angenommen, die Eingabecodierung ist 7-Bit-ASCII, die über den für Ihre Sprache normalen Eingabemechanismus (z. B. stdin, args usw.) übergeben wird.
- Geben Sie das Ergebnis als Zahl an stdout oder an den Standard- / Normalausgabemechanismus aus, den Ihre Sprache verwendet.
- Es sollte selbstverständlich sein, aber Sie müssen in der Lage sein, das Programm im wirklichen Leben auszuführen, damit es eine gültige Lösung darstellt.
- Gewinner ist die Lösung, deren Code das niedrigste Hamming-Gewicht hat.
Entschuldigung, keine Lösungen im Leerraum für diese!Ok, Sie können in Leerzeichen codieren, jetzt habe ich die Regeln aussortiert :)
Beispiele pro Zeichen:
char | binary | weight
-----+----------+-------
a | 01100001 | 3
x | 01111000 | 4
? | 00111111 | 6
\x00 | 00000000 | 0
\x7F | 01111111 | 7
hello world
11? Nur 10 Zeichen unterscheiden sich von einem Leerzeichen. Auch - das Hamming-Gewicht eines Programms scheint nur seine Länge ohne Leerzeichen zu sein. Nicht so anders als beim normalen Codegolf.
~
UND o
.
0x20
/ ASCII 32 als Referenz nehmen, ist das Summen vonhello world
10 nicht gleich 11?