Kétszer olyan hosszú számok összeszorzása nem négyszer annyi ideig tart? Miért?
Figyelt kérdés
Összeszoroztattam a szgéppel két-két 250e, 500e, 1m, 2m számjegyű számokat, és nem négyszereződött a végrehajtási idő, hanem háromszorozódott!???
250000 átl: 0.159s
500000 átl: 0.48s
1000000 átl: 1.438s
2000000 átl: 4.327s
2017. márc. 24. 00:15
1/4 savanyújóska válasza:
Mert a számnítógép algoritmusa a szorzásra nem lineárisan skálázódik. Ennek sok oka lehet, de talán a legfontosabb az, hogy a számítógép kettes számrendszerben számol, és emiatt sok műveletet máshogy is el lehet végezni, mint ahogy megszoktad. Tehát a szorzást a számítógép messze nem úgy fogja elvégezni, mint ahogy te tennéd kézzel, vagyis nem szükségképpen lesz rá igaz, hogy ha mindkét bemenetének a hosszát megduplázzuk, akkor négyszer annyi ideig tart majd.
2/4 anonim válasza:
Igen, háromszorosára nő, nem négyszeresére. Van erre egy okos algoritmus, valahol.
4/4 A kérdező kommentje:
Köszönöm!
Ezek szerint Karacuba módszere be van építve a sima szorzásba a Pythonban, mert én csak simán a=m*n utasítást adtam ki.
2017. márc. 24. 11:37
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!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!