Basierend auf dieser Herausforderung.
Im Rhythmus-Spiel osu! erhöht der Schwierigkeits-Modifikator "Double-Time" die Geschwindigkeit tatsächlich nur um 50%.
Ihre Aufgabe ist es, ein Programm zu schreiben, das eine positive gerade Ganzzahl (höher als 0) ausgibt , und wenn jedes Byte / Zeichen (welches Sie wählen) in Ihrem Quellcode dupliziert wird, sollte es die mit 1,5 multiplizierte Zahl ausgeben.
Wenn Ihr Quellcode beispielsweise ABC
6 ausgibt, AABBCC
sollte 9 ausgegeben werden.
Befolgen Sie die Regeln der ursprünglichen Herausforderung:
Regeln
- Sie müssen ein vollständiges Programm erstellen.
- Die ursprüngliche Quelle muss mindestens 1 Byte lang sein.
- Beide Ganzzahlen müssen sich in der Basis 10 befinden (die Ausgabe in einer anderen Basis oder mit wissenschaftlicher Notation ist verboten).
- Ihr Programm darf keine Eingaben annehmen (oder eine nicht verwendete, leere Eingabe haben) und darf keine Fehler auslösen (Compiler-Warnungen werden nicht als Fehler betrachtet).
- Die Ausgabe der Ganzzahlen mit nachgestellten / führenden Leerzeichen ist zulässig.
- Sie dürfen keinen Zeilenumbruch zwischen Kopien Ihrer Quelle annehmen.
- Das ist Code-Golf , also gewinnen die wenigsten Bytes in jeder Sprache !
- Es gelten Standardlücken .
Ich kann mir vorstellen, dass dies weitaus weniger trivial ist als die ursprüngliche Herausforderung, aber wir werden hoffentlich einige kreative und einzigartige Antworten finden!
code-golf
source-layout
Skidsdev
quelle
quelle
write a program that outputs a positive even integer
Ja, das wird es. Jede gerade Zahl kann mit 1,5 multipliziert werden, um eine ganze Zahl zu erhaltenfull program
. Es ist schwer vorstellbar, dass ein dupliziertes Programm noch einen gültigen Einstiegspunkt / eine gültige Einstiegsfunktion hat.Antworten:
Pylone ,
754 BytesHat eine zufällige Sprache für TIO ausgewählt und verwendet
Erläuterung:
Probieren Sie es online!
Verdoppelt:
2 Bytes dank officialaimm gespart
Dank Veedrac 1 Byte gespart
quelle
4/6vt
funktioniert auch ...46vt
auch so sein?Gelee , 2 Bytes
Probieren Sie es online!
Erläuterung:
Doppelte Version:
Probieren Sie es online!
Erläuterung:
quelle
LibreOffice Calc, 8 Bytes
Speichern Sie es als
*.csv
und öffnen Sie es in LibreOffice Calc. Sie erhalten 22 in A1.Verdopple sie:
Sie erhalten 33 in A1
quelle
MATL , 3 Bytes
Probieren Sie es online! Oder doppelte Version .
Erläuterung
In MATL entspricht ein Skalarwert (Zahl, Zeichen, logischer Wert) einem 1 × 1-Array, das diesen Wert enthält.
Normale Version:
Doppelte Version:
quelle
:)
[manchmal verwenden wir das, um die erstenn
Elemente aus einem Array zu erhalten ...]vim, 5
Ohne zu verdoppeln:
Mit Verdopplung:
quelle
Ich bin nicht sicher, ob diese Antwort gültig ist. Posten Sie einfach hier, falls jemand Ideen von hier hat.
Node.js mit -p Flag, 7 Bytes
Von Alex Varga :
Node.js mit -p Flag, 11 Bytes
Alte:
Ausgang 22 und 33.
quelle
-p
Flag, um Ausdruckswert auszugebenPython 2 REPL, 11 Bytes
Dies ergibt einfach 3 * 2 = 6. Dupliziert ist es
Dies ergibt 3 ** 2, was 3 hoch 2 ist, oder 9.
quelle
APL, 7 Bytes
Druckt
2
.Druckt
3
.Probieren Sie es online!
Waaat?
Single:
Doppelt:
quelle
Eigentlich 3 Bytes
Probieren Sie es online!
Erläuterung:
Doppelte Version:
Probieren Sie es online!
Erläuterung:
quelle
CJam , 4 Bytes
Probiere es normal aus!
Probieren Sie es doppelt aus!
Erläuterung
Normal:
Doppelt:
quelle
AB],
funktioniert auch.05AB1E , 2 Bytes
Probieren Sie es online!
Erläuterung:
Doppelte Version:
Probieren Sie es online!
Erläuterung:
quelle
Neim , 2 Bytes
Probieren Sie es online!
Erläuterung:
Doppelte Version:
Probieren Sie es online!
quelle
Pyth, 3 Bytes
Probieren Sie es hier aus.
Erläuterung:
Doppelte Version:
Probieren Sie es hier aus.
Erläuterung:
quelle
R , 11 Bytes
Probieren Sie es online!
!
ist Negation und**
Exponentiation (ein Alias für^
). Numerik wird in Boolesche Werte konvertiert:0
zuFALSE
, alle anderen zuTRUE
. Boolesche Werte erhalten auf ganze Zahlen umgewandelt:FALSE
zu0
,TRUE
zu1
, so!0==1
,!1==0
,!!00==0
und!!11==1
.quelle
*
und beruht**
, aber Sie haben mich geschlagen!!0
ist ärgerlich). Es gibt vielleicht etwas kürzeres mit-
und*
, aber ich habe noch keine solche Lösung gefunden ...Cubix , 6 Bytes
Druckt
2
.Drückt
1
,)
erhöht,W
springt nach links zuO
den Ausgängen2
und@
beendet das Programm.Verdoppelt ist es offensichtlich
OO..11))WW@@
, was auf einem Würfel ist:Es wird
1
zweimal)
gedrückt, zweimal inkrementiert,W
erneut nach links gesprungen, wodurch es rechts inO
Richtung Norden positioniert3
wird , was ausgegeben wird , und der nächste Befehl ist,@
der das Programm beendet.Probieren Sie es online!
Online verdoppelt!
quelle
Klein ,
86 BytesEinzel , Doppel
Erläuterung
Für die Single folgt das Programm einem ziemlich einfachen Weg. Der erste Spiegel lenkt es in den zweiten um, der es
4
bis zum Ende des Programms lenkt .Das Double ist etwas komplexer. Hier ist es:
Die ersten beiden Spiegel funktionieren genauso, es gibt jedoch einen neuen Spiegel aufgrund der Verdopplung, die die IP zurück zum Anfang ablenkt. Sie wird vom Duplikat des ersten Spiegels erfasst und gegen Ende abgelenkt. Alles, was ausgeführt wird, ist das,
33++
was zu 6 ausgewertet wird.quelle
TI-Basic, 3 Bytes
Single:
Der letzte Ausdruck wird implizit in TI-Basic zurückgegeben / gedruckt, daher wird dieser gedruckt
2
Verdoppelt:
Rückgabe / Druck 3
TI-Basic ist eine Token-Sprache .
int(
,√(
Und8
jeweils ein Byte im Speicher.quelle
Ruby REPL, 8 Bytes
Die REPL druckt nur den letzten Wert ausgewertet:
22
.Verdoppelt:
Diese Zeit
33
ist der letzte ausgewertete Wert. Die Zeichenfolge wird erneut verworfen und#
ein Kommentar wird gestartet.quelle
> <>,
198 BytesDrucke
22
Probieren Sie es online!
Erläuterung:
Verdoppelt:
Drucke
33
Probieren Sie es online!
Erläuterung:
Alte Version:
Normal:Drucke
2
Probieren Sie es online!
Erläuterung:
Verdoppelt:
Drucke
3
Probieren Sie es online!
Erläuterung:
quelle
Zsh , 14 Bytes
Probieren Sie es online!
Es ist eine Herausforderung, ein vollständiges Programm in einer Nicht-Golf-Sprache zu erstellen, um alles zu drucken, dessen Quellcode so dupliziert wurde. Zsh ist dafür sehr nützlich, da Dateien und Heredocs implizit an übergeben werden
cat
. Schauen wir uns in beiden Fällen die erste Zeile an:Solange
3
es sich nicht um ein Programm handelt, wird nur das erste Programm gedruckt22
. Das zweite Programm wird33
mit zusätzlichen Zeilenumbrüchen gedruckt (aufgrund der Duplizierung).Wenn
3
es sich um eine Funktion / ein Programm / einen Alias handelt, funktioniert diese 18-Byte- Lösung weiterhin!Probieren Sie es online!
Der letzte
\
ist die Fortsetzung der Zeile, sodass die neue Zeile verworfen wird und die Echo-Anweisung ausgeführt wirdecho '22\c3'
. Das\c
bewirkt, dass das Echo nach dem Drucken stoppt22
(was auch dazu führt, dass die neue Zeile unterdrückt wird).quelle
Perl 6 , 14 Bytes
Probieren Sie es online! Probieren Sie es doppelt aus!
Dies verwendet die bequem benannte Debug-Funktion,
dd
um das verdoppelte Programm an STDERR auszugeben. Um die Logik zu trennen, setzen wir das verdoppelte Programm in Anführungszeichen, die sich beim Verdoppeln gegenseitig aufheben, sowie ein Kommentarzeichen#
, um das jetzt ungültige normale Programm auszukommentieren.quelle
Stax , 3 Bytes
Führen Sie es aus und debuggen Sie es
Führen Sie den doppelten aus und debuggen Sie ihn
U
drückt -1.J
Quadrate.^
Inkremente.quelle
MathGolf , 2 Bytes
Probieren Sie es online! Probieren Sie es doppelt aus
Ähnlich wie bei anderen Antworten ergibt der erste Befehl eine
1
Gerade, wenn er verdoppelt wird, und der zweite erhöht sie. In diesem Fall habe ich die umgekehrte Potenzierung (0**0 = 0**0**0 = 1
) verwendet, aber es könnte auch eine der!£≤°
Anweisungen und vielleicht noch mehr gewesen sein, die ich verpasst habe.quelle
Japt , 2 Bytes
Eine weitere "Fakultät + 1" -Lösung.
Probier es aus
Probier es aus
quelle