Segítesz egy "mind négyzetszám legyen" feladatban?
Keressük az a legkisebb a+b+c összeget, amelyikre:
a > b > c > 0 egész számok, és
a+b, a-b, a+c, a-c, b+c, b-c mind négyzetszámok
b+c=u^2
b-c=v^2
b=(u^2+v^2)/2
c=(u^2-v^2)/2 és így tovább
És így tovább hová jutunk?
Lesz 6 ismeretlen négyzetszám u^2,v^2,x^2,y^2,s^2,t^2 a három ismeretlen a,b,c helyett?
O.K., de legalább egy (pár) ilyen a,b,c hármast írj, hogy lássam hogy kell.
Ahhoz, hogy minimális a+b+c-t találjak, legalább egyet kellene... :D
Olyanokat már találtam, ahol a hatból öt stimmel (négyzetszám):
185 104 40, 89 80 64, 353 272 128
Írtam rá programot, ez jött ki:
434657 + 420968 + 150568 = 1006193
434657 + 420968 = 855625 = 925^2
434657 - 420968 = 13689 = 117^2
420968 + 150568 = 571536 = 756^2
420968 - 150568 = 270400 = 520^2
434657 + 150568 = 585225 = 765^2
434657 - 150568 = 284089 = 533^2
(Nem biztos, hogy ez a legkisebb összeg.)
Köszi!
Alkalmaztál valamilyen elméleti korlátozásokat, megfontolásokat, vagy brute-force próbálgattad a négyzetszámok kombinációit?
A brute force nagyon lassú lenne, de kiegészítve azzal a trükkel, amit #1 is mondott, már elég gyors.
Szóval 3 egymásba ágyazott ciklusom van:
- a külső az a+b = u² négyzetszámokon megy sorban (lehet kicsit itt is trükközni, hogy (u+1)² = u² + 2u+1)
- a második az a-b = v² négyzetszámokon (amik azonos paritásúak u²-tel, vagyis 1-ről vagy 4-ről indulnak és csak minden második négyzetszámot kell nézni, (v+2)² = v² + 4v+4. A leállító feltétel pedig v² < u² lesz.). Ezekből kijön a és b.
- a harmadik ciklus a b-c = w² négyzetszámokon megy végig 1-től w² < b-ig. Ez kiadja c-t.
Többet már nem lehet gyorsítani, most már brutálisan ellenőrizni kell a b+c, a+c és a-c négyzetszám voltát.
Ez a legkisebb a+b-hez tartozó számhármast találja meg elsőre, tehát elméletileg lehet, hogy a+b+c-re van nála kisebb is egy nagyobb a+b-nél, ezért tovább kell menni a kereséssel (u² = a+b < a₁+b₁+c₁-ig).
Köszönöm!
Igen, ilyesmire gondoltam.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!