Autor Tema: Buscando una terna pitagórica

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

31 Julio, 2017, 05:43 pm
Leído 2390 veces

Rectilíneo

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 436
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
  • Don't go to the bathroom, Vincent
Hola,

estoy resolviendo los problemas de la página Project Euler pero me he quedado atascado en el número 9. Los 8 primeros los he resuelto utilizando pequeños programas en Python. Agradecería ideas sobre como programar el siguiente problema (o resolverlo a mano, no importa):

"Una terna pitagórica es un conjunto de tres números naturales, \( a<b<c \), tales que:
\( a^2+b^2=c^2 \)
Por ejemplo, \( 3^2+4^2=9+16=25=5^2 \)

Existe únicamente una terna pitagórica tal que \( a+b+c=1000 \).
Halla el producto \( abc \)."

31 Julio, 2017, 08:55 pm
Respuesta #1

delmar

  • Moderador Global
  • Mensajes: 3,993
  • País: pe
  • Karma: +0/-0
  • Sexo: Masculino
Hola

a=200, b=375, c=425

Adjunto un archivo en matlab, hay que optimizarlo

Saludos

31 Julio, 2017, 09:11 pm
Respuesta #2

ingmarov

  • Moderador Global
  • Mensajes: 5,428
  • País: hn
  • Karma: +0/-0
  • Sexo: Masculino
Hola

En python una forma es

for a in range(1,998):
   for b in range(1,998):
      c=1000-a-b
      if c**2==a**2+b**2 and a<b:
         print("a =",a,"   b =",b,"   c =",c)

         

Saludos
No te confíes, revisa lo que escribo. Yo también me equivoco.
Odio el autocorrector de Android...

31 Julio, 2017, 09:54 pm
Respuesta #3

Rectilíneo

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 436
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
  • Don't go to the bathroom, Vincent
Lo he hecho con "whiles" porque los "for" no los domino del todo :P

a=1
while a<=998:
    b=1
    while b<=998:
        c=1000-a-b
        if a**2+b**2==c**2 and a<b:
            print "a=",a," b=",b," c=",c
            print "abc=",a*b*c
        b+=1
    a+=1

Muchas gracias a los dos  :aplauso:

01 Agosto, 2017, 12:37 am
Respuesta #4

robinlambada

  • Moderador Global
  • Mensajes: 4,129
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
Hola.
Hola,

estoy resolviendo los problemas de la página Project Euler pero me he quedado atascado en el número 9. Los 8 primeros los he resuelto utilizando pequeños programas en Python. Agradecería ideas sobre como programar el siguiente problema (o resolverlo a mano, no importa):

"Una terna pitagórica es un conjunto de tres números naturales, \( a<b<c \), tales que:
\( a^2+b^2=c^2 \)
Por ejemplo, \( 3^2+4^2=9+16=25=5^2 \)

Existe únicamente una terna pitagórica tal que \( a+b+c=1000 \).
Halla el producto \( abc \)."
Mi solución a mano.

Es sabido que la solución general de la ecuación pitagórica es:

\( a=2uv \)    \( b=u^2-v^2 \)   \( c=u^2+v^2 \) con \( u  \) y \( v  \) naturales y \( u>v \)

http://ocw.upm.es/matematica-aplicada/matematica-discreta/contenidos/material-de-clase/tema-3     (teorema 1.3 )

De \( a+b+c=2u(u+v)=1000\Leftrightarrow{}u(u+v)=2^2\cdot{}5^3 \)
Por simple inspección es fácil ver que la única solución es: \( u=20 \) y \( v=5 \)

Sustituyendo: \( a=200 \)  ,  \( b=375 \)  y \(  c=425 \)

Saludos.

Envejecer es como escalar una gran montaña: mientras se sube las fuerzas disminuyen, pero la mirada es más libre, la vista más amplia y serena.

La verdadera juventud una vez alcanzada, nunca se pierde.