Kezdőoldal » Számítástechnika » Programozás » Nehéz olyan programot írni,...

Fahey kérdése:

Nehéz olyan programot írni, amelyik egy megadott egész számot felbont három négyzetszámra (ha az adott szám felírható 3 négyzetszám összegeként), és minden lehető variációt megad? Pl. 51 = 25+25+1 és 49+1+1.

Figyelt kérdés

2023. jan. 19. 01:29
 1/9 anonim ***** válasza:
59%
Ha brute force-olod, akkor elég egyszerűen is meg lehet írni, csak nagyobb számok esetén marha lassú lesz. Gyanítom egyébként, hogy ez NP teljes, tehát nincs rá hatékony algoritmus (de ezt bekéne bizonyítani), de az is biztos hogy sok kis trükkel lehet rajta gyorsítani
2023. jan. 19. 01:47
Hasznos számodra ez a válasz?
 2/9 A kérdező kommentje:
Sajnos én nem tudok programozni, de esetleg ismer valaki olyan weboldalt, ahol találok ilyen programot? Angol nyelvű is lehet a weboldal. Előre is köszi!
2023. jan. 19. 03:37
 3/9 CspCsj ***** válasza:

Google elsőre ezt dobta:

[link]

2023. jan. 19. 09:43
Hasznos számodra ez a válasz?
 4/9 anonim ***** válasza:
Nehéz.
2023. jan. 19. 10:45
Hasznos számodra ez a válasz?
 5/9 anonim ***** válasza:
A ChatGPT ezt dobta: [link] :D
2023. jan. 19. 12:24
Hasznos számodra ez a válasz?
 6/9 anonim ***** válasza:

Igen, ez a brute force

Amúgy lepontozhatom magam? XD 1-ben arra gondoltam, hogy nem lesz lineáris, nem pedig arra, hogy NP-teljes

2023. jan. 19. 12:51
Hasznos számodra ez a válasz?
 7/9 anonim válasza:

#5: egész jó, működik, de javítható:

Az 1. ciklus csak int(math.sqrt(n/2)) + 1 -ig menjen

A 2.-ból ki kell lépni, ha c<0

" and c == int(c) " felesleges, úgy is csak egész lehet - sqrt(c)-vel gondoltad?

És mielőtt az egészet elkezdjük, illene ellenőrizni, hogy megoldható-e?

[link]

2023. jan. 19. 18:26
Hasznos számodra ez a válasz?
 8/9 A kérdező kommentje:
Köszönöm szépen mindenkinek a segítséget!
2023. jan. 20. 04:00
 9/9 anonim válasza:

Nehezebb, de érdekesebb probléma egy nagyobb, legalább 8-9 jegyű számot felírni LEGFELJEBB 8 prím négyzetének összegeként.

Sok nagy számot nem lehet felírni pontosan 8 prím négyzetének összegeként, de 7, vagy kevesebb prím négyzetének összegeként lehet.

2023. jan. 20. 17:06
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!