Menú

¿Qué es la recursividad? ¿Qué es la recursividad? ¿Qué es la recursividad?...

Google ha decidido incluir una pequeña broma informática en los resultados de su buscador que pretende explicar en qué consiste la recursividad. (Volver)

paserifo dijo el día 31 de Julio de 2009 a las 15:26:32:

¿Ves Daniel como estas fricadas le gustan al personal?

alef dijo el día 30 de Julio de 2009 a las 15:44:35:

¡ Bolonia en estado puro !...

loboe dijo el día 30 de Julio de 2009 a las 14:48:25:

Erasti:

[a] La función recursiva procesa datos -los parámetros de entrada- y produce una salida -el resultado del proceso-. El destilador procesa un líquido de entrada y produce un resultado -el destilado-.

[b] La función recursiva *no se procesa a sí misma*, sino los argumentos de un proceso anterior, que en este caso, da la casualidad que han sido producidos por una función idéntica a la que realizará el nuevo proceso.

En el caso del destilador la analogía exigiría que el resultado de la primera destilación se introdujera en el mismo destilador -una vez limpio- que ejecutó el proceso anterior.

Por cierto: los aspectos de condición de salida para no entrar en un bucle infinito, o el desbordamiento de pila, son conceptos específicos de esa peculiar aplicación del concepto en el mundo de la informática, pero en principio ninguno de los dos es condición necesaria para la existencia del proceso.

Por ejemplo, es concebible una función recursiva de bucle infinito cuyo resultado es. Por ejemplo, colocar en cada iteración un dato en una posición de memoria donde podría ser leído por una interfaz analógico-digital. Los osciladores electrónicos suelen ser dispositivos recursivos de proceso indefinido.

La condición de desbordamiento de pila solo se da en lenguajes orientados a la pila. Por ejemplo, C/C++. Pero no existe limitación teórica para la existencia de lenguaje no construidos alrededor de ese mecanismo -aunque sea el más usual- dentro naturalmente de las condiciones de finitud de los ordenadores físicos -electrónicos, mecánicos, fluídicos o de cualquier otro tipo-.

En fin, por mi parte dejo el asunto. Solo recordarte que existe vida más allá del mundo de los ceros y los unos :-)

Errasti dijo el día 30 de Julio de 2009 a las 13:02:31:

Loboe, en mi opinión, la destilación sería un proceso recursivo si el destilador se destilara a sí mismo, por ejemplo.

Supón que yo pudiera fabricar una versión más pequeña de mi mismo. Yo me habría creado a mi mismo, a escala, y ese nuevo yo podría crear un tercer yo aun más pequeño que a su vez creara un cuarto, etc. Creo que existe diferencia entre el ejemplo del destilador, y este.

Tal vez a mi me parece que exista una diferencia porque en mi ejemplo, la entidad se genera a si misma, dando lugar a una copia que a su vez genera más copias.

Errasti dijo el día 30 de Julio de 2009 a las 12:56:43:

Atandoca, no te confundas. La recursividad se estudia en primer curso de varias carreras (casi todas las ingenierías). Es decir, no es un concepto más específico o especializado que el interés compuesto, una reacción redox, el latín o el griego.

En cuanto a friki, tal vez sea consecuencia de que entendemos y utilizamos cosas que a ti se te escapan. Probablemente por desinterés.

En cuanto a fumata, allá cada cual con sus pulmones y su cerebro. Pero tan droga es a lo que tu te refieres como el café, la coca y el alcohol.

En cuanto a lo de ratas de biblioteca, te diré que una biblioteca es un lugar donde se estudia sin distracciones. Tal vez sea mejor dejar de estudiar y ponerse a pedir, o incluso a robar. O a vivir de los impuestos. ¿No crees?

Al respecto de que no sepamos vivir la vida, nos las demos de listos o no nos levantemos del ordenador, solo te diré que no tienes ni idea de lo que estás hablando. Preguntale a un opositor a notario si vive la vida.

Lo de menos imponer y más diálogo, no se a qué viene. Pero te invito a que abras los ojos a una realidad que está ante ti. Y es que la gente que se dedica a la investigación, a la ciencia o a la tecnología no es distinta del resto de las personas. Aunque a alguno le parezcamos bichos raros, esto es solo consecuencia de la falta de interés y del exceso de prejuicios.

loboe dijo el día 30 de Julio de 2009 a las 12:39:50:

Pues creo que nos hemos perdido en la semántica y dentro de poco estaremos hablando del sexo de los ángeles.

Erasti: "que no es lo mismo que hacer un proceso iterativo, como sería destilar un mismo compuesto varias veces seguidas". Si el resultado de una destilación lo vuelves a mandar al mismo dispositivo (que sería lo más aproximado en el mundo físico a la función recursiva) *no* estás destilando el *mismo*, sino una modificación cada vez distinta de un producto inicial. Precisamente, este es el concepto subyacente en el término que estamos discutiendo. El problema es que los que habéis aprendido el concepto con el manido ejemplo del cálculo del factorial de un número, confundís la aplicación particular con el concepto en sí. Considera que puede existir recursividad sin llamada a funciones. Por ejemplo, este concepto subyace también en el fundamento teórico de la máquina de Turing que te será familiar, supongo.

Por otra parte, el concepto es un caso especial de otro, la retroalimentación, que es ámpliamente utilizado en muchos ámbitos. Por ejemplo, electrónica y mecánica -generalmente en la retroalimentación, solo una parte de la salida "output" es utilizada como nueva entrada "input"-.

atandoca dijo el día 30 de Julio de 2009 a las 12:27:45:

Mandééé. Cuanto friqui fumata, ratas de bilioteca que no saben vivir la vida, claro como se aburren por que no tienen vida propia pues a mirarse el ombligo, yo creo que estos tíos de la informática se creen que son el centro del universo, como muy bien decía Asterix estos romanos están locos, que se dejen de chorradas y sigan con lo de poner google de formas bonitas, eso si que me distrae mientras busco y no las tonterías de cuatro empollones fumatas que no se levantan del ordenador ni aunque se estén meando y solo valen para dárselas de listos, menos presumir y más escuchar a los mayores listillos. Menos imponer y más dialogo, que paciencia señor con lo fácil que es escuchar que ni se gasta saliva siquiera.

_falcata dijo el día 30 de Julio de 2009 a las 12:10:32:

Para entender un poco la recursividad pensad por ejemplo en la circulación de la sangre y como esta tiene que llegar a todos y cada uno de los vasos minúsculos de nuestro cuerpo sin olvidar ninguno. En un buscador como Google este tiene que llegar a todos los servidores de sitios de la red por muy pequeños y por muy subdependiente de nodos que se encuentren. Eso sería a grandes rasgos recursividad que nada tiene que ver con llamadas infinitas. El código de ejemplo que ha puesto mpab el compilador lo da por válido, pero la ejecución te da un error de desbordamiento de pila porque es una recursividad mal definida.

Errasti dijo el día 30 de Julio de 2009 a las 11:31:56:

Cualquie, no es lo mismo una llamada recursiva (función que se llama a sí misma) que un bucle infinito, de la misma forma, loboe, que no es lo mismo que hacer un proceso iterativo, como sería destilar un mismo compuesto varias veces seguidas.

Para entender que es la recursividad, primero hay que entender que es la recursividad.

_falcata dijo el día 30 de Julio de 2009 a las 10:53:45:

La recursividad en programación no es infinita porque por cada autollamada se guarda un registro en la pila para recuperar el punto de retorno y la pila utiliza la memoria del ordenador. Por tanto siempre estará limitada. En la recursividad siempre hay que definir una puerta de salida en el caso del factorial es cuando llegamos a 1.

« 1 2 »