Desafío
Dado un número entero, , como entrada donde s ≥ 1 genera el valor de ζ ( s ) (donde ζ ( x ) representa la función Riemann Zeta ).
Más información
se define como:
Debería enviar su respuesta a 5 decimales (ni más ni menos). Si la respuesta resulta ser infinita, debe generar o equivalente en su idioma.
Las incorporaciones de Riemann Zeta están permitidas, pero es menos divertido hacerlo de esa manera;)
Ejemplos
Las salidas deben ser exactamente como se muestran a continuación
Input -> Output
1 -> ∞ or inf etc.
2 -> 1.64493
3 -> 1.20206
4 -> 1.08232
8 -> 1.00408
19 -> 1.00000
Generosidad
Como consuelo para permitir incorporaciones, ofreceré una recompensa de 100 repeticiones a la respuesta más breve que no use las funciones integradas de zeta. (La marca de verificación verde seguirá yendo a la solución más corta en general)
Victorioso
El código más corto en bytes gana.

19realmente el texto1.00000? ¿No sería1o1.0sería válido? Parece que lo has convertido en un desafío de camaleón.Respuestas:
Mathematica,
9711 bytesExplicación:
Sin incorporado:
Mathematica, 23 bytes UTF-8
Gracias a Kelly Lowder
fuente
N@*ZetaGuarda dos bytes.@*es el operador de composición (izquierda):f@*gdenota una función cuyo valor en el argumentoxesf[g[x]].1que salgaComplexInfinity, y se redondea a5lugares. (por ejemplo1.64493)*trabajo?N~5pero su explicación usa6.Javascript,
81706665 bytesEjemplos ejecutables:
fuente
Array(1e6).fill()con[...Array(1e6)], y reemplazar el primero(s)consAPL (Dyalog) ,
2221 bytesMira ma, no hay complementos! -1 gracias a ngn.
Dado que Dyalog APL no tiene infinitos, uso la notación propuesta por Iverson .
Pruébalo en línea!
{función anónima:1=⍵:si el argumento es uno, entonces:'¯'devolver un macron⋄más!9factorial de nueve (362880)⍳en primer lugar que muchos enteros i ntegers⍵*⍨elevarlos al poder del argumento÷valores recíprocos+/suma5⍕formato con cinco decimales}[fin de la función anónima]fuente
1E6->!9C,
747069 bytesCompilar con
-fwrapv. Tomará algún tiempo producir una salida.Véalo funcionar aquí . La parte
++n>0se reemplaza con++n<999999, por lo que no tiene que esperar. Esto mantiene idéntica funcionalidad y salida.fuente
float?TI-Basic, 16 bytes (sin incluir)
fuente
99porE9donde E es la E científica, es decir, que representa 10 ^ 9. (O, obviamente, algo más pequeño como E5). Comprender que E99 se usa generalmente para infinito positivo también permite esta funcionalidad teóricamente, si el límite superior de la suma fueE99. Los emuladores pueden proporcionar esto mucho más rápido que una calculadora física. Gracias por sus pensamientos :)C (gcc) ,
1121019484 bytesGracias por los consejos de golf de ceilingcat.
Pruébalo en línea!
fuente
f(1)no parece correcto.Julia , 36 bytes
fuente
MATL , 21 bytes
Pruébalo en línea!
Explicación
Input
1is special-cased to outputinf, which is how MATL displays infinity.For inputs other than
1, summing the first2e5terms suffices to achieve a precision of 5 decimal places. The reason is that, from direct computation, this number of terms suffices for input2, and for greater exponents the tail of the series is smaller.fuente
R, 54 bytes
Encuentra la suma directamente y formatea según lo deseado, emite
Infsi a es 1. Sumar9^6parece ser suficiente para obtener una precisión de cinco lugares sin dejar de ser comprobable;9^9obtendría una mayor precisión en la misma longitud de código. Podría acortar esto si R tuviera un operador ternario adecuado.fuente
function(a)round("if"(a-1,sum((1:9^6)^-a)),5)is a few bytes shorter.function(a)round("if"(a-1,sum((1:9^6)^-a),Inf),5)works and is still shorter than my original solution.Inf, that's what I get for typing code into the comment box directly...C,
129 130128 bytesit uses the following formula
test and results
fuente
Σ(1/(n^s))? Parece mucho más complicado ...ooestá bien, no necesita especificarlo como positivoPython 3: 67 bytes (sin elementos integrados)
Nada lujoso, solo usa python 3 debido a la codificación implícita utf-8.
Pruébelo en línea con casos de prueba.
fuente
Perl 6 , 50 bytes
fuente
PARI / GP,
2726 bytesfuente
Jalea , 23 bytes
Pruébalo en línea!
¿Cómo?
0cuándoabs(input)<=1cederinf(en lugar de14.392726722864989) para1abs(result)<=1formatea el1.0as1.00000fuente
Python 3 + SciPy, 52 bytes
Pruébalo en línea!
fuente
∞para entrada1?infque está permitido.zetac(n)lugar dezeta(n,1)?Jalea , 26 bytes
¡No lo intentes en línea con este enlace! (Dado que esto usa 16! ~ 20 trillones de términos, la ejecución en TIO produce un error de memoria)
Pruébalo en línea con este enlace en su lugar. (Utiliza 1 millón de términos en su lugar. Mucho más manejable pero toma un byte más)
Devoluciones
infpara la entrada 1.Explicación
De los 26 bytes, 7 se usan para el cálculo, 12 son para formatear y 7 son para producir
infen cero. Tiene que haber un mejor golf para esto.fuente
ȷ6es un literal numérico de un millón, eliminando la solución factorial.MathGolf , 14 bytes (sin incluir)
Tenga en cuenta que en el enlace TIO, he sustituido106 6 en lugar de 107 7 . Esto se debe a que la versión presentada aquí expira para todos los casos de prueba. Esto da como resultado que las respuestas para 3 y 8 estén apagadas en 1 decimal. Sin embargo, hay muchos literales numéricos de 1 byte más grandes en MathGolf, lo que permite una precisión decimal arbitraria.
◄por►, que empujóPruébalo en línea!
Explicación
fuente
JavaScript (Node.js) , 64 bytes
Pruébalo en línea!
Señalado en Frxstrem's
fuente