Wikipedia: la paradoja de la dicotomía de Zenón
Un número infinito de matemáticos entran en un bar. El primero pide una cerveza. El segundo ordena media cerveza. El tercero ordena un cuarto de cerveza. El cantinero los detiene, sirve dos cervezas y dice: "Todos ustedes son un montón de idiotas".
Imprima las siguientes series durante el tiempo que se ejecute el programa, con el denominador de cada elemento multiplicado por dos cada vez:
1 + 1/2 + 1/4 + 1/8 + 1/16 + 1/32 + ...
A medida que se n
acerca al infinito, se aproxima la suma de esta secuencia 2
.
Reglas
No, no puede imprimir 2
.
No puede imprimir 1/1
como primer elemento.
Puede eliminar espacios 1+1/2+...
o agregar espacios 1 + 1 / 2 + ...
según lo necesite.
Puede usar nuevas líneas en lugar de espacios como delimitador debido a la demanda popular.
Puede agregar un .
más un número constante de 0
s al denominador si es necesario.
"Infinitamente" significa que no hay retrasos innecesarios, y durante el mayor tiempo posible limitado por las especificaciones del sistema (variable) actual, pero no limitado por su idioma actual.
Se aplican lagunas estándar .
Este es el código de golf , por lo que la respuesta más corta en bytes gana.
fuente
+1/
s simplemente formaría una línea diagonal. Sin embargo, las longitudes de los denominadores están cambiando linealmente (hasta redondear): el número de dígitos2^n
es aproximadamenten log(2)/log(10)
. Ese cambio lineal se traduce en un cambio lineal en la posición relativa de cada uno+1/
con respecto al anterior, que es lo mismo que un cuadrático cambio en la posición absoluta .Respuestas:
05AB1E ,
109 bytesGuardado 1 byte gracias a Erik the Outgolfer
Pruébalo en línea!
Explicación
fuente
[No?…+1/?
«
lugar de,J
pero esto también funciona.Python 2 , 30 bytes
-5 gracias a Erik the Outgolfer
Pruébalo en línea!
fuente
Jalea , 12 bytes
Pruébalo en línea!
fuente
Pyth , 10 bytes
Pruébalo en línea!
fuente
APL (Dyalog Unicode) , 15 bytes
Más divertido si
⎕FR
( F loating punto R ePresentation) es1287
(128 bit decimal) y⎕PP
( P rint P recision) es 34.Pruébalo en línea!
{
...}1
aplique la siguiente función en el número 1:⎕←⍵'+1/'
imprime el argumento y la cadena⊃
elige el primero (es decir, el argumento)2×
duplica eso∇
recidiva de llamada de cola en eso (optimizado, por lo que puede repetirse infinitamente)fuente
C (gcc) , 60 bytes
Sube el límite de 64 bits sin firmar.
Pruébalo en línea!
Este continúa para siempre; (es tan pequeño como se va a poner)
C (TCC) ,
312264255251233231208204195190188170 bytesPruébalo en línea!
Aquí está la versión no tan golfizada;
fuente
Bash , 33 bytes
Pruébalo en línea!
Cambiar
print
porprintf
yecho
paraprintf
evitar nueva líneafuente
printf 1
También evita la nueva línea, ¿no?+1/inf
partir del término 1024. :-(dc,
1918 bytesExplicación
Empujamos
1
y[rdp+[+1/]Prdx]
sobre la pila. Luego duplicamos y ejecutamos[rdp+[+1/]Prdx]
. Lo primero que hace es girar la pila (r
) para que el valor esté arriba.dp+
imprime el valor y se agrega (para multiplicar por 2).[+1/]P
imprime el invariante+1/
, luego rotamos los argumentos para que la definición de macro guardada esté en la parte superior, la duplicamos y comenzamos de nuevo.Notas
GNU
dc
normalmente se ajustará a 70 columnas. Para anular eso y obtener una línea infinita, agregueDC_LINE_LENGTH=0
a sus variables de entorno.Salida (parcial)
...
...
...
fuente
dp
lugar deddn
guardar un bytedn
evitar introducir una nueva línea, pero lo considerép
(a costa de una salida más fea). En realidad, al reflexionar, no es tan feo, después de todo.GolfScript , 19 bytes
Pruébalo en línea!
fuente
CJam , 14 bytes
Pruébalo en línea!
fuente
> <> , 14 bytes
Pruébalo en línea!
fuente
Pyth, 10 bytes
Z
comienza como cero.~hyZ
post-asigna el valor de2*Z+1
aZ
. Por lo tanto, seZ
convierte0, 1, 3, 7, 15, ...
en sucesivas iteraciones.h
luego imprime el valor uno mayor.#
ejecuta el bucle infinito y"+1/
obtiene el formato correcto.fuente
JavaScript (ES6) ,
3634 bytesPruébalo en línea!
Inspirado por la respuesta de Jake Taylor .
Tenga en cuenta que esto está limitado por el idioma ya que
a
es una variable de punto flotante, no un número entero.-2 bytes gracias a @Stefnotch .
fuente
for(a=.5;;)console.log`${a*=2}+1/`
Sin embargo, su solución está limitada por el idioma, porque a es un flotante, no un gran número entero. (El desafío dice que no debería estar limitado por el idioma, sino por las especificaciones del sistema)for(a=1;;a*=2)console.log(a+"+1/")
Rubí ,
2725 bytesPruébalo en línea!
fuente
Java,
107102 bytesz=null
existe para acortar lao=java.math.BigInteger.ONE
entradaz=null,o=z.ONE
, ahorrando 12 bytes.z.ONE
no arrojará unNullPointerException
porque accedemos a un miembro estático y no a uno de instancia.El uso
int
acorta el código, pero no cumple después de 32 iteraciones.Ahorra
n.compareTo(o)>0
convertido enn.max(o)==o
, gracias a una idea dada por @Shufflepantsfuente
int
y todos los demás tipos primitivos están limitados a nivel de lenguaje. Además, elBigInteger
documento dice explícitamente que un límite es opcional, no obligatorio (y que la implementación de JVM predeterminada usa ese límite).Vim,
22, 21 bytes / pulsaciones de teclasMientras prueba esto, puede encontrarse con problemas con los valores de registro actuales. Para arreglar esto, ejecuta
antes de ejecutar esto, o iniciando vim con
fuente
R,
3534 bytesEl espacio es un poco extraño, pero entiendo que está bien.
fuente
repeat
lugar dewhile(T)
:cat(i<-1);repeat cat("+1/",i<-i*2)
por 1 byte menos.Befunge 93: 14 bytes
fuente
Powershell, 34 bytes
Pruébalo en línea!
fuente
Aceto , 20 bytes
Imprime la secuencia sin espacios. Cuando se ejecuta, no verá nada por un momento, debido al almacenamiento en búfer, ejecute con
-F
para ver todo de inmediato.fuente
Ir ,
102100 bytesIr puede ser casi tan malo como Java, aparentemente.
Pruébalo en línea! ( Sería una buena idea evitar ejecutar cualquiera de estos a nivel local .: P)
fuente
QBIC , 18 bytes
Imprime cada término en una nueva línea.
Explicación:
Podemos guardar un byte con un formato de salida más liberal:
fuente
Mathematica, 25 bytes
fuente
+
s como los números?C #, ̶6̶8̶ 154 bytes
Aquí hay una versión no limitada por int
fuente
int.MaxValue
BigInteger b=1;
y acortando la multiplicación ab*=2;
JavaScript (ES6),
454342 bytesGuardado 2 bytes, gracias @DanielM! Guardado 1 byte, gracias @ eush77 por señalarlo.
= console.log; a = 1; (1); para (;;) _ (+1/${a*=2}
)= console.log; (a = 1); para (;;) _ (+1/${a*=2}
)Mi primera visita a Codegolf, ¡vaya fácil!
fuente
a=1
puede ir en la primera parte de la para,for(a=1;;)
que le ahorra un byte en coma adicional._(a=1)
, trabaja con la sugerencia de DanielM también+1/
, no una fracción.PHP, 32 bytes
Versión en línea
-6 Bytes si
9.2233720368548E+18
se permiten valores comoPruébalo en línea!
fuente
AWK ,
3732 bytesPruébalo en línea!
Podría eliminar
BEGIN
y guardar 5 bytes si se permitiera la entrada. Usar exponentes definitivamente más baratos en bytes que la multiplicación. :)Espero que 2 ^ 1023 esté lo suficientemente cerca del infinito (en mi computadora de trabajo). Lamentablemente, el enlace TIO se trunca antes que eso (alrededor de 921). Pero 17726622920963562283492833353875882150307419319860869157979152909707315649514250439943889552308992750523075148942386782770807567185698815677056677116184170553481231217950104164393978236130449019315710017470734562946173533283208371259654747728689409291887821024109648618981425152 sí parece bastante cercano al infinito. :)
fuente
Haskell
-6662605149 caracteresEsto imprime la cadena construida imprimiendo las representaciones de cadena de las potencias de dos a partir de 1, separadas por la cadena
" + 1/"
.El código en sí es de 49 bytes, la importación y la nueva línea lo empujan hasta 66
Editar: (62)
Afeitó 4 bytes cortando la importación y definiendo intercalar con un nombre mucho más corto
Edición 2: (60)
Afeité 2 caracteres más al darme cuenta de que no necesitaba usar la convención de lista (x: xs):
Edición 3: (51)
Vuelva a implementar la definición de f y el mapa como el cuerpo de un pliegue para guardar 9 caracteres más
Edición 4: (49)
Como señaló Laokoni, puedo eliminar los espacios para reducir 2 bytes más del total:
fuente
Braingolf ,
4137 bytesGuarde 4 bytes porque me di cuenta de que no necesito los espacios, siempre lea las especificaciones a fondo niños
Pruébalo en línea!
Probablemente se pueda jugar mejor al golf, pero funciona.
fuente
Fourier, 20 bytes
Pruébalo en línea!
Creo que esto solo puede funcionar en Pruébelo en línea debido a las diferencias en cómo Python y Javascript manejan grandes números.
Explicación Psuedocode:
fuente
Print i
al inicio delWhile
bucle?i
.