[ bin.sys @ 11.09.2014. 11:32 ] @
Sistem koristi označenu celobronju vrednost (32 bita) kao brojač postova. Svaki put kada korisnik doda novi post brojač se uvećava za jedan. Koliko postova treba da objavi korisnik da bi brojač imao vrednost -1?

P.S.
Ja znam odgovor na pitanje. Napisao sam i kod koji dokazuje da je to 4294967295, ali ne znam kako da objasnim ovo nekome ko ne razume osnove.

Code:

#include<iostream>
using namespace std;

int main(void)
{
    signed int prekoracenje = 0;
    for(unsigned long long brojac = 0; brojac < 4294967295; brojac++)
        prekoracenje++;
    cout<<prekoracenje;    
    return 0;
}
[ jablan @ 11.09.2014. 12:02 ] @
Isti princip kao kilometar-sat na autu.
[ reiser @ 11.09.2014. 13:57 ] @
Kako ovo spada u "Art of programming" sekciju? Koja je poenta posta uopste?
[ bin.sys @ 11.09.2014. 14:10 ] @
Citat:
jablan:
Isti princip kao kilometar-sat na autu.


Sviđa mi se poređenje. Na osnovu ovoga što si napisao napravio sam na brzinu skicu kilometar-sata, s tim da sam ga proširio negativnim brojevima koji mere kilometražu kada se vozi unazad.



Nadam se da je sa slike jasno zašto je potrebno preći 4294967295km da bi se došlo do -1.

Citat:
Kako ovo spada u "Art of programming" sekciju? Koja je poenta posta uopste?


Pitanje nije vezano ni za jedan jezik posebno. Jednostavno nisam našao podforum koji bi više odgovarao temi. Iznenadio bi se kad bi znao da čak i ljudi koji se profesionalno bave programiranjem ne mogu da shvate ovo. Evo pitanja za tebe, koliko je abs(-2147483648)?
[ bojan_bozovic @ 11.09.2014. 14:15 ] @
@bin.sys

Počni sa objašnjavanjem od osnova, dakle brojni sistem sa bazom 2, signedness, 32 bitni unsigned int i sve će biti OK.
[ Shadowed @ 11.09.2014. 14:35 ] @
Ma, troluje jer sam u nekoj drugoj temi neparan broj greskom protumacio (nisam racunao) kao 232+1 umesto -1 i sad se uhvatio toga.
Mo'š mislit'..
[ bin.sys @ 11.09.2014. 14:48 ] @
Ko je tebe uopšte pomenuo u ovoj temi? Tema je za sve koje bi ovo moglo da zanima, uključujući i tebe. Zašto bi ovo bilo trolovanje ako si ti napravio grešku u okviru druge teme? Mislim da grešku treba da ispravljaš tamo gde si je napravio, a ne ovde! Uostalom, ako ti je lakše, onome ko bude čitao tu drugu temu biće jasno da si ti možda napravio previd, a da član foruma koji ti je priskočio u pomoć sigurno ne zna o čemu se radi.
[ Nedeljko @ 11.09.2014. 16:18 ] @
Matematičko objašnjenje je da se sve operacije vrše po modulu , tj. ako uvedemo relaciju definicijom

,

onda važi

jer je ,

jer za takvo da je važi ,

jer za takvo da je i takvo da je važi ,

jer za i takve da je i važi , a iz i sledi da je , odnosno .

Radeći sa kongruencijama mi kao da zaboravljamo sa kojim tačno celim brojevima radimo, već za svaki imamo informaciju samo o tome čemu je kongruentan i na kraju dobijamo rezultat kongruentan onome što bismo dobili sa tačnim informacijama o brojevima ako smo koristili samo operacije sabiranja oduzimanja i množenja.

Ovde je i sa 32 bita se može predstaviti bilo koji sistem od uzastopnih celih brojeva. Ponekad je podesno da to budu brojevi iz intervala , a ponekad da to budu celi brojevi iz intervala .

Naravno, ne treba klinca zgromiti sa ovim, ali bi trebalo da se kongruencije rade u školi.