Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Meta en 26 Noviembre 2010, 14:03 pm



Título: [Python] - Infinitas soluciones o no.
Publicado por: Meta en 26 Noviembre 2010, 14:03 pm

Buenas:

Mirando aquí.
Citar
Haz una función que devuelva la solución de la ecuación lineal ax + b = 0 dados a y b. Si la ecuación tiene infinitas soluciones o no tiene solución alguna, la función lo detectará y devolverá el valor None.

Pensé que era más fácil pero veo que no.

Código
  1. def funcion(x):
  2.    return (a * x + b) = 0

;)


Título: Re: [Python] - Infinitas soluciones o no.
Publicado por: seele en 26 Noviembre 2010, 14:33 pm
pues nuevamente lo mismo, tienes que entender para poder realizar este ejercicio como funciona exactamente la funcion lineal, si no lo haces no podras pasarlo a programacion....
Te recomiendo que practiques creandote problemas que tu mismo puedas resolver y asi puedes aplicar la sintaxis de python, no toda practica tiene que ser matematica. planteate un problema mas sencillo, algo que hagas dia a dia y del que quieras automatizar una tarea

saludos


Título: Re: [Python] - Infinitas soluciones o no.
Publicado por: Meta en 26 Noviembre 2010, 18:37 pm
No se si hay que poner valores a la a y b o sólo la x.


Título: Re: [Python] - Infinitas soluciones o no.
Publicado por: Novlucker en 26 Noviembre 2010, 18:38 pm
Citar
Haz una función que devuelva la solución de la ecuación lineal ax + b = 0 dados a y b


Título: Re: [Python] - Infinitas soluciones o no.
Publicado por: Meta en 26 Noviembre 2010, 22:28 pm
Lo pensé. Y la x que pinta. ¿Es un amultiplciación o es com la a y b para guardar datos dentro?

Por eso puse (a * x + b) = 0.


Título: Re: [Python] - Infinitas soluciones o no.
Publicado por: Meta en 27 Noviembre 2010, 00:49 am
Hola de nuevo:

Hice algo así:
Código
  1. def funcion(a, b):
  2.    return a * x + b = 0
  3.  
  4. print funcion(3, 5)

Me da este error de la x que es lo que me confunde, no se si es un valor x o simplemente una multiplicación.
Citar
    return a * x + b = 0
                     ^
SyntaxError: invalid syntax

Saludo.


Título: Re: [Python] - Infinitas soluciones o no.
Publicado por: .:WindHack:. en 27 Noviembre 2010, 01:58 am
¿Recuerdas cómo resolver las ecuaciones lineales (ecuaciones de primer grado)?

Ejemplo:
2x + 5 = 17
2x = 17 - 5
x = 12 / 2
x = 6
-
2x + 5 = 17
2(6) + 5 = 17
12 + 5 = 17
17 = 17

Pues bien, has lo mismo con la ecuación del enunciado.
a y b son términos conocidos y x es la variable de la incógnita por lo cual:

ax + b = 0
x = -b/a


Título: Re: [Python] - Infinitas soluciones o no.
Publicado por: Meta en 27 Noviembre 2010, 02:26 am
Gracias por esa explicación, voy a intentarlo mejor, por ahora no me sale.

Código
  1. def funcion(a, b):
  2.  
  3. # Ejemplo:
  4. #2x + 5 = 17
  5. #2x = 17 - 5
  6. #x = 12 / 2
  7. #x = 6
  8.  
  9. #2x + 5 = 17
  10. #2(6) + 5 = 17
  11. #12 + 5 = 17
  12. #17 = 17
  13.  
  14.    return x = -b / a
  15.  
  16. print funcion(2, 5)

No se que hay de malo aquí:
Código
  1. def funcion(a, b):
  2.  
  3.    return a x + b = 0
  4.  
  5. print funcion(2, 5)
Citar
   return a x + b = 0
             ^
SyntaxError: invalid syntax

Otro intento más.
Código
  1. def funcion(a, b):
  2.  
  3. # Ejemplo:
  4. #2x + 5 = 17
  5. #2x = 17 - 5
  6. #x = 12 / 2
  7. #x = 6
  8.  
  9. #2x + 5 = 17
  10. #2(6) + 5 = 17
  11. #12 + 5 = 17
  12. #17 = 17
  13.  
  14.    x = (0 - b) / a
  15.    return x
  16.  
  17. a = int(raw_input('Introduce un número entero: '))
  18. b = int(raw_input('Introduce otro número entero: '))
  19.  
  20.  
  21. print funcion(2, 5)

Me da un resultado que parece ser no correcto.
Citar
Introduce un número entero: 2
Introduce otro número entero: 5
-3

¿Aquí no tienes que poner un - 2, un signo negativo o son cosas mias y hay que dejarlo en positivo?
Código
  1. # Ejemplo:
  2. #2x + 5 = 17
  3. #2x = 17 - 5
  4. #x = 12 / - 2
  5. #x = 6
  6.  
  7. #2x + 5 = 17
  8. #2(6) + 5 = 17
  9. #12 + 5 = 17
  10. #17 = 17


Título: Re: [Python] - Infinitas soluciones o no.
Publicado por: .:WindHack:. en 27 Noviembre 2010, 17:27 pm
Hola.

Mira, primero que todo la ecuación tiene que estar ordenada para poder resolverse. O sea:

2x + 5 = 17
2x + 5 - 17 = 0
2x - 12 = 0
ax - b  = 0

-
Aplicando fórmula:
x = -b / a
x = -(-12) / 2
x = 12 / 2
x = 6

Código
  1. def equ(a,b):
  2.     return -b / a