Definicja
W matematyce sekwencja harmoniczna odnosi się do sekwencji, w której
tj. n- ty ciąg sekwencji jest równy odwrotności n .
Wprowadzenie
W tym wyzwaniu, biorąc pod uwagę dodatnią liczbę całkowitą n jako dane wejściowe, wyprowadza Częściową Sumę pierwszych n wyrazów Sekwencji Harmonicznej.
Wejście
Otrzymasz dodatnią liczbę całkowitą (w zakresie liczb obsługiwanych przez Twój język). Może to być zarówno podpisany, jak i niepodpisany (zależy od ciebie), ponieważ wyzwanie wymaga tylko dodatnich liczb całkowitych.
Możesz wziąć dane wejściowe w jakikolwiek sposób, z wyjątkiem zakładania, że będą obecne w predefiniowanej zmiennej. Odczytywanie z pliku, terminala, okna modalnego ( prompt()
w JavaScript) itp. Jest dozwolone. Przyjmowanie argumentu wejściowego jako funkcji jest również dozwolone.
Wynik
Twój program powinien wypisać sumę pierwszych n wyrazów sekwencji harmonicznej jako liczbę zmiennoprzecinkową (lub liczbę całkowitą, jeśli wynik jest równomiernie podzielny przez 1) z dokładnością do 5 cyfr znaczących, gdzie n odnosi się do danych wejściowych. Aby przekazać to samo w żargonie matematycznym, musisz obliczyć
gdzie n odnosi się do danych wejściowych.
Możesz wyprowadzać dane w dowolny sposób, z wyjątkiem zapisywania wyników w zmiennej. alert()
Dozwolone jest zapisywanie na ekranie, terminalu, pliku, oknie modalnym ( w JavaScript) itp. Wyjście jako return
wartość funkcji jest również dozwolone.
Dodatkowe zasady
Numer wejściowy może mieć wartość 0 lub 1. Musisz to określić w swoim poście.
Nie wolno używać wbudowanego do obliczania częściowej sumy pierwszych n elementów. (Tak, to dla ciebie Mathematica!)
Nie wolno nadużywać rodzimych typów numerów w celu banalizacji problemu .
Przypadki testowe
Przypadki testowe zakładają, że dane wejściowe mają indeks 1
Input Output
1 1
2 1.5
3 1.8333
4 2.0833
5 2.2833
Zwycięskie kryterium
To jest golf golfowy , więc wygrywa najkrótszy kod w bajtach!
9.9999E10
raczej niż99999999999.9999999999
Odpowiedzi:
Galaretka , 3 bajty
Wypróbuj online!
1-indeksowany.
Wyjaśnienie:
źródło
Python 3, 27 bajtów
źródło
RuntimeError
gdy obsługuje dane wejściowe większe niż limit rekurencji, domyślnie 1000.sys.setrecursionlimit(473755252663)
ale stos ostatecznie przepełni się dość łatwoJavaScript,
1918 bajtów1 bajt zapisany dzięki @RickHitchcock
Jest to indeks 1.
źródło
f=
z odpowiedzi, aby zapisać 2 bajty.f=
ponieważ funkcja jest rekurencyjna i odwołuje się do niejf(--a)
. Ale gdyby nie było to rozwiązanie rekurencyjne, byłbym w stanie to zrobićf=a=>a&&1/a+f(--a)
.APL (Dyalog) , 5 bajtów
Wypróbuj online!
Możesz dodać
⎕PP←{number}
do nagłówka, aby zmienić precyzję na{number}
.Jest to indeks 1.
Wyjaśnienie
źródło
Mathematica,
212016 bajtówTo rozwiązanie ma indeks 1.
źródło
Tr[1./Range@#]&
.PHP, 33 bajtów
1-indeksowanie
Wypróbuj online!
źródło
Pari / GP , 18 bajtów
1-indeksowanie.
Wypróbuj online!
źródło
CJam , 11 bajtów
Wypróbuj online!
1-indeksowany.
źródło
Japt
-x
,8653 bajtówZ podziękowaniami dla ETHproductions
Wypróbuj online
źródło
õ x@1/X
XpJ
zamiast1/X
:-)_
względu na automatyczne funkcje. Powinienem naprawdę napisać tę wskazówkę: P (powinienem mieć czas dzisiaj lub jutro, ponieważ jest to Dzień Pamięci)CJam ,
1110 bajtów1 bajt usunięty dzięki Erikowi outgolferowi
Wykorzystuje to indeksowanie 1.
Wypróbuj online!
Wyjaśnienie
źródło
W
zamiast-1
.Haskell, 20 bajtów
Oryginalne rozwiązanie, 22 bajty
Te rozwiązania zakładają wejście 1-indeksowane.
źródło
R , 15 bajtów
Wypróbuj online!
źródło
Tcl 38 bajtów
To bardzo brudny hack, a rekurencyjne wywołania przekazują dosłowne ciągi, takie jak „5-1-1-1 ...”, dopóki nie zostaną ocenione na 0.
źródło
05AB1E , 3 bajty
Wypróbuj online!
1-indeksowany.
źródło
MATL, 5 bajtów
To rozwiązanie wykorzystuje indeksowanie 1.
Wypróbuj w MATL Online
Wyjaśnienie
źródło
Aksjomat,
4534 bajtów1-indeksowane; Ma argument jedną dodatnią liczbę całkowitą (PI) i zwraca „Dowolny”, który sys konwertuje (lub nie konwertuje) na typ przydatny dla następnej funkcji arg (w końcu wygląda to tak, widząc poniższe przykłady)
źródło
Pyth, 5 bajtów
Wypróbuj tutaj.
1-indeksowany.
źródło
C, 54 bajty
Używa liczb zindeksowanych 1.
źródło
Brachylog , 6 bajtów
Wypróbuj online!
Jest to indeks 1.
Wyjaśnienie
źródło
QBIC , 13 bajtów
Wyjaśnienie
źródło
Gol> <> , 8 bajtów
Wypróbuj online!
Przykład pełnego programu i jak to działa
źródło
Haskell, 21 bajtów
źródło
C (gcc) , 35 bajtów
Wypróbuj online!
źródło
Braingolf, 20 bajtów [niekonkurujący]
To tak naprawdę nie zadziała z powodu niemożności braingolfa do pracy z pływakami, jednak logika jest poprawna.
Wyjaśnienie:
Oto zmodyfikowany interpreter, który obsługuje zmiennoprzecinkowe. Pierwszy argument jest wprowadzany.
źródło
Tcl, 61 bajtów
Wypróbuj online!
źródło