[QGHG-it-dev-list] Zadatak 39 (računanje zapremine k-simpleksa)

Marko Vojinovic vmarko at ipb.ac.rs
Thu Jun 11 10:44:12 CEST 2026


Pozdrav Marko,

Generalno, ne ocekujem da ce bilo ko da koristi nasu biblioteku za dimenzije simpleksa vece
od 63. Ali za svaki slucaj, proveri na pocetku da li je k>63, pa ako jeste prijavi
LOG_ERROR da tako velike dimenzije nisu implementirane i da kod treba da se popravi ako
nekome trebaju dimenzije simpleksa vece od 63. U tom slucaju takodje nemoj nista da racunas
nego neka funkcija vrati nulu kao vrednost zapremine.

A za k<=63 slobodno iskoristi bitwise shift.

:-)
Marko


Dr. Marko Vojinovic
Group for Gravitation, Particles and Fields
Institute of Physics
University of Belgrade
======================
home page: www.markovojinovic.com
e-mail:    vmarko at ipb.ac.rs



On Wed, 10 Jun 2026, Marko Miladinović wrote:

> Poštovani,
> imam pitanje u vezi sa implementacijom zadatka 39 (računanje zapremine k-simpleksa). Formula nam kaže da je za nalaženje kvadrata zapremine prvo neophodno izračunati 2^k. Dva načina padaju na pamet: da promenljiva u koju ćemo da
> smestimo vrednost koju treba da izračunamo bude tipa double i onda prostom petljom da nađemo potrebnu vrednost ili da tu promenljivu prvo tretiramo kao unsigned long long int (objasniću ubrzo zašto baš long long) pa onda pošto je u
> pitanju format neoznačenog celog broja, 2^k možemo izuzetno brzo da nađemo logičkim pomeranjem udesno broja 1 za k mesta (bitwise shift operator <<). Ova instrukcija zahteva veoma malo procesorskog vremena za reazliku od čitavog
> niza instrukcija koje su potrebne za izvršavanje petlje. Međutim cena koju bi time potencijalno platili je da k ne može da uzima vrednost veću od 63, jer bi u suprotnom došlo do prekoračenja (standardom C++11 je zagarantovano da je
> veličina unsigned long long int tipa podatka 64 bita). Sa druge strane, da koristimo double, uzimajući u obzir da je 2^k neophdno dalje pomnožiti sa (k!)^2, do prekoračenja bi došlo oko vrednosti k=80.
> 
> Dakle, pitanje je u suštini da li da se napiše znatno brža implementacija koja će više ograničiti moguće vrednosti za k, ili da se napiše sporija, ali pritom da imamo više dozvoljenih vrednosti?
> 
> Srdačan pozdrav,
> Marko Miladinović
> 
>


More information about the QGHG-it-dev-list mailing list