Wpis z mikrobloga

Który język programowania, będzie najszybszym do obliczeń matematycznych?
Przykładowo zrobiłem sobie dla zabawy taki program w #python

Jeśli coś nie tak z kodem, to nie hejtujcie, na razie się uczę i bawię kodem

Doliczenie do 31 potęgi, zajęło jak na razie 41 sekund

#programowanie #komputery #informatyka
W.....a - Który język programowania, będzie najszybszym do obliczeń matematycznych?
...

źródło: comment_atVQY6gVf08KozC6XM2RgxCSOC27hWxa.jpg

Pobierz
  • 66
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Wariat_Z_Mokra_Glowa: Spoko( ͡° ͜ʖ ͡°)
A co do szybkości obliczeń matematycznych - ogólnie języki kompilowane będą zazwyczaj szybsze od języków skryptowych.
Należy mieć jednak na uwadze, że naprawdę mało kiedy problemem z prędkością działania jakiegoś programu jest zły język programowania. W ponad 90% przypadków został użyty zły algorytm do obliczeń lub wykonujemy niepotrzebnie zbędne obliczenia w pętli.
Przy źle napisanych algorytmach może się okazać, że C
  • Odpowiedz
czaskonca=time.time()

czastrwania=czaskonca-czasstartu


@atestowanie2: odkąd OP zaczął już liczyć to co chciał i te czasy mu wychodzą o wiele mniejsze, może jednak dokładniejsze byłoby użycie timeit? Wg źródła
  • Odpowiedz
może jednak dokładniejsze byłoby użycie timeit?


@raq195: Nie. Należy dokładnie zrozumieć co OP chce zmierzyć i z jaką dokładnością. Otóż OP mierzy łączny czas wielu tysięcy obliczeń, który jest łącznie rzędu kilkudziesięciu sekund. Do takich zastosowań w 100% wystarczy zwykły time.time(), a nawet najzwyklejszy na świecie stoper w telefonie komórkowym( ͡° ͜ʖ ͡°)

Co do timeit - z opisu jednoznacznie wynika, że jest to "narzędzie" do
  • Odpowiedz
Który język programowania, będzie najszybszym do obliczeń matematycznych?


@Wariat_Z_Mokra_Glowa: Zależy jakich obliczeń. Proste potęgi najszybciej da się zrobić asemblerze. Ale to też zależy od algorytmu (np. dla bardzo dużych potęg https://pl.wikipedia.org/wiki/Algorytm_szybkiego_pot%C4%99gowania ) jest dużo, dużo, dużo szybszy niż naiwne mnożenie po kolei.

Ale to nie wszystko, bo w porównywaniu szybkości trzeba też wziąć pod uwagę możliwość zrównoleglania danego obliczenia. Wtedy może się okazać, że najszybciej będzie działać np. kod w
  • Odpowiedz
@Wariat_Z_Mokra_Glowa: Zupełnie swoją drogą- nie wiem jak akurat jest to rozwiązane w pythonie (choć śmiało zakładam, że tak samo), ale tak napisany kod w javie czy c++ większość czasu spędzałby na wypisywaniu komentarzy do stdout-a, a nie na liczeniu czegokolwiek, więc jakbyś chciał cokolwiek porównywać na podstawie tego 'kodu' to decydujący będzie czas dostępu do tego zasobu, a nie faktyczna wydajność obliczeniowa.
  • Odpowiedz
@Wariat_Z_Mokra_Glowa: Ludzie wyżej mają racje - napisanie tego samego algorytmu w Pythonie a C, C++ będzie czasowo na korzyść tych drugich.

ALE

Python ma bardzo bogate biblioteki do obliczeń matematycznych oraz naukowych (NumPy oraz SciPy), które są pisane w C i bardzo dobrze zoptymalizowane, co bardzo przyspiesza te obliczenia. Dodatkowo dochodzi tu fakt, że często to co w innych językach napiszesz skomplikowanymi forami, w Pythonie można zrobić jedną prostą linijką - co
  • Odpowiedz
tak c razem z c ++, są używane wszędzie tam gdzie liczą się osiągi


@rekoj: xD

Tak średnio bym powiedział. Osiągi liczą się w wielu dziedzinach i raczej wiele języków nie jest znacząco wolniejsza. Oczywiście Python czy Ruby nigdy nie będzie tak szybki jak C czy Java, ale bardzo rzadko problem "osiągów" czegoś większego niż weekendowy projekt sprowadza się do tego w czym
  • Odpowiedz
konto usunięte via Wykop Mobilny (Android)
  • 0
@miczal: zapomniałeś wspomnieć o silnikach graficznych w których robi się gry aaa, a nie z webdevem wyjeżdżasz który rządzi się trochę innymi prawami niż stawianie wydajności na pierwszym planie XDDD

  • Odpowiedz