Wyzwanie polega na wydrukowaniu danych wejściowych, odczekaniu dowolnej ilości czasu, wydrukowaniu danych wejściowych, odczekaniu dwukrotnie czasu początkowego oczekiwania, wydrukowaniu danych wejściowych ponownie itd. Początkowe opóźnienie musi wynosić mniej niż 1 godzinę, a dokładność kolejnych opóźnień musi wynosić +/- 5%. Poza tym nie ma ograniczenia czasu opóźnienia.
Przykład:
Wejście: hi
.
Wyjście: hi
(przerwa 1ms) hi
(przerwa 2ms) hi
(przerwa 4ms) hi
(przerwa 8ms) hi
(przerwa 16ms) itp.
Dozwolone są również:
hi
(Przerwa 1 minuta) hi
( przerwa 2 minuty) hi
( przerwa 4 minuty) hi
(przerwa 8 minut) hi
(przerwa 16 minut) itp.
Dane wejściowe należy podać na początku programu (STDIN, parametr wiersza polecenia, parametr funkcji itp.) I będzie to ciąg znaków.
Początkowe opóźnienie nie może wynosić 0.
y=x=>(x&&alert(x),y())
byłoby technicznie dozwolone, ale chciałbym to zagłosować.Odpowiedzi:
05AB1E , 6 bajtów
Kod:
Wyjaśnienie:
Wypróbuj online!
źródło
w
zamiast.W
.w
czeka jedną sekundę bez względu na wszystko,.W
wyskakuje i czeka tyle milisekund.Gw
.Scratch, 8 bloków + 3 bajty
Odpowiednik w Pythonie:
źródło
Python 3,
6056 bajtówDziennik zmian:
źródło
print
wyciągu, przełączając się na Python 2 :)MATL , 8 bajtów
Pierwsza przerwa to 2 sekundy.
Wypróbuj w MATL Online . Lub zobacz zmodyfikowaną wersję, która wyświetla czas, jaki upłynął od uruchomienia programu. (Jeśli interpreter nie działa, odśwież stronę i spróbuj ponownie).
Lub zobacz gif:
Wyjaśnienie
źródło
Mathematica
34323029 bajtówOryginalne rozwiązanie 34 bajtów:
Ogol 2 bajty za pomocą Do
Ogol jeszcze jeden bajt dzięki rekurencyjnemu rozwiązaniu @ MartinEnder
@ngenisis używa rekurencji ReplaceRepeated, aby zgolić kolejny bajt
źródło
True
jest1>0
. Ale coś takiego jest nieco krótsze:±n_:=#0[Print@n;Pause@#;2#]&@1
1<2
przed twoim komentarzem. Jednak rozwiązanie rekurencyjne oszczędza bajt. Dzięki @MartinEnder±
to jeden bajt w kodowaniu CP-1252 (domyślne kodowanie w systemie Windows).1//.n_:>(Print@#;Pause@n;2n)&
Oktawa,
4241 bajtówZapisany jeden bajt dzięki rahnema1
p*=2
jest krótszy niżp=p*2
.Nie mogę uwierzyć, że nie byłem w stanie zagrać w golfa, ale tak naprawdę nie było to takie łatwe.
p*=2
gdzie indziej.while pause(p*=2)
źródło
input(0)
działaJava (OpenJDK 8) , 113 bajtów
Wypróbuj online!
-60 bajtów dzięki Leaky Nun!
źródło
public
wpublic static void main
.R,
5048 bajtówzwraca anonimową funkcję, która ma jeden obowiązkowy argument, ciąg do wydrukowania. Nie drukuje nowych wierszy, po prostu wypluwa
x
na ekranie.i
jest opcjonalnym argumentem, domyślnie ustawiony na1
, czeka nai
sekundy i podwaja sięi
.-2 bajty dzięki pajonk
Wypróbuj online!
źródło
i=1
użyciai=i*2
na końcu i po prostu spaći
?Rubinowy,
34282322 (+2 za-n
) = 24 bajty3 bajty zapisane dzięki Value Ink!
1 bajt zapisany dzięki Daniero
Rozpoczyna się
2
, a następnie4
, etc.Wyjaśnienie
źródło
-n
flagą pozwala pominąć początkowegets
wywołanie, ponieważ flaga sobie z tym poradziprint
bez argumentu jest równoważnyputs$_
- zapisano jeden bajtAlice , 16 bajtów
Wypróbuj online! (Oczywiście nie ma tam wiele do zobaczenia, ale możesz sprawdzić, jak często drukowano w ciągu jednej minuty).
Wyjaśnienie
źródło
R
4443 bajtówPrzekreślone 44 jest nadal regularne 44; (
Ta odpowiedź już zapewnia przyzwoite rozwiązanie, ale możemy zaoszczędzić trochę więcej bajtów.
Anonimowa funkcja przyjmująca praktycznie wszystko do wydrukowania jako argument
x
. Zaczyna się po 2 sekundach i podwaja się za każdym razem. NadużywaT
domyślnie zdefiniowanegoTRUE
kryterium oceny1
.Tak długo, jak długo ten komentarz otrzyma zielone światło od OP, możemy go jeszcze skrócić, ale nie sądzę, że jest to zgodne z duchem wyzwania.Czasy oczekiwania 0 nie są już dozwolone.źródło
T
ten sposób. w krótszej wersji odpowiedzi nie potrzebujesz nawet aparatów ortodontycznych, tylko spację.T
to nie podoba,T
może się bronić. Także miłe znalezisko :)Cubix , 30 bajtów
Wypróbuj tutaj
Mapuje to na sześcian o długości boku 3.
źródło
Bash , 37 bajtów
Z jakiegoś powodu TIO nie wyświetli wyniku, dopóki nie zatrzymasz wykonywania programu.
Wypróbuj online!
źródło
PHP, 31 bajtów
śpi 1, 2, 4, 8, ... sekund. Uruchom jako potok z
php -nR '<code>'
Będzie działał do 63. wydruku (na komputerze 64-bitowym), po tym nie będzie już czekania.
Wersja 1 wyświetla ostrzeżenia
sleep() expects parameter 1 to be integer, float given
,wersja 2 wyświetla jedno ostrzeżenie
sleep(): Number of seconds must be greater than or equal to 0
.Włóż
@
wcześniej,sleep
aby wyciszyć ostrzeżenia.źródło
TI-Basic, 21 bajtów
źródło
Python 3, 61 bajtów
Podobne do golfa @ L3viathan, ale używa
while
pętliźródło
CJam, 26 bajtów
Nie działa poprawnie w TIO.
Pierwsza przerwa to 20 milisekund.
Wyjaśnienie
źródło
C, 51 bajtów
C, 35 bajtów jako funkcja
Pobiera dane wejściowe jako argument wiersza poleceń.
źródło
Partia, 62 bajty
Okazało się, że jest to bajt krótszy niż jawne podwojenie
t
w pętli:źródło
Siatka , 12 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
C #,
8079 bajtówOszczędność jednego bajtu dzięki @raznagul.
źródło
Write
instrukcję do treści pętli.Python 2, 54 bajty
Wykorzystuje długie obliczenia zamiast bibliotek czasowych.
źródło
PowerShell,
35333029 bajtówZ pomocną wskazówką od czegokolwiek i Joeya
Wyjaśnienie
Wykonano z:
źródło
for(;;)
. Nawet nie próbował usunąć średników.$a=1
jako inicjalizację w,for
aby zapisać kolejny bajt (for($a=1){...}
). Nie jestem też pewien, czy to policzyć%
, ponieważ faktycznie wykonywana rutyna to tylko blok skryptu. (Moje wyzwania są raczej surowe, jeśli chodzi o wymaganie programu, unikanie takich rozmyślań, ale w przypadku jakichkolwiek pytań wciąż nie jestem pewien, jak policzyć różne sposoby korzystania z programu PowerShell.)Python 3, 49 bajtów
Wykorzystuje niewielkie opóźnienie
+=
operacji i wykonuje jex
razy.x
podwaja się, dodając jeden do siebie tyle razy, ile wartośćx
.Zaczyna się od
6^6
(46656), aby trzymać się maksymalnie 5% zmienności opóźnienia.źródło
Perl 6 , 39 bajtów
Spróbuj (
print
zastąpione, aby dodać informacje o czasie)Rozszerzony:
źródło
JS (ES6),
4442403836 bajtówPrzekreślone 44 to wciąż 44
Nie lubisz bomb ostrzegawczych?
Technicznie poprawne, ale nadużywające luk prawnych:
-3 bajty dzięki Cyoce, -2 dzięki Business Cat, -2 dzięki Neilowi
źródło
i=1,y=x=>(alert(x),setTimeout(y,i*=2))
aby zaoszczędzić kilka bajtówi=1,y=x=>setTimeout(y,i*=2,console.log(x))
?Common Lisp, 49 bajtów
pierwsze opóźnienie powinno być
1
drugie.źródło
Pyth, 7 bytes
Explanation:
źródło
TI-BASIC, 36 bytes
Initial wait period is 1 second.
źródło
Racket, 51 bytes
Example
źródło