Forum » Loža » Matematično logični problem, rešitev?
Matematično logični problem, rešitev?

billy ::
Upam, da sodi tole sem, če ne, prosim da premaknete.
5 ljudi sedi za mizo, poljubno se vstajajo. Vsak stol ima svojo vrednost:
stol 1: 1
stol 2: 2
stol 3: 4
stol 4: 8
stol 5: 16
Znan je le seštevek vseh vrednosti ljudi, ki sedijo. Recimo 11, kar pomeni da sedijo ljudje na stolih 1, 2 in 4 ali pa: 26 -> 2, 8 in 16. Seštevek vrednosti velja le za točno en rezultat, ne more se zgoditi, da bi recimo sedeli na stolih 1 in 2 ali pa 3 in 4.
S uporabo katere formule lahko to zadevo avtomatiziramo? Torej da je rezultat množica zasedenih stolov ? Iščem torej formulo, ne da se za vse možnosti naredijo tabele, to bi bil predolg postopek v primeru večje mize :)
5 ljudi sedi za mizo, poljubno se vstajajo. Vsak stol ima svojo vrednost:
stol 1: 1
stol 2: 2
stol 3: 4
stol 4: 8
stol 5: 16
Znan je le seštevek vseh vrednosti ljudi, ki sedijo. Recimo 11, kar pomeni da sedijo ljudje na stolih 1, 2 in 4 ali pa: 26 -> 2, 8 in 16. Seštevek vrednosti velja le za točno en rezultat, ne more se zgoditi, da bi recimo sedeli na stolih 1 in 2 ali pa 3 in 4.
S uporabo katere formule lahko to zadevo avtomatiziramo? Torej da je rezultat množica zasedenih stolov ? Iščem torej formulo, ne da se za vse možnosti naredijo tabele, to bi bil predolg postopek v primeru večje mize :)

technolog ::
Greš od stola največje vrednosti navzdol.
recimo 26:
26-16 = 10, večje od 0, stol v16 zaseden
10-8 = 2, večje od 0, stol v8 zaseden
2-4=-2, manjše od 0, stol v4 NI zaseden
2-2=0, enako 0, stol 2 zaseden, končamo
(torej če naletiš na razliko 0, lahko kar takoj kočaš)
Programsko se da zadevo naredit zelo hitro z bitnimi operacijami.
recimo 26:
26-16 = 10, večje od 0, stol v16 zaseden
10-8 = 2, večje od 0, stol v8 zaseden
2-4=-2, manjše od 0, stol v4 NI zaseden
2-2=0, enako 0, stol 2 zaseden, končamo
(torej če naletiš na razliko 0, lahko kar takoj kočaš)
Programsko se da zadevo naredit zelo hitro z bitnimi operacijami.
Zgodovina sprememb…
- spremenil: technolog ()

technolog ::
int st=26;
int i=1;
while(st!=0) {
if (st&1)
cout << "Stol " << i << " je zaseden.";
i++;
st>>=1;
}
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Kvaliteten računalniški stol za okrog 100€Oddelek: Loža | 8114 (6541) | Veron |
» | Nabava stolov - zelo poceni do le teh za st uporabnike! ;) (strani: 1 2 3 4 … 14 15 16 17 )Oddelek: Loža | 113774 (47219) | zcetrt |
» | Kateri stolOddelek: Loža | 4928 (474) | Saladin |
» | Kje kupiti stol za pred računalnikOddelek: Kaj kupiti | 1319 (1185) | orka |