Hace 12 años | Por Milhaud a cookingideas.es
Publicado hace 12 años por Milhaud a cookingideas.es

Durante la historia han existido hombres cuya perseverancia por hacer de su vida su obra les ha llevado casi hasta el límite. Este el caso de alguien que quiso que ese límite tendiera a infinito, abriendo los brazos para abarcar un pedazo de aquello que nos es vedado como especie.

Comentarios

thatguy

Chuck Norris lo hizo 2 veces.

D

#7 Yo tardo 1 hora como mucho en escribir un programa que me imprima números. Si algo me enseñaron en la escuela es la Ley del Mínimo Esfuerzo.

D

#18
Yo aporto la versión en java:

long i = 0;
while (true) ">

Esto daría un error cuando se sobrepasara el limite de rango de los enteros, pero ya lo arreglará el que venga detrás lol

EDIT
Edito para cambiar int por long para contar más lejos lol

frankiegth

Para #18. 7777777 queda muy lejos de infinito. Goto #17 or Goto #20.

Para #20. Con long sigues quedando muy lejos de infinito. Habría que crear una nueva clase que usase espación en disco duro para ir almacenando la suma, y cuando se acabe el espacio en disco quizás sea una buena idea usar espación en la nube, en Internet. Seguiremos quedando lejos de infinito, pero estaremos en el buen camino con las posibilidades actuales.

D

#21 En el artículo pone que 7.777.777 era su meta final, algo más realista.

sorrillo

#17 Y resto, os he votado positivo por error. Tal como indican #22 y #24 no es nada trivial crear un programa capaz de contar números hasta el infinito.

Y es que no tiene sentido crear un programa que no pueda cumplir su función por limitaciones del equipo, como insuficiente capacidad ram, de disco o de dispositivo de salida.

De hecho es una tarea que no solo requeriría una hora sino probablemente varias vidas y aún así no se podría asegurar que se hubiera conseguido.

sorrillo

#30 Los requisitos para conseguirlo evidentemente no son sencillos de conseguir, empezando por el hecho que necesitarías infinita energía y tiempo infinito.

Pero no descartes tampoco que lleguemos a encontrar solución a esos inconvenientes, así a bote pronto se me ocurre tirar un ordenador autoalimentado a un agujero negro.

D

#33 pasado el horizonte de sucesos tengo entendido que el tiempo se ralentiza... pero no sé si hasta el punto de poder contar infinitamente. Es más, desconozco el ciclo de vida de los agujeros negros, pero a buen seguro que no es infinito.

D

#38 aunque apoyo la teoría de que la vida del universo es finita, sólo es una teoría; no podemos afirmarlo

Eso sí, indiscutible que hasta el infinito no podemos llegar, pero puede ser entretenido buscar métodos para "acercarnos"

D

#21 seguirías muy lejos de infinito

EdmundoDantes

#24 De hecho, da igual a qué número llegues, te seguirán faltando infinitos números para llegar al infinito.

D

#21 A partir de esta fecha aclararía el monótono fondo gris un 1% cada vez. Su nueva meta, que al llegar al número 7.777.777 se encontrara escribiendo en blanco sobre blanco

El cliente cambió los requerimientos, como de costumbre.

D

#c-20" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/1397922/order/20">#20 Versión en C#

try
}

catch (Exception ex) break;
">

sid

#28 No vas a contar muy lejos con un int,bueno ni con alguno de los otros tipos,pero algunos lenguajes interpretados no tipados como Python permiten numeros extremadamente grandes

D

#20 No daría error, se pondría el contador a -2^31 o -2^63, según uses int o long, y el programa seguiría a partir de ahí. Podemos usar la clase BigInteger, para poder tirar hasta agotar la memoria de la JVM:

for (BigInteger i=BigInteger.ZERO;;i=i.add(BigInteger.ONE))
System.out.println(i);

D

Prefiero esta función, permite escribir números sin estar limitado por el tipo, así hasta que se quede sin memoria o energía.

#17 #18 #20 A mi no me parece tan sencillo. Aunque yo siempre dedico 20 minutos a pensar, 10 para escribir el código y 30 para testearlo. Más que nada porque si eres demasiado eficiente, te mandan más trabajo.

std::deque numbers(1,0);

void write_to_infinite_and_beyond(const int k)
for (int j = 0; j < numbers.size(); j++){
printf("%i", numbers[j]);
">

numbers[numbers.size()-1] += 1;
}
if (k>0)
else
}

void main()


PD: No lo he testeado

D

#62 Con python no tienes ese problema, puesto que es de tipado dinámico. Será un int hasta que le hagas un +1 que lo convierta en float.

Además, lo puedes hacer con generadores e iteradores (#58), una verdadera gozada

D

#64 Pero si lo convierte en un float ya queda por debajo de la precisión sumarle 2^1024 + 1 no hará nada. Hay librerías en c para operaciones aritméticas de tamaño arbitrario como MPFR. Supongo que tanbién habrá un swig para python.

D

#69 No te he entendido demasiado bien, explica otra vez please!
Va por 1294880000! Le cuesta más imprimir en pantalla uno de cada 10000 números que otra cosa, parece que la pantalla no se refresca cada 10000 operaciones de la CPU

No se si es esto a lo que te refieres:
>>> 2**2024 + 1
1926243667084634739203147690812942502525097290856569053657671536655703493289225750756096924038107005577607033307665468424208137938409502571528443836358087248839788279968
5595090240357965463192526576553367605249624417300354625356052018307503663585287613023308427355471278958067829335371141795845269634682169867702921265166009915283307305910
9267561770534725942147124277387018984712318828465426863781171227557162797114871254335983738889403058896338369868383486469311900300536660616518317014915357392617007909289
2562190097447338461713096678175819845507525768121215319760765625810900051503098306187879655114031497217L

zorion

#71 No conozco Python, pero eso no tiene pinta de Float.
Esa L final le hace parecer más bien Long.

D

#59 No es que seamos informáticos, es que somos unos frikazos que nos peleamos por ver quien la tiene más grande (a la pila me refiero).

#62 No te lo tomes a mal, hombre, que estamos todos de coña. Además, con ese comentario, has conseguido que en un meneo sobre arte estemos casi todos divagando sobre programación, y encima en portada. Apúntate un tanto.

#65 Estuve tentado a hacerlo. Pero de cabeza seguro que la cagaba. No tengo cojones.

zorion

#62 Jodé como te complicas la vida...

Hess

#17 Si cambias el valor de i deja de ser "True" y por lo tanto dejaría de imprimir el valor de i, y si estás reiniciando el valor de i a 0, imprimirás infinitos ceros. Sin acritud...

D

#27 O todavía peor, imagina que cambie el valor de "print" cuando "i" valga "clear", ¡dejaría la pantalla en blanco!

Vauldon

#8 Si tardas mas de 15 segundos, eres un completo inutil, no un vago......

D

#8 Yo ni 5 minutos Y soy muy novato.

D

Si contase solo los números pares llegaría más lejos

chulonsky

Ya que estamos, sin iterar en C:

function estupidez(unsigned long long a) estupidez(++a);
">


estupidez(0);

Llorenç_Servera

#23 En C no existe el tipo de datos function a no ser que lo definas con un typedef, y no veo que esté definido.

Si es una función sin retorno, como es el caso ya que no hay return ni recoges en una variable el resultado de la función, se pone void. De todas formas se recomienda poner al menos un return en las funciones void.

chulonsky

#40 Omg fue un lapsus.
Sustituir function por void.

Llorenç_Servera

#57 No te preocupes, no era un reproche, sólo una aclaración.

El return es importante ya que indicas explícitamente que termina la función. En C siempre es mejor explícito que implícito.

Más que nada a los ceceros tendemos a meter returns entre el código para descartar todos los casos que no interesan y no cargar con ellos todo el rato, lo que sobrecargaría las condiciones y las haría más complejas de entender y de manejar. Así sólo trabajas con los valores que interesan y puedes exponer tu algoritmo (lo que es la chicha, el fundamento) de forma más limpia.

Hoy en dia que vamos sobrados de máquina la mejor opción (si no es un monstruo de programa) no es la más eficiente, sinó la que permita un código más limpio.

c

[CyP] En 2004 contaba cinco millones y medio [...]

El 6 de agosto de 2011 dejó de contar para siempre. Terminó sus días en un hospital de Roma, donde pasaba sus vacaciones.

Su último número, el de su muerte, quedó muy lejos del objetivo previsto: 5.607.249.



O alguien se ha equivocado al escribir, o al tío ya no le quedaban muchas ganas de escribir durante sus 7 últimos años

Gargonslipfisk

Quien quiera más información: http://www.ucm.es/BUCM/blogs/InfoMat/4335.php

D

Vaya panoli.

Sr_Atomo

Yo sé contar hasta infinito y no me premian por ello: 1, 2, 3, [...], infinito-1, infinito.

ElPerroDeLosCinco

#51 En las primeras versiones de Basic se usaban tipos implícitos. No se solían declarar las variables, porque Basic no era compilado sino interpretado. Se podía asignar un valor y el intérprete asignaba el tipo dinámicamente. Pero sí que se podía asignar un tipo a las variables, y el "integer" existía.

D

#54 He buscado un emulador de MSX y al menos en la version 1.0 no lo reconoce.

http://www.hwado.net/javamsx/Jmsx/msx1.htm

En GW-Basic tampoco he visto que se esté:

http://www.antonis.de/qbebooks/gwbasman/

Creo recordar que en QBasic si se permitían tipos, pero ya no llevaba numeración.

D

#54 Creo recordar, aunque lo digo de memoria, que si escribías i% = 0 le daba valor entero, s$ = "abcd" alfanuméricos y así.

Teofilo_Garrido

joder....
....¿pero lo consiguió o no?

ipanies

#14 le dijo a su hijo que siguiera por el.

ElPerroDeLosCinco

El viejo Basic al rescate!

10 Dim i as integer
20 Print i
30 i = i + 1
40 Goto 20

D

#34 Tampoco valdría, ten en cuenta que "numeraco" ya es una variable. De todas formas, prueba a hacer un "while(1) ", y verás como también peta.

#52 Una duda, ¿El viejo Basic tenía integer?. Al menos en MSX y en GW-Basic no lo recuerdo.

d

#51 Se supone que primero guarda el texto de un en una variable y despues, si se cumple la condición dada, le suma 1 a la variable y escribe el resultado en . la variable necesita un valor inicial para que se cumpla la condición la primera vez. Aunque he cometido un fallo: no he puesto "var" en la primera declaración.

D

#67 Ten en cuenta que la función la llamas recursivamente, por lo que tarde o temprano desbordarás la pila y a tomar por saco el invento.

d

#70 ahhhh
¿y eso no se evitaría si uso setinterval para la llamada?
(si te has cansao de que te de la brasa, me lo dices, que esto ya parece stackoverflow)

D

#72 No es sano escribir ni funciones ni importes recursivos. Use iterators!

d

#74 Gracias por el libro! Se ve muy interesante. Tengo que mirarlo un poco mas detenidamente pero parece que empieza desde 0.
Yo + o - ya llevo un tiempo usando Jquery (me he hecho mis propios slides, lightbox, persianas...). Lo que tengo que afianzar mejor es el uso de javascript "puro", para no tener malas costumbres a la hora de programar. Son cosas básicas como lo que me comenta #73 (gracias también a ti).

Ahora estoy buscando algún libro o web que sirva de referencia para trabajar con el DOM, que tenga toda la estructura del arbol bien explicada y con las diferencias de cada navegador, porque en cuanto te sales de Jquery se vuelve un poco caos todo; para algo tan básico como recoger la posición del ratón tienes que estar con código diferenciado.

De todas formas, jugar con el DOM usando Jquery es una pasada. Simple, rápido, y muy potente. Solo por poder usar each() merece la pena incluir la librería en una web.

D

#72 No te preocupes por dar la brasa, si tienes ganas de aprender mereces a alguien que te escuche. Lo que no se es si yo soy el más indicado para responderte, pero allá vamos.

Hagas lo que hagas, consumirás memoria. Con setInterval lo único que conseguirá es relentizar la función, pero ese timer ya está ejecutándose.

De todas forma, como veo que está con jQuery, voy te recomiendo este libro:

http://ebooks-it.org/e-books/mix/Sitepoint.JQuery.Novice.To.Ninja.Feb.2010.ISBN.0980576857.pdf

El enlace está debajo del todo, dale a "guardar como...", por lo que he ojeado te servirá, sobre todo si dices eres maquetador. Está todo muy bien explicado.

D

#70 Creo que no te entendido. ¿Podrías utilizar un lenguaje más geek? Algo así como "overflowear el stack".

D

#75 Si quieres usar el spanglish, por mi bien, pero me parece más "Latino pandillero" que geek, por mucho que overrunees.

ElCascarrabias

-Oye Patxi, ¿qué resultao has tenido en la segunda ecuación?
-Infinito
-¿sólo...??

D

Es impresionante, hablas de contar hasta el infinito y ya estamos picando código
Lo mismo pero en Python:

from itertools import count
num = count()
while True:
>>>>print num.next()

La función 'count' (un generador) devuelve un iterador. Como todos los iteradores, tiene la función 'next' (además de '__iter__'). En este caso, next devuelve siempre el siguiente número.

Python is beautiful (pero menéame hace un strip en todos las tabulaciones y los espacios, por lo que he tenido que poner >>>> y queda feo. MENÉAME NO ES PYTHONICO!! BOIKOT!)

D

Con todos mis respetos, la primera mujer de este señor no debía de ser demasiado agraciada, puesto que él, en vez de estar impaciente e ilusionado ante su llegada (en la estación del tren) tenía la mente ocupada en algo tan "valiente" como contar hasta el infinito.

timbaler2008

Vaya tarado!

amoebius

Es maravilloso, entre tantas vidas extinguidas en un desgarrador sinsentido, aparece este hombre y le da uno a la suya. Sin embargo no puedo dejar de pensar en el coste de oportunidad.

a

Mama, ¿Es verdad que si cuentas hasta el infinito te mueres?

Parece ser que si...

barni

A ver, si la letra está!... no hay mas que oír "El Rap de Nunca Acabar" de los Mojinos Escozíos

d

Aún no tengo ni zorra pero, en vez de almacenar números en memoria, lo mismo te ahorras problemas si los escribes en un html por ejemplo.

Con Jquery:

numeraco = $("p").text()

function perdiendoeltiempo() numeraco = numeraco+1
$("p").text(numeraco)
perdiendoeltiempo()
">

perdiendoeltiempo()

0

(si he dicho una burrada, recordad que solo soy maquetador web)

dreierfahrer

EDIT

sangaroth

Yo soy muy torpe e ignorante con esas cosas del 'arte', valoro el realismo y pocas cosas abstractas que difícilmente me dicen algo (la ignorancia influye seguramente).
Pero cosas como esta, uff... lo valoro mas por no ser 'pragmático' (gran mal que adolecemos) que por otra cosa.

War_lothar

#4 Desde cuando ser pragmático es un mal, eso será para ti z-z .

sangaroth

#26 todo en su justa medida decían, la falta de tiempo con la que vivimos nos obliga a ser pragmáticos en la inversión de nuestro tiempo, al final dejamos de tener hobbies como construir castillos de arena,por ejemplo, por considerarlos 'perdida de tiempo'.
Seguro que algún psicólogo nos indicaría los beneficios de tal actividad.

P

A que no hay cojones a hacerlo en ensamblador!

t

Yo no se si falta comprensión lectora o es que estoy demasiado espeso, pero este hombre es un pintor que propone como tema de sus cuadros escribir/pintar los números hasta infinito, y hacer más de 300 cada día debe llevar su buen tiempo. Sólo hay que ver la evolución de sus cuadros.
Otra cosa es la valoración que se tenga del arte, pero a mí no me importaría tener un cuadro suyo.

D

Sí es posible contar hasta el infinito, pero pasado el número 42 resulta inútil. Ya está demostrado.

D

Lo sabía sois todos unos informáticos..... sí consideramos q cada vuelta de un electron es una unidad, podría la naturaleza misma estar contando hasta infinito desde el comienzo

D

#59 Poético. El sentido del (los) universo(s): contar hasta el infinito.

D

Bueno, estoy ahora mismo con uno de mis dos procesadores al 100% (paso de hacer esta gilipollez multiproceso aunque no cueste ni 10 min). Lo que estoy rulando:

from itertools import count
num = count()
while True:
____cur = num.next()
____if cur % 10000 is 0:
________print cur #para que imprima los numeros en pantalla cada 1000
__________________#que el procesador gana a la pantalla

De momento va por 358970000. Prometo subir el fichero
Ahora ve por 537260000

l

Vaya tontería, de proponerse algo así, que hubiera contado los números primos hasta el infinito, que eso le iba a llevar un pelín más de 1h/día.

D

No sólo era una imbecilidad lo que hizo, encima, le premiaron por ello.

¡Miradme, he contado hasta cinco millones!

D

#1 Pues yo hasta cinco millones uno.