[pyar] [Consulta] Invariante

Apokalyptica Painkiller apokalyptica79 en gmail.com
Sab Jun 15 12:27:35 ART 2013


Muchisimas gracias a los dos, anotado! :)


El 15 de junio de 2013 12:02, Juan Manuel Pérez <jmperez.85 en gmail.com>escribió:

> Básicamente lo vas a usar cuando necesites formalidad en todo el sentido
> de la palabra (como dijeron arriba, cuando necesitás demostrar que algo
> funcione). Por ejemplo, casi todos los algoritmos fundacionales de
> ordenamiento de arreglos y teoría de grafos se prueban utilizando
> invariantes de ciclo.
>
> En el día a día, sirve como una herramienta heurística para pensar cada
> vez que escribimos un ciclo.
>
> Saludos,
>
> JM
>
>
> 2013/6/15 SAn <gringotumadre en gmail.com>
>
>> 2013/6/14 Apokalyptica Painkiller <apokalyptica79 en gmail.com>
>> >
>> > Hola gente vuelvo con oooooooooootra preguntonta, es sobre invariante
>> como dice el título.
>> >
>> > Los invariantes se refieren a estados o situaciones que no cambian
>> dentro de un contexto o porción de código.
>> > El invariante de ciclo permite conocer cómo llegar desde las
>> precondiciones hasta las postcondiciones. El invariante de ciclo es, una
>> aseveración que debe ser verdadera al comienzo de cara iteración.
>> > Los invariantes son de gran importancia al momento de demostrar que un
>> algoritmo funciona, de esta forma es más fácil entender cómo funciona un
>> algoritmo y encontrar posibles errores. Además, son útiles a la hora de
>> determinar las condiciones iniciales de un algoritmo, ya que también deben
>> cumplirse para ese caso.
>> >
>> > Entiendo lo que dice y más con el siguiente ejemplo:
>> >
>> > def potencia(a, b):
>> >       """ Devuelve la potencia n del número b, con n entero mayor que 0
>> """
>> >
>> >       p = 1
>> >       for i in range(n):
>> >            p *= b
>> >       return p
>> >
>> > En este caso, el invariante del ciclo es que la variable p contiene el
>> valor de la potencia correspondiente a esa iteración. Teniendo en cuenta
>> esta condición, es fácil ver que p debe comenzar el ciclo con un valor de
>> 1, ya que ese es el valor correspondiente a p0 (elevado a la 0).
>> >
>> > Mi pregunta es, se usa? Es común su uso?
>>
>> Entiendo que lo usarias en el estudio de un algorítmo. Por ejemplo si
>> tenes que *demostrar* la correctitud de un algoritmo, o tal vez
>> simeplemente como una ayuda para entenderlo.
>> Tambien podría ser útil si estas trabajando en compiladores y
>> optimizaciones.
>>
>> No se me ocurre una utilidad práctica en el "día a dia del programador".
>>
>> Alguna otra idea?
>> SAn
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>>
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>



-- 
I live each day
Like it's my last
I live for rock and roll
I never look back

I'm a rocker
Do as I feel as I say
I'm a rocker
And no one can take that away
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20130615/be745c8a/attachment.html>


More information about the pyar mailing list