» »

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 :)

Meizu ::

A to mora bit programsko narejeno al formula na list papirja?

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.

Zgodovina sprememb…

billy ::

Madona, da je tako enostavno :)

Kako pa bi zgledalo programsko z bitnimi operacijami?

technolog ::

int st=26;
int i=1;
while(st!=0) {
	if (st&1)
		cout << "Stol " << i << " je zaseden.";
	i++;
	st>>=1;
}

billy ::

Hvala za hitro rešitev.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Kvaliteten računalniški stol za okrog 100€

Oddelek: Loža
267861 (6288) Veron
»

Nabava stolov - zelo poceni do le teh za st uporabnike! ;) (strani: 1 2 3 414 15 16 17 )

Oddelek: Loža
841111237 (44682) zcetrt
»

Kateri stol

Oddelek: Loža
294859 (405) Saladin
»

Kje kupiti stol za pred računalnik

Oddelek: Kaj kupiti
61259 (1125) orka

Več podobnih tem