Wyzwanie
Biorąc pod uwagę liczbę całkowitą, , jako dane wejściowe, gdzie wyprowadza wartość (gdzie reprezentuje funkcję Ziem Riemanna ).
Dalsza informacja
jest zdefiniowany jako:
Powinieneś podać swoją odpowiedź z dokładnością do 5 miejsc po przecinku (nie więcej, nie mniej). Jeśli odpowiedź brzmi nieskończoność, powinieneś lub odpowiednik w swoim języku.
Wbudowane Riemann Zeta są dozwolone, ale robi się to mniej zabawnie;)
Przykłady
Dane wyjściowe muszą być dokładnie takie, jak pokazano poniżej
Input -> Output
1 -> ∞ or inf etc.
2 -> 1.64493
3 -> 1.20206
4 -> 1.08232
8 -> 1.00408
19 -> 1.00000
Hojność
Na pocieszenie za umożliwienie wbudowania zaoferuję nagrodę 100 powtórzeń za najkrótszą odpowiedź, która nie korzysta z wbudowanych funkcji zeta. (Zielony znacznik wyboru nadal będzie oznaczał najkrótsze rozwiązanie)
Zwycięski
Najkrótszy kod w bajtach wygrywa.
19
naprawdę wypisuje tekst1.00000
? Nie1
lub1.0
być ważny? Wygląda na to, że podjąłeś wyzwanie kameleona.Odpowiedzi:
Mathematica,
9711 bajtówWyjaśnienie:
Bez wbudowanego:
Mathematica, 23 bajty UTF-8
Dzięki Kelly Lowder
źródło
N@*Zeta
oszczędza dwa bajty.@*
to (lewy) operator kompozycji:f@*g
oznacza funkcję, której wartością w argumenciex
jestf[g[x]]
.1
wyjściaComplexInfinity
, i zaokrągla się do5
miejsc. (np.1.64493
)*
działa?N~5
ale użyte jest twoje wyjaśnienie6
.JavaScript,
81706665 bajtówPrzykłady możliwe do uruchomienia:
źródło
Array(1e6).fill()
się[...Array(1e6)]
i wymienić pierwsze(s)
zs
APL (Dyalog) ,
2221 bajtówSpójrz, nie ma wbudowanych! -1 dzięki ngn.
Ponieważ Dyalog APL nie ma nieskończoności, używam proponowanej notacji Iversona .
Wypróbuj online!
{
funkcja anonimowa:1=⍵:
jeśli argument jest jeden, to:'¯'
zwróć makron⋄
jeszcze!9
silnia dziewięć (362880)⍳
Pierwszy, że wiele liczb całkowitych I ntegers⍵*⍨
podnieś ich do potęgi argumentu÷
wartości wzajemne+/
suma5⍕
format z pięcioma miejscami po przecinku}
[koniec anonimowej funkcji]źródło
1E6
->!9
C,
747069 bajtówKompiluj z
-fwrapv
. Wytworzenie wyjścia zajmie trochę czasu.Zobacz, jak to działa tutaj . Część
++n>0
zostaje zastąpiona++n<999999
, więc nie musisz czekać. Pozwala to zachować identyczną funkcjonalność i wydajność.źródło
float
działaTI-Basic, 16 bajtów (bez wbudowanych)
źródło
99
zE9
którym E oznacza E naukowych, tj reprezentujących 10 ^ 9. (Lub oczywiście coś mniejszego jak E5). Zrozumienie, że E99 jest ogólnie stosowane dla dodatniej nieskończoności, pozwala również na tę funkcjonalność teoretycznie, jeśli górna granica sumy byłaE99
. Emulatory mogą zapewnić to znacznie szybciej niż fizyczny kalkulator. Dzięki za przemyślenia :)C (gcc) ,
1121019484 bajtówDzięki za wskazówki dotyczące gry w golfa od pułapu kota.
Wypróbuj online!
źródło
f(1)
nie wydaje się poprawny.Julia , 36 bajtów
źródło
MATL , 21 bajtów
Wypróbuj online!
Wyjaśnienie
Wejście
1
jest specjalnie zaprojektowane do wyjściainf
, tak jak MATL wyświetla nieskończoność.W przypadku danych wejściowych innych niż
1
sumowanie pierwszych2e5
wyrazów wystarczy, aby uzyskać dokładność do 5 miejsc po przecinku. Powodem jest to, że z bezpośredniego obliczenia ta liczba terminów wystarcza na dane wejściowe2
, a dla większych wykładników ogon serii jest mniejszy.źródło
R, 54 bajty
Znajduje sumę bezpośrednio i formatuje zgodnie z życzeniem, wypisuje,
Inf
jeśli a wynosi 1. Podsumowanie9^6
wydaje się wystarczające, aby uzyskać dokładność pięciu miejsc, a jednocześnie być testowalnym;9^9
uzyskałby lepszą dokładność przy tej samej długości kodu. Mogłabym to skrócić, gdyby R miał właściwego operatora trójskładnikowego.źródło
function(a)round("if"(a-1,sum((1:9^6)^-a)),5)
jest kilka bajtów krótszy.function(a)round("if"(a-1,sum((1:9^6)^-a),Inf),5)
działa i wciąż jest krótsze niż moje oryginalne rozwiązanie.Inf
, właśnie to dostaję za wpisanie kodu bezpośrednio w polu komentarza ...C,
129 130128 bajtówużywa następującej formuły
test i wyniki
źródło
Σ(1/(n^s))
? Wydaje się to o wiele bardziej skomplikowane ...oo
jest w porządku, nie musisz określać go jako pozytywnegoPython 3: 67 bajtów (bez wbudowanych)
Nic szczególnego, używa tylko Pythona 3 z powodu niejawnego kodowania utf-8.
Wypróbuj online z przypadkami testowymi.
źródło
Perl 6 , 50 bajtów
źródło
PARI / GP,
2726 bajtówźródło
Galaretka , 23 bajty
Wypróbuj online!
W jaki sposób?
0
kiedyabs(input)<=1
należy ustąpićinf
(zamiast14.392726722864989
)1
abs(result)<=1
sformatować1.0
jako1.00000
źródło
Python 3 + SciPy, 52 bajty
Wypróbuj online!
źródło
∞
dla danych wejściowych1
?inf
co jest dozwolone.zetac(n)
zamiast tegozeta(n,1)
?Galaretka , 26 bajtów
Nie próbuj online z tym linkiem! (Ponieważ używa to 16! ~ 20 bilionów terminów, uruchomienie w TIO powoduje błąd MemoryError)
Zamiast tego wypróbuj online z tym linkiem. (Zamiast tego używa 1 miliona haseł. Znacznie łatwiejszy do zarządzania, ale zajmuje jeszcze jeden bajt)
Zwraca
inf
dane wejściowe 1.Wyjaśnienie
Spośród 26 bajtów, 7 jest wykorzystywanych do obliczeń, 12 służy do formatowania, a 7 do tworzenia
inf
zera. W tym celu musi być lepszy golf.źródło
ȷ6
to literał liczbowy miliona, co eliminuje obejście czynnikowe.MathGolf , 14 bajtów (bez wbudowanych)
Zauważ, że w związku tio mam podstawione106 zamiast 107 . Wynika to z przekroczenia limitu czasu przesłanej tutaj wersji dla wszystkich przypadków testowych. Powoduje to, że odpowiedzi dla 3 i 8 są wyłączone o 1 miejsce po przecinku. W MathGolf istnieją jednak znacznie większe jednobajtowe literały liczbowe, które pozwalają na dowolną dokładność dziesiętną.
◄
przez►
, który pchnąłWypróbuj online!
Wyjaśnienie
źródło
JavaScript (Node.js) , 64 bajty
Wypróbuj online!
Wskazał na Frxstrem's
źródło