Algoritmo del exito

Iniciado por curious_29, 1 Mayo 2020, 05:06 AM

0 Miembros y 1 Visitante están viendo este tema.

curious_29

Hola, estaba buscando algoritmos motivacionales y encontré uno y le hice una leve modificación, me puse a hacer unas pruebitas con él pero como es un bucle infinito (se supone) muchas pruebas no se pueden hacer, en el futuro quien sabe me haría un tatuaje con algo similar pero depende de cómo se den las cosas en mi vida y el mundo laboral xD

El codigo es de Python, mi duda surge con la funcion tryAgain(), como lo veo yo es que sería una funcion que retornaria la variable success pero con valor True, la duda es si es o no necesario declarar una variable para que reciba el valor retornado por la funcion, o si no es necesario porque quedaria en memoria el valor retornado, que es cómo se planteo este algoritmo, donde basta con la funcion tryAgain() para que el valor de "success" pueda ser modificado y el if lo evalue a ver si es True luego del intento, en otras palabras estoy analizando el sentido de este algoritmo jaja
 

while not success:
dontGiveUp+=1
tryAgain() #tiene sentido asi la funcion, sin una variable que reciba el retorno?
if success: #no deberia haberse retornado el valor de tryAgain() en "success"
improve()


Saludos, feliz feriado :)

MCKSys Argentina

Hola!

Deberías asignar a success el resultado de tryAgain. Ahora, el problema con tu algoritmo es que, ni bien success sea true, vas a llamar a improve() 1 sola vez y el bucle terminará. En otras palabras, sólo prodrás mejorar 1 sola vez... :)

Te propongo el siguiente algoritmo:

Código (python) [Seleccionar]

alive = True
while alive:
    dontGiveUp += 1
    success = tryAgain()
    if success:
        improve()
    alive = yourStillKicking()


Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


tincopasan

hola :
         partamos de la base que en este código nada tiene sentido:
Código (python) [Seleccionar]

while not success: # no hay nada declarado previamente.
dontGiveUp+=1
tryAgain() #tiene sentido asi la funcion, sin una variable que reciba el retorno?
if success: #no deberia haberse retornado el valor de tryAgain() en "success"
improve()


ahora bien, supongamos que vemos el código un poco más completo:

Código (python) [Seleccionar]

#-*- coding: utf -8 -*-
success = False   #sino la declaras no hay forma de usarla

def tryAgain(): #la desconocida función
global success
success = True
return success

dontGiveUp = 0 #otra variable a declarar sino ¿cómo la incrementas?

while not success:
dontGiveUp+=1
tryAgain() #si tiene sentido, la variable ya fue declarada
if success: #ahora es True
improve()