elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Algoritmo del exito
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Algoritmo del exito  (Leído 577 veces)
curious_29

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Algoritmo del exito
« en: 1 Mayo 2020, 05:06 am »

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
 
Código:
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 :)


En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 4.879


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Algoritmo del exito
« Respuesta #1 en: 1 Mayo 2020, 15:38 pm »

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
  1. alive = True
  2. while alive:
  3.    dontGiveUp += 1
  4.    success = tryAgain()
  5.    if success:
  6.        improve()
  7.    alive = yourStillKicking()
  8.  

Saludos!


En línea

MCKSys Argentina

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

tincopasan


Desconectado Desconectado

Mensajes: 1.241

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: Algoritmo del exito
« Respuesta #2 en: 1 Mayo 2020, 22:59 pm »

hola :
         partamos de la base que en este código nada tiene sentido:
Código
  1. while not success: # no hay nada declarado previamente.
  2. dontGiveUp+=1
  3. tryAgain() #tiene sentido asi la funcion, sin una variable que reciba el retorno?
  4. if success: #no deberia haberse retornado el valor de tryAgain() en "success"
  5. improve()
  6.  


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

Código
  1. #-*- coding: utf -8 -*-
  2. success = False   #sino la declaras no hay forma de usarla
  3.  
  4. def tryAgain(): #la desconocida función
  5. global success
  6. success = True
  7. return success
  8.  
  9. dontGiveUp = 0 #otra variable a declarar sino ¿cómo la incrementas?
  10.  
  11. while not success:
  12. dontGiveUp+=1
  13. tryAgain() #si tiene sentido, la variable ya fue declarada
  14. if success: #ahora es True
  15. improve()
  16.  
  17.  

En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines