Ein schönes einfaches
Eingang
Bei einem booleschen Array (oder einer akzeptablen Alternative) können Sie davon ausgehen, dass das Array niemals länger als 32 Elemente ist.
[false, false, true, false, false]
Ausgabe
Invertieren Sie jedes Element des Arrays und geben Sie es aus.
[true, true, false, true, true]
Regeln
- Sie können ein vollständiges Programm oder nur eine Funktion schreiben
- Es gelten Standardlücken
- Kürzester Code in Bytes pro Sprache gewinnt!
Testfälle
Input:
[true, false]
Output:
[false, true]
Input: //Example of acceptable alternative
[0,1,1]
Output:
[1,0,0]
code-golf
array-manipulation
logic
Shaun Wild
quelle
quelle
0
(false, alle 0 Bits) und-1
(true, alle 1 Bits)?Antworten:
05AB1E , 1 Byte
Code:
Erläuterung:
Probieren Sie es online!
quelle
Gelee , 1 Byte
Probieren Sie es online!
¬
ist logisch NOT (1 wenn false-y, sonst 0).C
("Komplement", 1 - z ) funktioniert auch.quelle
Javascript ES6, 15 Bytes
Ich denke, es ist nicht viel Erklärung nötig
quelle
Matlab,
41 ByteDies sollte selbsterklärend sein.
Matlab hat den Ein-Byte-Negationsoperator
~
, wenn Sie eine Funktion benötigen, die Sie verwenden können@not
.quelle
@
rgument bekommen ,n
egate,o
utput,t
erminate, oder?~
ist sicherlich eine angemessene Antwort, da es sich um einen Operator handelt, der ein Argument erhält. Ich finde~[1,0,0,1,0]
das völlig angebracht.Haskell, 7 Bytes
Beispiel:
quelle
not<$>
, aber das ist kein gültiger Ausdruck. du kannst nicht schreibenf = not<$>
und dannf [False, True, True]
; Operator-Slices benötigen Klammern, die zur Byte-Anzahl beitragen würden.MATL , 1 Byte
Probieren Sie es online!
~
Ist das logisch nicht und so viele Funktionen, kann es auch auf Arrays / Matrizen angewendet werden.quelle
C, 46 Bytes rekursive Version
C, 47 Bytes iterative Version
Mit dieser Hauptfunktion ausführen
und Eingabe wie folgt
quelle
R, 1 Byte
Beispiel:
Es funktioniert auch mit numerischer Eingabe:
Wir sind auch nicht auf eindimensionale Arrays beschränkt. Machen wir eine Matrix und füllen sie zufällig mit 0s und 1s:
Wir können dies genauso einfach umkehren:
Wir können dies für eine beliebige Anzahl von Dimensionen fortsetzen. Hier ist ein Beispiel für ein vierdimensionales Array:
Funktioniert leider nicht für Charaktere.
quelle
Perl 6 , 4 Bytes
"French" / Unicode-Version:
"Texas" / ASCII-Version:
Die Eingabe ist ein einzelner Wert, der als Liste behandelt werden kann.
Dies ist ein beliebiges Lambda (
*
) mit dem logischen Nicht-Präfix-Operator (!
), der mit dem Präfix-Hyper-Operator («
) kombiniert wird .Tatsächlich ist dies dasselbe wie:
Verwendung:
quelle
{!«@_}
:)!**
sollte auch funktionierenLabyrinth , 9 Bytes
Probieren Sie es online!Nimmt eine durch Zeilenvorschub getrennte Eingabe mit einem nachgestellten Zeilenvorschub an. Vielen Dank an @MartinEnder für die Hilfe beim Golfen.
Dieses Programm ist etwas seltsam für ein Labyrinth-Programm - es nutzt nicht die 2D-Natur der Sprache und springt tatsächlich vor und zurück. Auf der ersten Hinfahrt haben wir:
Beim nächsten Auftreten von
$
XOR wird dann die vorhandene 0 auf dem Stapel mitc
, im Gegensatz zu einer impliziten 0 am unteren Ende des Stapels wie im ersten Durchlauf. Beide Situationen verlassen den Stapel als[c]
, und das Programm wiederholt sich danach.Alternative 9 Bytes:
quelle
:)
Mathematica, 7 Bytes
oder ohne Buchstaben:
Was den syntaktischen Zucker betrifft:
&
Markiert das rechte Ende einer unbenannten Funktion und hat eine sehr niedrige Priorität.#
verweist auf das erste Argument des nächsten und umschließenden&
.!
ist der Betreiber fürNot
. Es!#&
ist also nur eine unbenannte Funktion, die ihr Argument negiert, mit anderen Worten, sie ist identisch mit der eingebautenNot
./@
ist der Betreiber fürMap
. Der Code wäre also auch gleichbedeutend mit dem etwas besser lesbarenMap[Not, #]&
.quelle
!#&/@#&
soll ich das lesen? :)Not
das nicht auflistbar istPython,
272524 BytesVielen Dank an Lynn für das Abschlagen von zwei Bytes und an xnor und Mego für das Abschlagen von weiteren Bytes.
quelle
0
/1
sind zulässig und1-b
kürzer alsnot b
. Ich habe das OP gefragt, ob Arrays von0
/-1
erlaubt sind. In diesem Fall~b
ist es sogar noch kürzer.for
fallen gelassen werden.1for
das als zwei separate Token analysiert werden würde. Huh, bis.C #, 19 Bytes
Nimmt als anonyme Funktion ein Bool [] und gibt eine IEnumerable zurück
oder in 36 Bytes mit
quelle
IBM / Lotus Notes-Formel, 2 Byte
Verwendung:
Erstellen Sie ein Notes-Formular mit zwei Feldern mit den Namen a und b.
a (Eingabe) = editierbar, Zahl, mehrwertig, kommagetrennt
b (Ausgabe) = berechnet, Zahl, mehrwertig, kommasepariert
Fügen Sie die obige Formel in b ein und geben Sie einen Standardwert von 0 ein.
Erstellen Sie ein neues Dokument mit dem Formular, geben Sie eine Binärliste in a ein und drücken Sie F9, um die Ausgabe zu aktualisieren.
Beispiele:
Funktioniert, da bei einer Liste als Eingabe die Notes-Formel auf jedes Element in der Liste die angegebene Aktion anwendet.
quelle
J, 2 Bytes
Dies ist das Negationsverb.
Testfall
quelle
Swift 3 (7 Bytes)
z.B
Erläuterung
Scheint ziemlich offensichtlich. Ruft
map
das Array auf[true, false]
. Das einzige "Problem" ist, dass Operatoren in Swift nur Funktionen sind und als Argumente weitergegeben werden können. Dieses Mittelmap(!)
ist das Bestehen der „nicht“ Funktion!
inmap
.quelle
Shakespeare-Programmiersprache , 240 Byte
Übernimmt die Eingabe als Zeichenfolge
\0
und als\1
Steuerzeichen. Ausgabe als String von0
oder1
. Wenn die Eingabe mit der Ausgabe identisch sein muss, ersetzen Sie sieOpen thy heart
durch,Speak thy mind
um die Bytecount-Anzahl nicht zu ändern. Wenn\0
und\1
kann nicht verwendet werden, tun Sie das oben, aber ersetzen Sie auchOpen your mind
mitListen to thy heart
für eine 5-Byte - Strafe.Ungolfed:
Dies entspricht ungefähr dem folgenden C-Pseudocode:
Ich benutze diesen Interpreter . Probelauf:
quelle
JAISBaL , 1 Byte
Wie alle anderen 1-Byte-Antworten ist dies der Negationsoperator, der bei Bedarf über ein Array operieren kann. Dadurch verbleibt die Ausgabe auf dem Stapel, der am Ende des Programms gedruckt wird.
Für zwei Bytes kann das Array explizit gedruckt werden:
Die Eingabe erfolgt im unglaublich seltsamen Array-Format von JAISBaL (das ich erfunden habe, aber es gefällt mir nicht ...).
Testfälle (Ausgabe vom Java-Interpreter, 3.0.5):
quelle
PowerShell, 15 Byte
Ich denke, dass dies sogar in v1 funktioniert, daher habe ich die Versionsnummer vom Titel entfernt. Durchläuft die Eingabe
$args
und negiert nacheinander jeden Gegenstand. Das resultierende Array verbleibt in der Pipeline.Das Schöne daran ist jedoch, dass PowerShell die Casting-Anforderungen so locker hat, dass Sie eine vollständig gemischte Eingabe vornehmen und eine geeignete boolesche Ausgabe erhalten können. Hier sind zum Beispiel die wörtlichen Booleschen Werte
$false
/$true
, die Zahlen0
1
und123456789
als Ganzzahlen eine leere Zeichenfolge, eine nicht leere Zeichenfolge, ein leeres Array und ein nicht leeres Array -quelle
Perl, 7 Bytes
Beinhaltet +2 für
-lp
Geben Sie jedem Booleschen Wert in einer eigenen Zeile den Wert 0 oder 1
invert.pl
:quelle
Brachylog , 7 Bytes
Probieren Sie es online!
Erläuterung
quelle
Cheddar, 10 Bytes
Ich hoffe, ich habe richtig gezählt, als ich vom Telefon aus schreibe
quelle
fn.vec((!))
wenn das jemals veröffentlicht wurde: PJava, 58 Bytes
quelle
arr
zua
(speichert 4 Byte), schreiben Sieint[]a
anstelle vonint a[]
(speichert 1 Byte),Brainfuck (58 Bytes)
Probieren Sie es hier aus
Ungolfed
Nimmt eine Eingabe von ungeteilten Einsen oder Nullen (11001) an.
quelle
Logikcode ,
98 BytesWirklich einfach.
Nimmt Eingaben als binäre Zeichenfolge an, da Logicode keine Unterstützung für Listen bietet (
[true, false]
wäre es auch10
).Das
out
gibt das Ergebnis der Zeile aus.Der
!
Befehl berechnet das NICHT von jedem Bit in der Zeichenfolge, also!111
wäre so etwas wie000
.Das
binp
ist ein Binäreingang.Dank @daHugLenny 1 Byte gespart
quelle
out
und entfernen!binp
.CJam , 4 Bytes
Die Eingabe ist eine Liste von
0
s und1
s.Probieren Sie es online!
quelle
Japt, 3 Bytes
Japt hat keine boolesche Eingabe, daher besteht die Eingabe aus einem Array von 0s und 1s. Online testen!
Wie es funktioniert
quelle
Netzhaut , 3 Bytes
Probieren Sie es online!
%
Zählen Sie für jede Zeile ( ) die Anzahl von0
s.quelle
Python 2, 24 Bytes (nicht konkurrierend)
Die Logik ähnelt der von Steven, aber ich habe versucht, die Idee dieses Kommentars zu verwenden, aber anders, weil es immer noch
0
/1
arrays, nicht0
/ braucht-1
. Für die Verwendung von0
/ gibt es keine Byte-Rasur-1
. Seien wir also vernünftig. Beachten Sie, dass dies kein Wettbewerb ist, bis Steven oder Lynn mir erlauben, die Idee zu verwenden. In diesem Fall entferne ich möglicherweise das Wettbewerbsverbot. Beachten Sie, dass dieser Code nicht schamlos gestohlen werden kann, sondern immer noch hier ist. Nur Steven kann es für seine Antwort verwenden.quelle
Ruby, 14 Bytes
Anonyme Funktion:
Probier es aus:
quelle