[ jablan @ 06.04.2009. 10:28 ] @
Pre neki dan dobih sledeću mozgalicu:

Imamo dva cela broja, a i b, za koje je poznato da je b > a > 1 i a + b < 100.

I dva logičara, po imenima P i S.
P-u je dat proizvod ta dva broja, a S-u njihov zbir.
P nazove S-a telefonom i sledi konverzacija:

P: Ne mogu da pogodim brojeve...
S: Znao sam.
P: Hmmm... Sad mogu!
S: E, sad mogu i ja!

Možete li naći ta dva broja?

(Savetuje se korišćenje programiranja)
[ vlaiv @ 06.04.2009. 11:06 ] @
Evo par smernica da pomognem onima koji su zainteresovani da se ovim pozabave.
(ne znam resenje, ali mislim da mi je logika ispravna, no svakako me proverite pre
nego sto ove smrenice uzmete zdravo za gotovo)

uslovi zadatka:

b>a>1

a+b < 100

P : Ne mogu da pogodim brojeve

P moze ovako nesto da izjavi samo u slucaju da proizvod a*b kada se rastavi
na proste cinioce daje 3 ili vishe prostih cinioca

S : Znao sam.

Zbir (a+b) je takav da S mora izvuci isti zakljucak kao i P, odnosno
da bilo koja kombinacija a,b gde je b>a>1 za hipoteticko (a+b) ne daje
slucaj kada su i a i b prosti brojevi

Pretpostavljam da se do reshenja moze doci na sledeci nacin:

za sve brojeve s takve da s>4, s<100, pretpostaviti da je
s=a+b

i probati sve kombinacije a i b takve da je

b>a>1, a+b=s, a prost i b prost

Ako nadjemo i jednu kobinaciju a i b takvu da zadovoljava ovo gore, onda pretpostavljeno s
nije validno i trazimo dalje.

Ako nadjemo samo jedno s onda se iz datog s moze pretpostaviti a i b, a ako nadjemo vishe
od jednog s onda nesto nije u redu sa mojom logikom i treba pogledati dodatne uslove :D

Nadam se da ce ovo nekom znaciti da nadje resenje.
[ mmix @ 06.04.2009. 11:29 ] @
da, i ja sam krenuo tim putem, P1 uslov je izvodljiv i skracuje listu na 2113 validnih kombinacija brojeva (pocetni uslov + !(isPrime(a) && isPrime(b)) ) pocev od (2, 3) do (49, 50)

medjutim, S1 uslov (znao sam) ne znaci mnogo programerski, bar ne provaljujem a ni tvoja interpretacija ne pomaze. proizvod se lako razlozi na proste cinioce, ali zbir ne mozes (99 moze biti i 2+97 i 50+49 i sve izmedju, tj bukvalno sve sto zadovoljava pocetne uslove + p1) tako da smo i dalje na 2113 kombinacija. Mislim da ovde treba upotrebiti mozak a ne kompajler.

Da bi S sigurno znao da P nije mogao da provali znaci da P ima minimalni troclani prime proizvod, sto bi bilo 3 i 4 (S=12, P=7), sa proizvodom 12 ima dve kombinacije (2, 6), (3, 4) a sa sumom 7 postoje zbirne kombinacije (2, 5) i (3, 4) od kojih je samo druga sacinjena od dva broja od koji je bar jedan nonPrime. Da je suma veca od 7 S-u P-ova konstatacija ne bi znacila nista definitivno, a da je manja sabirci bi morali da budu prosti brojevi (ili (2, 4) sto je trivijalno) i onda bi P znao resenje.

Dakle moj tip je (3, 4)


[ vlaiv @ 06.04.2009. 11:37 ] @
ako je u pitanju 3,4

onda je proizvod 12

pa se P dvoumi izmedju

6 i 2 i 3 i 4

S ima situaciju (2,5), (3,4) kao opcije i zakljucuje da bi ako je (2,5) bio slucaj onda P mogao
tacno da pogodi o cemu se radi

prema tome posto S ima 7 ne moze sa sigurnoscu reci da li je (2,5) ili je (3,4) i ne moze sa sigurnoscu
reci da je znao da P ne moze da pogodi.

da bi sa sigurnoscu to mogao da kaze, ne sme da postoji ni jedna kombinacija (a,b) takva da su i a i b prosti
cim takva kombinacija postoji, onda S ne moze pouzdano da zna za dati zbir da P ne moze da pogodi sigudno.
[ mmix @ 06.04.2009. 11:41 ] @
Pa to sam i rekao, zar ne?

PS: Ček, šta si ti u stvari rekao, da jeste ili nije 3, 4? Pošto je kombinacija 2, 5 kombinacija dva prosta broja, onda bi S imao 10 i znao bi da je 2, 5, kad S rekao da ne zna izbacio je 2, 5 iz igre i S-u je preostao samo (3, 4). Šta sam propustio?
[ mmix @ 06.04.2009. 11:48 ] @
Aaaaa, ok. Skontao sam gde sam pogresio. S je znao da P ne zna pa je P dosao do rešenja. Znaci da P raspolaze sa dve kombinacije od kojih svaka ima bar jedan nonPrime...
[ vlaiv @ 06.04.2009. 11:51 ] @
Citat:
mmix

Pa to sam i rekao, zar ne?

PS: Ček, šta si ti u stvari rekao, da jeste ili nije 3, 4? Pošto je kombinacija 2, 5 kombinacija dva prosta broja, onda bi S imao 10 i znao bi da je 2, 5, kad S rekao da ne zna izbacio je 2, 5 iz igre i S-u je preostao samo (3, 4). Šta sam propustio?


S ima 7 i polazi od toga

za njega moze da postoje dve kombinacije a, b i to su

2,5 i

3,4

prema tome

on odatle ne moze da zna koja je ispravna pa ne moze sa sigurnoscu da tvrdi da nije 2,5 i ne moze da sa sigurnoscu
tvrdi da ni P ne moze da nadje resenje, jer ako je kojim slucajem 2,5 za P je resenje trivialno.

napisao sam mali programcic koji vraca za uslove koje sam gore naveo resenja:

evo resenja : 6
evo resenja : 11
evo resenja : 17
evo resenja : 23
evo resenja : 27
evo resenja : 29
evo resenja : 35
evo resenja : 37
evo resenja : 41
evo resenja : 47
evo resenja : 51
evo resenja : 53
evo resenja : 57
evo resenja : 59
evo resenja : 65
evo resenja : 67
evo resenja : 71
evo resenja : 77
evo resenja : 79
evo resenja : 83
evo resenja : 87
evo resenja : 89
evo resenja : 93
evo resenja : 95
evo resenja : 97

kod glasi:

Code:

//---------------------------------------------------------------------------
bool IsProst(int k)
{

    bool result = true;

    if(k>3){

        for(int i=2;i<k;i++){
            if((k%i)==0){
                result = false;
                break;
            }
        }
    }

    return result;
}
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
    std::cout << "Zadatak logicari ...\n";

    int count = 0;

    for(int n=5;n<100;n++){
        bool vazi = true;

        for(int a=2;a<n;a++){
            int b = n-a;

            if(b<=a)
                break;


            if(IsProst(a))
                if(IsProst(b)){
                    vazi = false;
                    break;
            }
        }

        if(vazi){
            count += 1;
            std::cout << " evo resenja : " << n << "\n";
        }
    }


    return 0;
}
//---------------------------------------------------------------------------


znaci svi gornji brojevi zadovoljavaju moju postavku
treba dalje traziti uslove


Znaci resenja koja sam ja dobio su zapravo moguce vrednosti
a+b koje je dobio S, ostali zbirovi nisu moguci prema postavljenim uslovima
[ Bojan Basic @ 06.04.2009. 11:52 ] @
Ovo je već raspravljeno do u sitna crevca.

http://www.elitesecurity.org/t...ospodin-Proizvod-Gospodin-Suma
[ vlaiv @ 06.04.2009. 12:09 ] @
U svakom slucaju treba procitati diskusiju sa matematicke strane, to ce doprineti reshavanju problema :D

Ono sto sam ja primetio na dalje je da je samo prva suma parna
a da su sve ostale neparne.

ako je suma neparna, onda znaci da je

a neparno, b parno
ili a parno b neparno

ako je razlicita parnost a i b onda je i proizvod neparan, a posto postoji samo jedna
mogucnost kada su i a parno i b parno, ako P ima paran proizvod, on moze da zakljuci
znajuci i ono sto zna S da je u pitanju kombinacija 2,4

Nazalost ova kombinacija otpada, zato sto je jedina, pa bi P znao u startu (kontradikcija).

Tjorsokak, al smo bar videli da nije ni 2,4

[ mmix @ 06.04.2009. 12:16 ] @
E Bojane, sad si nam pokvario zabavu

taman sam se malo odmakao od repotinga da ukucam neku liniju C#-a i ti naidjes i kazes gde je resenje Nista, nazad na crystal reports.
[ vlaiv @ 06.04.2009. 12:26 ] @
Hahahaha, mene ceka konfiguracija cisco-a, pa mi se josh ne da da se odvojim od mozganja :D

Mislim da je kljuc u neparnosti.

ako je

a+b neparno

onda je a parno i b neparno
ili a neparno a b parno

znaci da 2^n kao prosti faktor moze da se pishe uz a ili uz b ali ne moze
da se deli (jedno 2 uz a a recimo preostala uz b, naravno zavisi koliko dvojki ima)

:D

Ipak cu na pauzu za rucak, eto, nadam se da smo ovom diskusijom i primerom podstakli nekoga
da dovrsi zadatak.
[ jablan @ 06.04.2009. 13:52 ] @
Bojane, mogao si da se strpiš par dana pre kvarenja zabave (BTW, izvinjavam se što sam okačio već obrađivanu temu, zaista nisam imao pojma).
[ Nedeljko @ 07.04.2009. 13:57 ] @
Citat:
vlaiv: uslovi zadatka:

b>a>1

a+b < 100

P : Ne mogu da pogodim brojeve

P moze ovako nesto da izjavi samo u slucaju da proizvod a*b kada se rastavi
na proste cinioce daje 3 ili vishe prostih cinioca

S : Znao sam.

Zbir (a+b) je takav da S mora izvuci isti zakljucak kao i P, odnosno
da bilo koja kombinacija a,b gde je b>a>1 za hipoteticko (a+b) ne daje
slucaj kada su i a i b prosti brojevi


P svakako zna brojeve a i b ako su prosti, ali ih zna još u nekim slučajevima. Zamisli da je na primer a=49 i b=50. Tada se proizvod faktoriše na proizvod više od dva ptostačinioca (225172), ali P može da zaključi o kojim se brojevima radi znajući da je a+b<100. Slično važi i za S-ovo zaključivanje. Da bi on rekao "znao sam", zbir ne sme da bude rastavljiv na par brojeva čiji se proizvod faktoriče na samo jedan način u dozvoljenom opsegu. Dakle, potrebno je tu malo finije zaključivanje.

Matematička podloga za ovakve zadatke su takozvane modalne logike.

http://en.wikipedia.org/wiki/Modal_logic

Programi za automatsko rezonovanje u njima mogu automatski da rešavaju zadatke ovog tipa koji im se zadaju u obliku koji im je prihvatljiv.