Einführung
In der Zahlentheorie wird eine Zahl als böse angesehen, wenn ihre binäre Darstellung eine gerade Zahl von Einsen enthält. In der heutigen Herausforderung werden Sie feststellen, ob eine bestimmte Zahl böse ist oder nicht.
Herausforderung
Ihre Aufgabe ist es, ein vollständiges Programm oder eine vollständige Funktion zu schreiben, die eine einzelne, nicht negative Ganzzahl als Eingabe akzeptiert und ausgibt (oder zurückgibt), unabhängig davon, ob diese Zahl böse ist oder nicht.
Das Leaderboard
Am Ende der Seite befindet sich ein Stapel-Snippet mit einer Rangliste für diese Frage. (Danke, @MartinEnder)
Um sicherzustellen, dass Ihre Antwort angezeigt wird, beginnen Sie Ihre Antwort mit einer Überschrift. Verwenden Sie dazu die folgende Markdown-Vorlage:
# Language Name, N bytes
Wo N
ist die Größe Ihres Beitrags? Wenn Sie Ihren Score zu verbessern, Sie können alte Rechnungen in der Überschrift halten, indem man sich durch das Anschlagen. Zum Beispiel:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Wenn Sie mehrere Zahlen in Ihre Kopfzeile aufnehmen möchten (z. B. weil Ihre Punktzahl die Summe von zwei Dateien ist oder wenn Sie die Strafen für Interpreter-Flags separat auflisten möchten), stellen Sie sicher, dass die tatsächliche Punktzahl die letzte Zahl in der Kopfzeile ist:
# Perl, 43 + 2 (-p flag) = 45 bytes
Sie können den Namen der Sprache auch als Link festlegen, der dann im Leaderboard-Snippet angezeigt wird:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
/* Configuration */
var QUESTION_ID = 169724; // Obtain this from the url
// It will be like https://XYZ.stackexchange.com/questions/QUESTION_ID/... on any question page
var ANSWER_FILTER = "!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe";
var COMMENT_FILTER = "!)Q2B_A2kjfAiU78X(md6BoYk";
var OVERRIDE_USER = 81420; // This should be the user ID of the challenge author.
/* App */
var answers = [],
answers_hash, answer_ids, answer_page = 1,
more_answers = true,
comment_page;
function answersUrl(index) {
return "https://api.stackexchange.com/2.2/questions/" + QUESTION_ID + "/answers?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + ANSWER_FILTER;
}
function commentUrl(index, answers) {
return "https://api.stackexchange.com/2.2/answers/" + answers.join(';') + "/comments?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + COMMENT_FILTER;
}
function getAnswers() {
jQuery.ajax({
url: answersUrl(answer_page++),
method: "get",
dataType: "jsonp",
crossDomain: true,
success: function(data) {
answers.push.apply(answers, data.items);
answers_hash = [];
answer_ids = [];
data.items.forEach(function(a) {
a.comments = [];
var id = +a.share_link.match(/\d+/);
answer_ids.push(id);
answers_hash[id] = a;
});
if (!data.has_more) more_answers = false;
comment_page = 1;
getComments();
}
});
}
function getComments() {
jQuery.ajax({
url: commentUrl(comment_page++, answer_ids),
method: "get",
dataType: "jsonp",
crossDomain: true,
success: function(data) {
data.items.forEach(function(c) {
if (c.owner.user_id === OVERRIDE_USER)
answers_hash[c.post_id].comments.push(c);
});
if (data.has_more) getComments();
else if (more_answers) getAnswers();
else process();
}
});
}
getAnswers();
var SCORE_REG = /<h\d>\s*([^\n,<]*(?:<(?:[^\n>]*>[^\n<]*<\/[^\n>]*>)[^\n,<]*)*),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/;
var OVERRIDE_REG = /^Override\s*header:\s*/i;
function getAuthorName(a) {
return a.owner.display_name;
}
function process() {
var valid = [];
answers.forEach(function(a) {
var body = a.body;
a.comments.forEach(function(c) {
if (OVERRIDE_REG.test(c.body))
body = '<h1>' + c.body.replace(OVERRIDE_REG, '') + '</h1>';
});
var match = body.match(SCORE_REG);
if (match)
valid.push({
user: getAuthorName(a),
size: +match[2],
language: match[1],
link: a.share_link,
});
//else console.log(body);
});
valid.sort(function(a, b) {
var aB = a.size,
bB = b.size;
return aB - bB
});
var languages = {};
var place = 1;
var lastSize = null;
var lastPlace = 1;
valid.forEach(function(a) {
if (a.size != lastSize)
lastPlace = place;
lastSize = a.size;
++place;
var answer = jQuery("#answer-template").html();
answer = answer.replace("{{PLACE}}", lastPlace + ".")
.replace("{{NAME}}", a.user)
.replace("{{LANGUAGE}}", a.language)
.replace("{{SIZE}}", a.size)
.replace("{{LINK}}", a.link);
answer = jQuery(answer);
jQuery("#answers").append(answer);
var lang = a.language;
lang = jQuery('<a>' + lang + '</a>').text();
languages[lang] = languages[lang] || {
lang: a.language,
lang_raw: lang,
user: a.user,
size: a.size,
link: a.link
};
});
var langs = [];
for (var lang in languages)
if (languages.hasOwnProperty(lang))
langs.push(languages[lang]);
langs.sort(function(a, b) {
if (a.lang_raw.toLowerCase() > b.lang_raw.toLowerCase()) return 1;
if (a.lang_raw.toLowerCase() < b.lang_raw.toLowerCase()) return -1;
return 0;
});
for (var i = 0; i < langs.length; ++i) {
var language = jQuery("#language-template").html();
var lang = langs[i];
language = language.replace("{{LANGUAGE}}", lang.lang)
.replace("{{NAME}}", lang.user)
.replace("{{SIZE}}", lang.size)
.replace("{{LINK}}", lang.link);
language = jQuery(language);
jQuery("#languages").append(language);
}
}
body {
text-align: left !important;
display: block !important;
}
#answer-list {
padding: 10px;
width: 290px;
float: left;
}
#language-list {
padding: 10px;
width: 500px;
float: left;
}
table thead {
font-weight: bold;
}
table td {
padding: 5px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.sstatic.net/Sites/codegolf/all.css?v=ffb5d0584c5f">
<div id="language-list">
<h2>Shortest Solution by Language</h2>
<table class="language-list">
<thead>
<tr>
<td>Language</td>
<td>User</td>
<td>Score</td>
</tr>
</thead>
<tbody id="languages">
</tbody>
</table>
</div>
<div id="answer-list">
<h2>Leaderboard</h2>
<table class="answer-list">
<thead>
<tr>
<td></td>
<td>Author</td>
<td>Language</td>
<td>Size</td>
</tr>
</thead>
<tbody id="answers">
</tbody>
</table>
</div>
<table style="display: none">
<tbody id="answer-template">
<tr>
<td>{{PLACE}}</td>
<td>{{NAME}}</td>
<td>{{LANGUAGE}}</td>
<td>{{SIZE}}</td>
<td><a href="{{LINK}}">Link</a></td>
</tr>
</tbody>
</table>
<table style="display: none">
<tbody id="language-template">
<tr>
<td>{{LANGUAGE}}</td>
<td>{{NAME}}</td>
<td>{{SIZE}}</td>
<td><a href="{{LINK}}">Link</a></td>
</tr>
</tbody>
</table>
EDIT: Ich glaube, diese Frage ist kein Duplikat davon , denn während diese Frage die Anzahl von Einsen zählt, fragt diese Frage, ob die Anzahl von Einsen gerade ist. Obwohl Sie können diese Frage durch einfaches Zählen der Bits erreichen, gibt es auch andere Ansätze .
666 => False
sollte ein Testfall sein.Antworten:
Z80-Assembly (8 Bit), 2 Byte
Der folgende Code funktioniert nur mit Werten bis 255:
16-Bit-Version (funktioniert in allen Testfällen), 3 Byte
Dies funktioniert mit Werten bis zu 65535.
Wenn Sie sich abenteuerlustig fühlen, können Sie 1 Byte sparen, indem Sie die Eingabe in
A
undC
so speichernund dann rennen
Dies belastet den Aufrufer jedoch, so dass möglicherweise auch die beiden Bytes (
push BC
undpop AF
) gezählt werden müssen.quelle
or
s bitweise mit 2 Operanden sindor
Mnemonik der Akkumulator A ist. In diesem Fall ändert sich der Befehl nicht A. Es wird nur das Statusregister (und insbesondere das Paritätsflag) aktualisiert spiegeln den Inhalt von A.P
gemäß codegolf.meta.stackexchange.com/a/8509/29560 erlaubt ? Es ist ein einzelnes Bit imF
(Flags) -Register, von dem nur drei Befehlspaare betroffen sind. Außerdem erwähnt diese Antwort nicht, dass sie nur um 8-Bit-Werte konkurriert, daA
es sich um ein 8-Bit-Register handelt. Dies bedeutet, dass es keine Antwort für777
oder einen anderen vorzeichenlosen Wert über 255 geben kann.:P
A
ist gepaart mitF
, daher würde ich nicht akzeptierenAB
oderBA
als 16-Bit-Wert.BC
ist 16-Bit, aber dann benötigen Sie eine zusätzliche Anweisung, um eine davon zu laden,A
bevor Sie die andere XOR-Verknüpfung ausführen. Ich habe gerade erwähnt, dass meine Z80-Antworten je nach Frage bis zu 255 oder 65535 funktionieren. Fügen Sie möglicherweise auch eine 16-Bit-Version hinzu? Also 2 Bytes für 8-Bit-Werte, 3 Bytes für 16-Bit-Werte.JavaScript (ES6), 18 Byte
Probieren Sie es online!
Erläuterung
Die bitweise Logik sieht folgendermaßen aus:
~-n
ist das gleichbedeutend damit-(-n)-1
, dass nur eine andere Art zu tun istn-1
. In diesem speziellen Fall hätten wir tatsächlich verwenden könnenn-1
.n & (n-1)
entfernt das am wenigsten signifikante Bit gesetzt 1 in n weil Erniedrigen n alle Hinter dreht 0 's in 1 s und löscht die 1 , die (durch Übertragsfortpflanzungs) unmittelbar folgt, während alles andere unverändert bleibt.Beispiel für n = 24 (11000 in binär):
Daher verarbeiten wir wie viele rekursive Aufrufe da es 1 ‚s in der Binärdarstellung von n , die mit jeder invertierende führen
!
. Der letzte Aufruf gibt immer 1 zurück .Beispiele:
quelle
Python 2 , 25 Bytes
Probieren Sie es online!
bin(n)
gibt ein Ergebnis wie'0b10101'
. Wenn wir dies als Ganzzahl zur Basis 13 lesen, erhalten wirAlso
int(bin(n),13)%2
gleich 1 + (Anzahl der Einsen inbin(n)
) Modulo 2.Wenn
n
böse ist, ist das Ergebnis 1; sonst ist es 0.Ich habe diesen Trick von Noodle9 aufgegriffen .
quelle
lambda n:int(`n`,13)%2
. Probieren Sie es online!Japt
-h!
,543 BytesVersuch es
Erläuterung
quelle
¤¬x v
Dies ist die Antwort von KevinC # (Visual C # Interactive Compiler) ,
4338 ByteGolf Versuchen Sie es online!
Ungolfed
Vollständiger Code mit Tests
Releases
-5 bytes
- ErsetztCount
durchSum
43 bytes
- Anfangslösung.Anmerkungen
quelle
Bash (keine externen Dienstprogramme),
5644 Byteswhile(($1));do set $(($1/2)) $(($2+$1%2));done;!(($2%2))
Dies setzt voraus, dass die Zahl in gefunden
$1
wurde und als erstes Befehlszeilenargument übergeben wurde. Es wird auch davon ausgegangen, dass dies ein Shell-Skript ist (so dass es sichexec
selbst kann ).Es wiederholt sich auf eine Art und Weise, indem es verwendet
exec $0
, bis die Zahl (in$1
) Null erreicht und sie in jeder Iteration durch zwei dividiert. Es summiert auch die Häufigkeit, mit$2
der wir eine ungerade Zahl erhalten. Am Ende war die ursprüngliche Zahl "böse", wenn die Summe$2
nicht ungerade ist.Beispielaufrufe:
Für
0
:Richtiges Ergebnis, mit ein bisschen mehr auf der Seite.
quelle
R ,
3726 BytesProbieren Sie es online!
Eine Alternative zur Antwort von Robert S., die das eingebaute Bit-Splitting
vermeidet,aber weniger Golf spieltund dank JayCe und digEmAll etwas mehr Golf spielt.Funktioniert nur für positive Ganzzahlen unter .231- 1
quelle
%/%
%%
05AB1E , 4 Bytes
Probieren Sie es online aus oder überprüfen Sie alle Testfälle .
Erläuterung:
quelle
Stax , 4 Bytes
Führen Sie es aus und debuggen Sie es
quelle
R ,
9998443428 Bytes-1 Danke an Kevin Cruijssen! -54 danke an ngm! -10 danke an Giuseppe! -6 danke an JayCe!
Probieren Sie es online!
Alternativ können Sie das
binaryLogic
Paket (39 Byte) verwenden:quelle
==0
kann<1
:)C (gcc) , 36 Bytes
Probieren Sie es online!
Methode von K & R https://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetKernighan
Muss mit Optimierungsstufe 0 übersetzt werden
quelle
error: expected constructor, destructor, or type conversion before '(' token
(Pfeil zeigt auf denf
im Funktionsnamen). Welche Compiler-Flag (s) brauche ich?-O
.-O0
Compiler-Flag nicht verpassen .Wolfram Language (Mathematica) ,
2422 BytesProbieren Sie es online!
quelle
2∣
ist eine Verbesserung aufEvenQ
. Probieren Sie es online!PHP,
37-36BytesUm es auszuführen:
Oder versuchen Sie es online!
Druckt
1
für wahr und0
für falsch.-1 Byte Danke an Benoit Esnard !
quelle
<?=1&~substr_count(decbin($argn),1);
. Dieser gibt auch 0 für falsch aus.Brachylog , 4 Bytes
Probieren Sie es online!
Mit mehreren Testfällen (😈 ist böse und 👼 ist nicht.)
Verwendet etwas, was ich kürzlich über das
-
Prädikat herausgefunden habe: In seiner Dokumentation steht nur "der Unterschied der Elemente von [Eingabe]", aber was es tatsächlich tut, ist "Summe der geraden indizierten Elemente (beginnend mit dem 0.) der Eingabe abzüglich der Summe der ungeraden indizierte Elemente der Eingabe ".Hier,
ḃ
wandelt die Zahl in ein Array von Binärziffern um,o
sortiert sie, um alle Einsen zusammenzubringen.Wenn es nun eine gerade Anzahl von Einsen gäbe, gäbe es eine gleiche Anzahl von Einsen in geraden und ungeraden Indizes. Das Nachher
-
würde also eine 0 ergeben. Aber wenn es eine ungerade Zahl von 1s gäbe, würde eine zusätzliche 1 herausragen, was dazu führt, dass der Unterschied entweder -1 oder 1 ist.Schließlich behaupten wir also, der Unterschied sei
0
und erhalten dementsprechend ein wahres oder falsches Ergebnis. Bei flexibleren Ausgabeanforderungen könnte dies für eine 3-Byte-Antwort beseitigt werden, wobei 0 als wahrheitsgemäße Ausgabe und -1 und 1 als beide falschen Ausgaben gelten.quelle
INTERCAL ,
906563 BytesProbieren Sie es online!
Ungolfed und erweitert (was es wert ist) mit Kommentaren im C-Stil.
Ich musste ein paar Zugeständnisse machen, um dies in INTERCAL möglich zu machen. Das erste ist, wie bei allen INTERCAL-Programmen, dass die numerische Eingabe ausgeschrieben werden muss. Also, wenn Sie eingeben möchten,
707
würden Sie zur Verfügung stellenSEVEN OH SEVEN
.Das zweite ist, dass INTERCAL nicht wirklich den richtigen Wert für Wahrheit oder Falschheit hat. Stattdessen wird die römische Ziffer
I
(1) ausgegeben, wenn die Zahl nicht böse ist, oder eine 0 (normalerweise dargestellt,-
da römische Ziffern normalerweise nicht 0 darstellen können).Wenn Sie diese umdrehen möchten, sodass böse Zahlen 1 und nicht böse Zahlen 0 zurückgeben, können Sie die Zeilen 4 und 5 von der ungolfed-Version wie folgt ändern, obwohl 3 Bytes hinzugefügt werden.
quelle
Attache ,
1312 BytesProbieren Sie es online!
(Old 13 Bytes
Even@1&`~@Bin
)Dies ist eine Komposition aus drei Funktionen:
Bin
Sum
Even
Dies prüft, ob der Wert
Sum
derBin
tatsächlichen Erweiterung der Eingabe istEven
.quelle
Gleichstrom ,
1816 BytesGibt (auf den Stapel) 0 für böse und 1 für nicht böse zurück
Probieren Sie es online!
Ziemlich einfach - Wendet den kombinierten Quotienten- / Restoperator rekursiv
~
auf den neuen Quotienten an und addiert alle Reste. Anschließend werden die Modifikationen um 2erhöht (nachdem zwei Bytes aufgewendet wurden, um zu einer Standardwahrheit / -fälschung zu wechseln).Bearbeitet, um den Konsens widerzuspiegeln, dass 0 für Wahrhaftigkeit und 1 für Falschheit in Ordnung ist, insbesondere in einer Sprache, die keine Art von
if(boolean)
Konstrukt hat.quelle
Python 2, 29 Bytes
Probieren Sie es online!
Gibt 1 zurück, wenn True, sonst 0.
Wandelt die Zahl in eine Binärzeichenfolge wie '0b11' um, zählt die Zahl von 1s, erhält das Komplement des Ergebnisses und gibt das letzte Bit des Komplements zurück (danke, https://codegolf.stackexchange.com/users/53560/cdlane !) (1, wenn die ursprüngliche Nummer gerade war, 0, wenn sie ungerade war).
quelle
lambda n:~bin(n).count('1')&1
ersetzt die modulare Aufteilung durch etwas möglicherweise billigeres.x86-16, 3 Bytes
NASM-Auflistung:
16-Bit-Integer-Funktion arg in AX (die zerstört wird), Rückgabewert in PF.
Die Hardware berechnet die Parität des Ergebnisses für uns im x86-Paritätsflag . Der Anrufer kann mit
jp
/jnp
verzweigen oder was immer er möchte.Funktioniert genau wie die Z80 / 8080-Antwort von @ cschultz ; Tatsächlich wurde 8086 entwickelt, um das mechanische Portieren von Quellen aus 8080 zu vereinfachen .
Beachten Sie, dass PF nur aus dem unteren Byte der breiteren Ergebnisse festgelegt wird und daher
test edi,edi
für eine x86-64-Version nicht funktioniert. Sie müssten horizontal-xoder bis zu 16 Bit oderpopcnt eax, edi
/and al,1
(wobei 0 wahr ist).quelle
C ++ (gcc) (-O0),
3631 BytesProbieren Sie es online!
C ++ (clang) , 35 Bytes
Probieren Sie es online!
Hier ist mein erster Versuch, Code-Golf zu spielen. Ich hoffe, ich habe keine Regel gebrochen, die ich möglicherweise übersehen habe.
Edit:
- 5 Bytes gespart dank @Jonathan Frech: ersetzt
!=
durch-
undreturn
durchi=
(die letzte Ersetzung scheint jedoch nicht mit Clang zu funktionieren)- Da es eine Debatte zu geben scheint, ob ich gcc -O0-Missbrauch verwenden sollte, dachte ich, ich könnte gib einfach beide versionen an
quelle
!=
auf-
und weitere vier von Golfreturn
zui=
.gcc -O0
Hack zu benutzen ? Es ist nicht so, dass die Länge des gesamten Boilerplates einer Sprache für den Vergleich von Implementierungen von großer Bedeutung ist. Außerdem ist es interessanter, zwischenreturn
Call-by-Reference (Aktualisierung*i
vor Ort) zu wählen . Ich schreibe lieber C- oder C ++ - Antworten, keine unoptimierten GCC-Antworten, weil unoptimierte GCC-Antworten keine sehr nützliche Sprache sind.SML , 32 Bytes
Erklärung:
%
ist der Funktionsnamen
wird eingegeben, gibt (n +% (n // 2))% 2 zurückGemacht von 2 gelangweilten Carnegie Mellon Studenten
quelle
Viertens (gviertens) , 53 Bytes
Probieren Sie es online!
Erläuterung
Nimmt die xor-Summe der Ziffern der Binärform der Zahl. (Wiederholt dividiert durch 2 und xor den Rest mit dem "Summen" -Wert)
Code Erklärung
quelle
Java 8,
4036 Bytes-4 Bytes danke an @Okx für etwas, das ich nicht vergessen hätte sollen ..
Probieren Sie es online aus.
Erläuterung:
Beachten Sie, dass die Zeichenkodierung für
0
und1
sind48
und49
, aber sie summiert und unter Modulo-2 hält immer noch die richtigen Ergebnisse , weil48%2 = 0
und49%2 = 1
.quelle
n.toString(n,2)
Spart 4 Bytes.~n.toString(n,2).chars().sum()%2
, um ein Byte zu speichern.0
und1
nicht wahr / falsch in Java, nurbooleans
/Booleans
sind. Wenn bei einer Abfrage angegeben wird, dass zwei unterschiedliche Ausgaben zulässig sind,<1
hätte die entfernt werden können, um tatsächlich 2 Bytes zu sparen. :)Perl 6 , 21 Bytes
Probier es aus
Erweitert:
quelle
*.base(2)%9%%2
{:3(.base(2))%%2}
Retina 0.8.2 , 28 Bytes
Probieren Sie es online! Link enthält Testfälle. Erläuterung:
In Unary konvertieren.
Teilweise binäre Konvertierung (lässt zusätzliche Nullen).
Löschen Sie alle Nullen.
Modulo diejenigen von zwei.
Testen Sie, ob das Ergebnis Null ist.
quelle
x86-Assembly,
1211 Bytes-1 Byte dank @ ceilingcats Vorschlag
quelle
inc eax
stattnot eax
. Vielleicht möchten Sie auch erwähnen, dass dies einen Prozessor mit Unterstützung für denpopcnt
Befehl erfordert .Bash + GNU-Dienstprogramme, 33
Probieren Sie es online!
Liest die Eingabe von STDIN. Ausgänge 1 für True und 0 für False.
dc
wandelt die Eingabe in eine Binärzeichenfolge umtr
Entfernt Nullenwc
zählt die verbleibenden Zeilen (und die nachgestellte Zeile, die den Sinn für Logik korrigiert)dc
berechnet count mod 2 und gibt die antwort ausquelle
Python 2,
2827 BytesProbieren Sie es online!
Gibt einen Wahrheitswert zurück, wenn genau einer von
the ones-bit is a 1
undthe result of calling this function on n/2 is truthy
wahr ist (odern==0
). Es funktioniert, weiln/2
es einer Bitverschiebung nach rechts mit Unterteilung entspricht (also nur Python 2).Alternative Version, auch
2827 BytesProbieren Sie es online!
Basierend auf der von vazt referenzierten K & R-Methode zum Zählen von gesetzten Bits.
Beides könnte zwei Bytes kürzer sein, wenn die Ausgabe zulässt, dass Falsey böse bedeutet.
Edit: Danke an Amphibological für das Speichern eines Bytes!
quelle
1
und entfernenor
, um +1 Byte zu sparen. Schöne lösung!APL (Dyalog Unicode) , 10 Byte SBCS
Anonyme stillschweigende Funktion. Kann ein beliebiges Array von Ganzzahlen als Argument verwenden.
Probieren Sie es online!
2∘⊥⍣¯1
Konvertieren Sie in eine Binärdatei, indem Sie so viele Ziffern verwenden, wie für die größte Zahl erforderlich sind. Trennen Sie die Ziffern entlang der Primärachse1⍪
stellen Sie diejenigen entlang der Hauptachse voran≠⌿
XOR-Reduktion entlang der Primärachsequelle
J 9 Bytes
Anonyme stillschweigende Funktion. Kann ein beliebiges Integer-Array als Argument verwenden.
Probieren Sie es online!
1-
eins minus (dh logische Negation von)2|
der mod-2 von1#.
die Summe (lit. die Basis-1-Bewertung) von#:
die binäre Darstellungquelle
2|1+1#.#: