Wpis z mikrobloga

#programowanie #python #pytaniedoeksperta #matematyka

Iteruję w przedziale 0:2 o kroku 0.001 które podnoszę do potęgi max 10 000. Jaką precyzję ustawić w decimal w pytonie bez zagłębiania się w szczegóły.

Innymi słowy podnoszę w pętli 0.001 do potęgi z przedziału 1:10000, następnie 0.002 do potęgi z przedziału 1:10000 i tak dalej aż do dwóch

ctx = getcontext()
ctx.prec = 50

jest ok?
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

  • 0
@mythoMANIAC: Na float 64 maksymalnie moge podnieść 0.001 do potęgi 103,

Naprawiam to decimalem, ale długo mieli więc chciałem to ograniczyć, ale to przerasta Czaty AI :)
  • Odpowiedz
  • 0
@mythoMANIAC: No to Float/Decima trzeba zrobić mix, ale mam dwie ściezki obliczeń i kod zduplikowany. Mam prec na 10000 ale to będzie sobie mielić 41 dni to trochę długo, a jak uzupełnie float decimalem to w jakimś rozsądniejszym czasie.
  • Odpowiedz
@Wahitisyu: nie wiem na czym liczysz, możesz spróbować to zwektoryzować na numpy tam chyba były float128 (nie wiem czy ci starczy precyzja) albo podzielić te obliczenia i zrobić multiprocessing
  • Odpowiedz
  • 0
@mythoMANIAC:

trudno. bede liczł decimalem

koro odpalasz ten kod na Windowsie, to musisz bardzo uważać. Oficjalne i najpopularniejsze wydania Pythona na Windowsa (w tym Anaconda czy standardowy instalator ze strony python.org) są kompilowane za pomocą narzędzi Microsoftu (MSVC), które nie obsługują sprzętowego formatu 80-bitowego ani 128-bitowego dla liczb zmiennoprzecinkowych.W efekcie na Twoim systemie zachodzą dwa kluczowe zjawiska:1. Twoja mantysa ma tylko 52 bityNa Windowsie typ np.longdouble (oraz rzekomy float128) pod
  • Odpowiedz