Milyen programozási nyelv a legmegfelelőbb numerikus számítások elvégzésére?
A C++ beépített típusai helyett használj egy ilyen könvytárat:
Sose volt szükségem c++ ilyesmire , de én ezt találtam most hirtelen a korábban belinkelten kívül : [link]
"Ha nem nagy a számításigény, akkor a python is jó megoldás lehet."
Ebben meg az a "vicces", hogy kb 3 éve c++ -ban implementált BigInt-et összevetettem a python-ossal, ugye pythonba eleve bignum egész aritmetika van. A pythonos gyorsabb volt, mivel natív kódba jobban ki van optimalizálva, gyorsabban is lehet számolni mint a szerint ahogy a suliba megtanítják, de ugyanakkor bonyolultabb is az eljárás. A c++ -os a sima sulis módszer szerint volt implementálva, persze lehetőség lett volna jobban kioptimalizálni, de nem éltek a lehetőséggel.
"Ugyanis itt a nyelv elfedi előled számábrázolást, és gyakorlatilag a gépedtől függ, hogy mennyire pontos."
- Egyrészt a c++ is elfedi a számábrázolást (pontosabban lehet úgy implenetálni c++-ban hogy elfedje) és a gép lebegőpontos hardveres gyorsításától függ hogy mennyire pontos c++ és python esetében is.
- Másrészt a c++ -ban is el lehet fedni, ott van még a c++-ban az operator overloading (ha használva van az implementációhoz) segítségével belesimul a kódba a használt típus mintha primitív típus lenne.
- Negyedrészt : Kiegészítő magyarázat az első ponthoz, hogy a python alapból nem használ nagy pontosságú lebegőpontos aritmetikát, hanem alapból BigNum egész artimetikát használ. Nagy pontosságú lebegőpontos aritmetikához python-ba külön keretrendszer szükségeltetik.
- Ötödrészt : Pythonhoz ezek a nagy pontosságú aritmetikák hatékony natív kódba , c-ben vannak implementálva. Ha sok magas szintű python-os kód végrehajtás van, na az ami lassabbá teszi a c++ -hoz képest, feltéve hogy értelmesen kioptimalizálva van a c++-os és a pythonos kód is megírva. Ugyanis c++ -ban is lehet lassabb, mert az önmagában nem garancia hogy gyorsabb is lesz csupán mert c++. Ha algoritmus szinten kioptimalizáltabb, akkor a sok lúd disznót győz elv szerint.
- hatodrészt : Amiről viszont sokszor elfelejtkeznek. Én a gyorsaság tekintetében úgy tekintek rá, hogy van egy adott számítási feladat, a feladat megértésétől a számítás elvégzéséig mennyi idő és erőfeszítés szükségeltetett és hányszor kell elvégezni automatikusan. Mert ha pl 1x kell összesen és c++-ban lefut 1 perc alatt pythonba meg lefut 10 perc alatt, de c++ leimplementálom 5 óra alatt, pythonba meg 40 perc alatt, akkor én úgy tekintem hogy pythonba gyorsabb megoldást kaptam. Ugyanakkor olyan esetben ha sokszor le kell futtatni,ami pythonba lefut 0,1 sec alatt és c++-ba 0,006 sec alatt de csak ha megnyomja az ember a gombot akkor kell, de c++-ba 7x több időt vesz el az életelmből implementálni mint pytonba akkor is a fele hajlok hog inkább pytonba. Persze ezzel nem azt akarom mondani hogy sose éri meg jobban c++-ban, de azok az esetek triviálisak azokat mindenki tudja, azokra azért nem írok példákat.
- hetedrészt : Gondolkozz el hogy célszerűbb lenne e, nem simán numerikusan, hanem szimbolikusan is számolni és ennek megfelelő keretrendszert keresni c++ -hoz, vagy más prog. nyelvhez, ha mással oldanád meg.
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!