Wikipedia: paradoks dychotomii Zenona
Nieskończona liczba matematyków wchodzi do baru. Pierwszy zamawia piwo. Drugi zamawia pół piwa. Trzeci zamawia jedną czwartą piwa. Barman zatrzymuje ich, nalewa dwa piwa i mówi: „Jesteście bandą idiotów”.
Drukuj następującą serię tak długo, jak działa program, a mianownik każdego elementu jest pomnożony przez dwa za każdym razem:
1 + 1/2 + 1/4 + 1/8 + 1/16 + 1/32 + ...
Gdy n
zbliża się nieskończoność, zbliża się suma tej sekwencji 2
.
Zasady
Nie, nie możesz drukować 2
.
Nie można drukować 1/1
jako pierwszego elementu.
W razie potrzeby możesz usunąć spacje 1+1/2+...
lub dodać spacje 1 + 1 / 2 + ...
.
Możesz używać znaku nowej linii zamiast spacji jako separatora ze względu na popularne zapotrzebowanie.
W razie potrzeby możesz dodać .
stałą do liczby plus 0
.
„Nieskończenie” oznacza brak zbędnych opóźnień i tak długo, jak to możliwe, ograniczone specyfikacjami obecnego (zmiennego) systemu, ale nieograniczone przez Twój obecny język.
To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach.
źródło
+1/
s tworzyłby po prostu linię ukośną. Jednak długości mianowników zmieniają się liniowo (do zaokrąglenia): liczba cyfr2^n
wynosi okołon log(2)/log(10)
. Ta zmiana liniowa tłumaczy do liniowego zmianę względnego położenia każdego+1/
w stosunku do poprzedniego, który jest taki sam jak w kwadratowej zmianę bezwzględnej pozycji.Odpowiedzi:
05AB1E ,
109 bajtówZaoszczędzono 1 bajt dzięki Erikowi Outgolfer
Wypróbuj online!
Wyjaśnienie
źródło
[No?…+1/?
«
zamiast,J
ale to też działa.Python 2 , 30 bajtów
-5 dzięki Erikowi Outgolfer
Wypróbuj online!
źródło
Galaretka , 12 bajtów
Wypróbuj online!
źródło
Pyth , 10 bajtów
Wypróbuj online!
źródło
APL (Dyalog Unicode) , 15 bajtów
Jeśli więcej zabawy
⎕FR
( M loating punktu R ePresentation) wynosi1287
(128 nieco dziesiętna) i⎕PP
( P rukuj P recision) wynosi 34.Wypróbuj online!
{
…}1
Zastosuj następującą funkcję na numerze 1:⎕←⍵'+1/'
wypisz argument i ciąg⊃
wybierz pierwszy (tj. argument)2×
podwój to∇
rekurencja wywołania ogona na tym (zoptymalizowana, aby można ją było bez końca powtarzać)źródło
C (gcc) , 60 bajtów
Zwiększa limit 64-bitowy bez znaku.
Wypróbuj online!
Ten trwa wiecznie; (jest tak mały, jak się da)
C (tcc) ,
312264255251233231208204195190188170 bajtówWypróbuj online!
Oto niezbyt golfowa wersja;
źródło
Bash , 33 bajty
Wypróbuj online!
Zmień
print
naprintf
iecho
dla,printf
aby uniknąć nowej liniiźródło
printf 1
unika także nowej linii, nie?+1/inf
od 1024. okresu. :-(dc,
1918 bajtówWyjaśnienie
Pchamy
1
i[rdp+[+1/]Prdx]
wchodzimy na stos. Następnie duplikujemy i wykonujemy[rdp+[+1/]Prdx]
. Pierwszą rzeczą, jaką robi, jest obrócenie stosu (r
), aby wartość była na górze.dp+
wypisuje wartość i dodaje siebie (aby pomnożyć przez 2).[+1/]P
wypisuje niezmiennik+1/
, a następnie obracamy argumenty, aby zapisana definicja makra znalazła się na górze, powiel ją i zacznij od nowa.Notatki
GNU
dc
zwykle zawinie w 70 kolumnach. Aby to zmienić i uzyskać nieskończoną linię, dodajDC_LINE_LENGTH=0
do zmiennych środowiskowych.Wyjście (częściowe)
...
...
...
źródło
dp
zamiastddn
ratować bajt , użyjdn
unikałem wprowadzania nowej linii, ale rozważałemp
(kosztem brzydszych wyników). W rzeczywistości po odbiciu wcale nie jest tak brzydka.GolfScript , 19 bajtów
Wypróbuj online!
źródło
CJam , 14 bajtów
Wypróbuj online!
źródło
> <> , 14 bajtów
Wypróbuj online!
źródło
Pyth, 10 bajtów
Z
zaczyna się od zera.~hyZ
po przypisuje wartość2*Z+1
doZ
. W ten sposóbZ
staje się0, 1, 3, 7, 15, ...
ponad kolejnymi iteracjami.h
następnie wypisuje wartość o jedną większą.#
uruchamia nieskończoną pętlę i"+1/
poprawnie formatuje.źródło
JavaScript (ES6) ,
3634 bajtówWypróbuj online!
Zainspirowany odpowiedzią Jake'a Taylora .
Zauważ, że jest to ograniczone przez język, ponieważ
a
jest zmienną zmiennoprzecinkową, a nie liczbą całkowitą.-2 bajty dzięki @Stefnotch .
źródło
for(a=.5;;)console.log`${a*=2}+1/`
Jednak twoje rozwiązanie jest ograniczone przez język, ponieważ a jest liczbą zmiennoprzecinkową, a nie dużą liczbą całkowitą. (Wyzwanie mówi, że nie powinien on być ograniczony przez język, ale raczej przez specyfikację systemu.)for(a=1;;a*=2)console.log(a+"+1/")
Ruby ,
2725 bajtówWypróbuj online!
źródło
Java,
107102 bajtówz=null
istnieje, aby skrócićo=java.math.BigInteger.ONE
doz=null,o=z.ONE
, oszczędzając 12 bajtów.z.ONE
nie wyrzuci,NullPointerException
ponieważ uzyskujemy dostęp do członka statycznego, a nie instancji.Użycie
int
skraca kod, ale nie jest zgodne po 32 iteracjach.Oszczędza
n.compareTo(o)>0
zamienione wn.max(o)==o
, dzięki pomysłowi @Shufflepantsźródło
int
i wszystkie inne prymitywne typy są ograniczone na poziomie języka. PonadtoBigInteger
dokument wyraźnie mówi, że limit jest opcjonalny, nie obowiązkowy (i że domyślna implementacja JVM korzysta z tego limitu).Vim,
22, 21 bajtów / naciśnięć klawiszyPodczas testowania możesz napotkać problemy z bieżącymi wartościami rejestru. Aby to naprawić, uruchom
przed uruchomieniem tego lub przez uruchomienie vim z
źródło
R,
3534 bajtówOdstępy są nieco dziwniejsze, ale rozumiem, że to w porządku.
źródło
repeat
zamiastwhile(T)
:cat(i<-1);repeat cat("+1/",i<-i*2)
za 1 bajt mniej.Befunge 93: 14 bajtów
źródło
PowerShell, 34 bajty
Wypróbuj online!
źródło
Aceto , 20 bajtów
Drukuje sekwencję bez spacji. Po uruchomieniu nic nie zobaczysz przez krótki czas, ze względu na buforowanie, biegnij z,
-F
aby natychmiast zobaczyć wszystko.źródło
Idź ,
102100 bajtówNajwyraźniej Go może być prawie tak samo zły jak Java.
Wypróbuj online! ( Byłoby dobrym pomysłem, aby uniknąć uruchamiania dowolnego z nich lokalnie .: P)
źródło
QBIC , 18 bajtów
Drukuje każdy termin w nowej linii.
Wyjaśnienie:
Możemy zapisać bajt z bardziej liberalnym formatem wyjściowym:
źródło
Mathematica, 25 bajtów
źródło
+
zarówno cyfr, jak i liczb?C #, ̶6̶8̶ 154 bajtów
Oto wersja nie ograniczona przez int
źródło
int.MaxValue
BigInteger b=1;
i skracając mnożenie dob*=2;
JavaScript (ES6),
454342 bajtówZapisano 2 bajty, dzięki @DanielM! Zapisano 1 bajt, dzięki @ eush77 za wskazanie go.
= console.log; a = 1; (1); for (;;) _ (+1/${a*=2}
)= console.log; (a = 1); dla (;;) _ (+1/${a*=2}
)Moja pierwsza wizyta w Codegolf, spokojnie!
źródło
a=1
Może iść w pierwszej części FOR,for(a=1;;)
oszczędzając bajt w dodatkowym średnikiem._(a=1)
, praca również z sugestią DanielM+1/
, a nie ułamek.PHP, 32 bajty
Wersja online
-6 Bajtów, jeśli
9.2233720368548E+18
dozwolone są wartości podobneWypróbuj online!
źródło
AWK ,
3732 bajtówWypróbuj online!
Można usunąć
BEGIN
i zapisać 5 bajtów, jeśli dane wejściowe są dozwolone. Używanie wykładników zdecydowanie tańsze bajtowo niż mnożenie. :)Mam nadzieję, że 2 ^ 1023 jest wystarczająco blisko nieskończoności (na moim komputerze roboczym). Niestety łącze TIO obcina się wcześniej (około 921). Ale 17726622920963562283492833353875882150307419319860869157979152909707315649514250439943889552308992750523075148942386782770807567185698815677056677116184170553481231217950104164393978236130449019315710017470734562946173533283208371259654747728689409291887821024109648618981425152 wydaje się całkiem blisko do nieskończoności. :)
źródło
Haskell
-6662605149 znakówSpowoduje to wydrukowanie ciągu zbudowanego przez wydrukowanie reprezentacji ciągu dwóch potęg zaczynających się od 1, oddzielonych ciągiem
" + 1/"
.Sam kod ma 49 bajtów, import i znak nowej linii zwiększają go do 66
Edycja: (62)
Ogolono 4 bajty, odcinając import i definiując interkalację o znacznie krótszej nazwie
Edycja 2: (60)
Ogoliłem jeszcze 2 postacie, zdając sobie sprawę, że nie muszę używać konwencji listy (x: xs):
Edycja 3: (51)
Ponownie wprowadzono definicję f i mapę jako treść zagięcia, aby zaoszczędzić jeszcze 9 znaków
Edycja 4: (49)
Jak zauważył Laokoni, mogę usunąć spacje, aby zmniejszyć o 2 dodatkowe bajty:
źródło
Braingolf ,
4137 bajtówZaoszczędziłem 4 bajty, ponieważ zdałem sobie sprawę, że nie potrzebuję spacji, zawsze dokładnie przeczytaj specyfikację dzieci
Wypróbuj online!
Prawdopodobnie można lepiej grać w golfa, ale działa.
źródło
Fourier, 20 bajtów
Wypróbuj online!
Myślę, że może to działać tylko w Try Try Online ze względu na różnice w obsłudze dużych liczb w Pythonie i JavaScript.
Objaśnienie Psuedocode:
źródło
Print i
początkuWhile
pętli?i
.