Ihre Herausforderung besteht darin, die Eingabe zu drucken, einen beliebigen Zeitraum zu warten, die Eingabe zu drucken, zweimal so lange zu warten, wie Sie ursprünglich gewartet haben, die Eingabe erneut zu drucken und so weiter. Die anfängliche Verzögerung muss weniger als 1 Stunde betragen und Sie müssen bei den nachfolgenden Verzögerungen eine Genauigkeit von +/- 5% haben. Ansonsten gibt es keine Einschränkung der Verzögerungszeit.
Beispiel:
Input: hi
.
Ausgabe: hi
(1 hi
ms Pause) hi
(2 ms Pause) hi
(4 ms Pause) (8 ms Pause) (16 hi
ms Pause) usw.
Auch erlaubt:
hi
(1 Minute Pause) hi
(2 Minuten Pause) hi
(4 Minuten Pause) hi
(8 Minuten Pause) hi
(16 Minuten Pause) usw.
Die Eingabe muss zu Beginn des Programms erfolgen (STDIN, Befehlszeilenparameter, Funktionsparameter usw.) und ist eine Zeichenfolge.
Die anfängliche Verzögerung kann nicht 0 sein.
y=x=>(x&&alert(x),y())
wäre technisch zulässig, aber ich würde es ablehnen.Antworten:
05AB1E , 6 Bytes
Code:
Erläuterung:
Probieren Sie es online!
quelle
w
statt verwenden.W
.w
Wartet eine Sekunde, egal was.W
passiert , und knallt ein und wartet so viele Millisekunden.Gw
.Scratch, 8 Blöcke + 3 Bytes
Äquivalent in Python:
quelle
Python 3,
6056 BytesÄnderungsprotokoll:
quelle
print
Anweisung speichern , indem Sie zu Python 2MATL , 8 Bytes
Die erste Pause dauert 2 Sekunden.
Probieren Sie es bei MATL Online aus . Oder sehen Sie sich eine geänderte Version an , die die seit dem Start des Programms verstrichene Zeit anzeigt. (Wenn der Interpreter nicht funktioniert, aktualisieren Sie die Seite und versuchen Sie es erneut.)
Oder sehen Sie ein GIF:
Erläuterung
quelle
Mathematica
34323029 BytesOriginallösung 34 Bytes:
2 Bytes mit Do abschneiden
Rasiere noch ein Byte mit @ MartinEnders rekursiver Lösung
@ngenisis verwendet die ReplaceRepeated-Rekursion, um ein weiteres Byte zu entfernen
quelle
True
ist1>0
. Aber so etwas ist etwas kürzer:±n_:=#0[Print@n;Pause@#;2#]&@1
1<2
vor deinen Kommentar. Ihre rekursive Lösung speichert jedoch ein Byte. Thanks @MartinEnder±
ist ein Byte in CP-1252-Codierung (Standard-Windows-Codierung).1//.n_:>(Print@#;Pause@n;2n)&
Oktave,
4241 BytesDank rahnema1 ein Byte gespeichert,
p*=2
ist kürzer alsp=p*2
.Ich kann nicht glauben, dass ich es nicht geschafft habe, Golf zu spielen, aber es war eigentlich nicht so einfach.
p*=2
irgendwo anders haben.while pause(p*=2)
quelle
input(0)
worksJava (OpenJDK 8) , 113 Byte
Probieren Sie es online!
-60 Bytes dank Leaky Nun!
quelle
public
inpublic static void main
.R
5048 BytesGibt eine anonyme Funktion zurück, die ein obligatorisches Argument hat, die zu druckende Zeichenfolge. Druckt keine Zeilenumbrüche, sondern spuckt
x
nur auf den Bildschirm.i
ist ein optionales Argument, das standardmäßig auf Sekunden1
warteti
und sich verdoppelti
.-2 Bytes dank pajonk
Probieren Sie es online!
quelle
i=1
danni=i*2
einfach schlafeni
?Ruby,
34282322 (+2 für-n
) = 24 Bytes3 Bytes gespart dank Value Ink!
Dank daniero 1 Byte gespart
Startet um
2
, dann4
usw.Erläuterung
quelle
-n
Flag starten, können Sie den erstengets
Aufruf überspringen , da das Flag dies für Sieprint
ohne Argument entsprichtputs$_
- ein Byte gespeichertAlice , 16 Bytes
Probieren Sie es online!(Natürlich gibt es dort nicht viel zu sehen, aber Sie können überprüfen, wie oft es innerhalb einer Minute gedruckt wurde.)
Erläuterung
quelle
R,
4443 BytesDurchgestrichen 44 ist immer noch regulär 44; (
Diese Antwort bietet bereits eine anständige Lösung, aber wir können noch einige Bytes einsparen.
Anonyme Funktion, die praktisch alles druckbare als Argument nimmt
x
. Beginnt bei 2 Sekunden und verdoppelt sich jedes Mal danach. Missbräuchlich die Tatsache, dassT
standardmäßig definiert ist,TRUE
was als auswertet1
.Solange dieser Kommentar noch grünes Licht von OP erhält, können wir ihn noch kürzer machen, aber ich denke nicht, dass dies im Sinne der Herausforderung ist.Wartezeiten von 0 sind nicht mehr erlaubt.quelle
T
so. In der kürzeren Version der Antwort brauchen Sie nicht einmal geschweifte Klammern, sondern nur ein Leerzeichen.T
es nicht gefällt,T
kann es für sich selbst stehen. Auch schöne Entdeckung :)Cubix , 30 Bytes
Probieren Sie es hier aus
Dies wird auf einen Würfel mit der Seitenlänge 3 abgebildet.
quelle
Bash , 37 Bytes
Aus irgendeinem Grund zeigt TIO die Ausgabe erst an, wenn Sie die Programmausführung stoppen.
Probieren Sie es online!
quelle
PHP, 31 Bytes
schläft 1, 2, 4, 8, ... Sekunden. Als Rohr mit laufen lassen
php -nR '<code>'
Funktioniert bis zum 63. Druck (auf einer 64-Bit-Maschine), danach wird nicht mehr gewartet.
Version 1 wird Warnungen geben
sleep() expects parameter 1 to be integer, float given
,Version 2 gibt eine Warnung aus
sleep(): Number of seconds must be greater than or equal to 0
.Legen Sie
@
vorsleep
den Warnungen stumm zu schalten.quelle
TI-Basic, 21 Bytes
quelle
Python 3, 61 Bytes
Ähnlich wie @ L3viathan Golf, aber verwendet
while
Schleifequelle
CJam, 26 Bytes
Funktioniert bei TIO nicht richtig.
Die erste Pause beträgt 20 Millisekunden.
Erläuterung
quelle
C, 51 Bytes
C, 35 Bytes als Funktion
Nimmt Eingaben als Befehlszeilenargument.
quelle
Batch, 62 Bytes
Dies stellte sich als ein Byte heraus, das kürzer ist als das explizite Verdoppeln
t
in einer Schleife:quelle
Retikular , 12 Bytes
Probieren Sie es online!
Erläuterung
quelle
C #,
8079 Bytes1 Byte dank @raznagul gespeichert.
quelle
Write
Anweisung in den Hauptteil der Schleife verschieben.Python 2, 54 Bytes
Verwendet eine lange Berechnung anstelle von Timing-Bibliotheken.
quelle
PowerShell,
35333029 BytesMit einem hilfreichen Hinweis von was auch immer und Joey
Erläuterung
Ausgeführt mit:
quelle
for(;;)
. Ich habe nicht einmal versucht, die Semikolons zu entfernen.$a=1
als Initialisierung in das einfor
, um ein weiteres Byte zu speichern (for($a=1){...}
). Ich bin mir auch nicht sicher, ob ich die zählen soll%
, da die tatsächliche Routine, die Sie ausführen, nur ein Skriptblock ist. (Meine Herausforderungen sind eher streng, wenn ich ein Programm benötige, um solche Überlegungen zu umgehen, aber bei allen Fragen bin ich mir immer noch nicht sicher, wie ich die verschiedenen Arten der Verwendung von PowerShell zählen soll.)Python 3, 49 Bytes
Nutzt die leichte Verzögerung der
+=
Operation und führt siex
mal aus.x
verdoppelt sich, indem man eins zu sich selbst addiert, so oft wie der Wert vonx
.Es beginnt bei
6^6
(46656), um die maximale Abweichung von 5% in der Verzögerung einzuhalten.quelle
Perl 6 , 39 Bytes
Probieren Sie es aus (
print
überschrieben, um Timing-Informationen hinzuzufügen)Erweitert:
quelle
JS (ES6),
4442403836 BytesDurchgestrichen 44 ist immer noch 44
Magst du keine Alarmbomben?
Technisch korrekt, aber lückenhaft:
-3 Bytes dank Cyoce, -2 dank Business Cat, -2 dank Neil
quelle
i=1,y=x=>(alert(x),setTimeout(y,i*=2))
ein paar Bytes spareni=1,y=x=>setTimeout(y,i*=2,console.log(x))
?Common Lisp, 49 Bytes
Die erste Verzögerung sollte die
1
zweite sein.quelle
Pyth, 7 Bytes
Erläuterung:
quelle
TI-BASIC, 36 Bytes
Die anfängliche Wartezeit beträgt 1 Sekunde.
quelle
Schläger, 51 Bytes
Beispiel
quelle