Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

rand i kockice provera slicno kao u pokeru

[es] :: C/C++ programiranje :: rand i kockice provera slicno kao u pokeru

Strane: 1 2

[ Pregleda: 3752 | Odgovora: 21 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Sasa_2

Član broj: 161236
Poruke: 16
*.mts.telekom.rs.



Profil

icon rand i kockice provera slicno kao u pokeru10.01.2011. u 20:27 - pre 161 meseci
E ovako znaci bacam 2 kockice (simuliram rand brojeve) i to smestam 2 niza e sad treba da proverim ko ima bolju kombinaciju npr. ako imam 1,1,2,3,4,5 i 1,2,2,3,4,5 pobedjuje 2. igrac jer ima par dvojki nasuprot paru jedinica.
MOlim za pomoc.
Hvala
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: rand i kockice provera slicno kao u pokeru10.01.2011. u 21:17 - pre 161 meseci
Jesu li to pravila jamba ili neka druga?
 
Odgovor na temu

Sasa_2

Član broj: 161236
Poruke: 16
*.mts.telekom.rs.



Profil

icon Re: rand i kockice provera slicno kao u pokeru10.01.2011. u 21:59 - pre 161 meseci
nisu, nego svaka cifra ima tezinu*broj ponavljanja
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: rand i kockice provera slicno kao u pokeru10.01.2011. u 22:55 - pre 161 meseci
Pa ako imaš jednačinu koja računa vrednost svake kombinacije, onda je samo upotrebi. Mada, sumnjiva mi je ta logika, težina * broj ponavljanja. Ako ja to dobro shvatam to praktično znači da možeš sve brojeve prosto da sabereš, i to je onda vrednost te kombinacije. Objasni malo detaljnije. Koje su vrednosti ovih kombinacija što si ih naveo, 1,1,2,3,4,5 i 1,2,2,3,4,5? Koja je vrednost kombinacije 1,1,1,1,2,2?
 
Odgovor na temu

Sasa_2

Član broj: 161236
Poruke: 16
*.mts.telekom.rs.



Profil

icon Re: rand i kockice provera slicno kao u pokeru11.01.2011. u 14:17 - pre 161 meseci
Izvinjavam se nisam lepo definisao sta me interesuje kada dobijem kombinaciju.
Znaci interesuju me samo kockice kada imam 1 par ili 3 iste kockice za prvog igraca i toliko za drugog igraca. znaci ako imam 1,2,2,5,6 i 1,3,3,5,6 onda je pobedio ovaj koji ima par trojki, analogno za tri iste. a kada imaju iste kombinacije onda pobedjuje onak ciji je zbir veci( ako imam 1,2,2,3,4 i 1,2,2,3,5 pobedjuje drugi jer mu je zbir kockica veci)
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: rand i kockice provera slicno kao u pokeru11.01.2011. u 15:10 - pre 161 meseci
Znači učestvuju 5 kockica, a ne 6, i računaju se trojke, parovi, a onda "jača karta". Da li se računa i ful? Da li je ful jači od trojke? Da li je ful s kečevima jači on tri petice? Da li je trojka nečega jača od dva para nečega?
 
Odgovor na temu

Sasa_2

Član broj: 161236
Poruke: 16
*.mts.telekom.rs.



Profil

icon Re: rand i kockice provera slicno kao u pokeru11.01.2011. u 17:29 - pre 161 meseci
Znači učestvuju 5 kockica, a ne 6, i računaju se trojke, parovi, a onda "jača karta"


Da li se računa i ful?
Ne, zanimaju me samo dogadjaji kada su pala dva ista ili tri ista broja.(1,1,2,3,4 - 6,6,1,2,3) ili (1,1,1,5,6-6,6,6,1,2)



 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: rand i kockice provera slicno kao u pokeru11.01.2011. u 20:23 - pre 161 meseci
Znači 3,3,3,1,2 je jače od 2,2,2,4,4, a ovo drugo je jače od 4,4,1,2,3, a ovo treće je jače od 2,2,1,1,3?
 
Odgovor na temu

Sasa_2

Član broj: 161236
Poruke: 16
*.mts.telekom.rs.



Profil

icon Re: rand i kockice provera slicno kao u pokeru11.01.2011. u 21:42 - pre 161 meseci
da
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: rand i kockice provera slicno kao u pokeru11.01.2011. u 23:22 - pre 161 meseci
A šta je jače, 3,2,2,1,1 ili 4,3,2,2,1? Isti tako, šta je jače, 3,3,3,1,1 ili 3,3,3,2,1? Takođe, šta je jače, 3,3,3,3,4, ili 3,3,3,5,2? Takođe, šta je jače, 3,3,3,2,1 ili 3,3,3,3,1? Obrati pažnju na poslednji slučaj, pitanje je kako se tretira četvrta trojka.

Ako je druga kombinacija jača u sva četiri slučaja onda sam skapirao. Za svaku kombinaciju treba da izbrojiš pojavljivanje svakog broja, i to da smestiš u poseban niz. Recimo za kombinaciju 3,3,3,2,1 napravio bi niz int count[7] = {0, 1, 1, 3, 0, 0, 0}; Dužina niza je sedam jer imaš brojeve od jedan do šest, ali prvi element niza prosto ignorišeš (da se ne bi smarao sa oduzimanjem indeksa za jedan). Kad formiraš niz count za obe kombinacije koje porediš (count1 i count2) onda kreneš od kraja niza, for (int x=6; x>0; x--), i porediš pojavljivanja pomoću sledeća tri pravila:

1) Ako je count1[x] > 2 ili count2[x] > 2, a onaj drugi nije veći od 2 onda imaš pobednika, i prekini dalje sa pretragom. Ako su oba veća od 2, ali jedan je veći od drugog, onda si pronašao najjaču pojedinačnu brojku (to ti je onaj četvrti primer s početka). Ako su oba veća od 2 i jednaka onda nastavljaš s petljom, ali od sad gledaš samo treću tačku (s trojkama i parovima si završio). Ako je od ranije u trećoj tački već dobijena najjača pojedinačna brojka onda već imaš pobednika, i prekini dalje s radom.

2) Ako je count1[x] == 2 ili count2[x] == 2 a onaj drugi je manji od 2 onda imaš pobednika, i prekini dalje sa pretragom. Ako su oba jednaka 2 onda gledaš dalje, ali samo prvu i treću tačku (s parovima si završio).

3) Ako do sada nije određena najjača pojedinačna brojka, i jedan od count1[x] i count2[x] je veći od drugog, onda zapamti koji je to veći, i u sledećim iteracijama ignoriši ovaj korak

Ako si završio petlju bez pobednika, ali si pronašao najjaču pojedinačnu brojku, onda imaš pobednika. Ako nema najjače pojedinačne brojke onda su dva niza istovetna.
 
Odgovor na temu

Sasa_2

Član broj: 161236
Poruke: 16
*.mts.telekom.rs.



Profil

icon Re: rand i kockice provera slicno kao u pokeru12.01.2011. u 18:43 - pre 161 meseci
VIDI SE DA RAZMISLAJMO ISTO :)


evo ja uradio u JAVI evo kod nadam se da mozes da se snadjes ali mislim da sam negde pogresio jer nesto ne stima :(

Code:
public void actionPerformed(ActionEvent arg0) { /*klik na dugme*/
        
        if(arg0.getSource()==Bacanje)
        {
            for(int t=0; t<10;t++)
            {
                for(int i=0; i<7;i++) /* reset niza gde cuvam broj pojavljivanja*/
                {
                a[i]=0;
                b[i]=0;
                }
            for(int i=0; i<5; i++)
            {
            kockiceA[i].setText(String.valueOf((int)(6*Math.random() + 1)));
            }
            for(int i=0; i<5; i++)
            {
            kockiceB[i].setText(String.valueOf((int)(6*Math.random() + 1)));
            }
            for(int i=0; i<5; i++)
            {
            kockiceC[i].setText(String.valueOf((int)(6*Math.random() + 1)));
            }
    
            for(int i=0; i<5; i++)
            {
                if(1==Integer.parseInt(kockiceA[i].getText()))
                    a[1]++;
                if(2==Integer.parseInt(kockiceA[i].getText()))
                    a[2]++;
                if(3==Integer.parseInt(kockiceA[i].getText()))
                    a[3]++;
                if(4==Integer.parseInt(kockiceA[i].getText()))
                    a[4]++;
                if(5==Integer.parseInt(kockiceA[i].getText()))
                    a[5]++;
                if(6==Integer.parseInt(kockiceA[i].getText()))
                    a[6]++;
                if(1==Integer.parseInt(kockiceB[i].getText()))
                    b[1]++;
                if(2==Integer.parseInt(kockiceB[i].getText()))
                    b[2]++;
                if(3==Integer.parseInt(kockiceB[i].getText()))
                    b[3]++;
                if(4==Integer.parseInt(kockiceB[i].getText()))
                    b[4]++;
                if(5==Integer.parseInt(kockiceB[i].getText()))
                    b[5]++;
                if(6==Integer.parseInt(kockiceB[i].getText()))
                    b[6]++;
            }---------------------------------------------------------------------------------------------------------------------------------
                             int fleg1=0, fleg2=0;;
                for(brojac1=6; brojac1>0; brojac1--)
                {
                    if(a[brojac1]==2)
                    {
                        fleg1=1;
                        break;
                    }
                }
                for(brojac2=6; brojac2>0; brojac2--)
                {
                    if(b[brojac2]==2)
                    {
                        fleg2=1;
                        break;
                    }
                }
            if(fleg1==0 || fleg2==0 || fleg1+fleg2==0)
                nereseno++;
            if(fleg2==1 && fleg1==1)
                {
                    
                    if(brojac1>brojac2)
                        suma2A=suma2A+1;
                     if(brojac1<brojac2)
                        suma2B=suma2B+1;
                     if(brojac1==brojac2)                                                                                          /*ovde je greska*/
                    {                                                             
                        int pom1=0, pom2=0;
                        for(int i=0; i<5; i++)
                        {
                        pom1=pom1+ Integer.parseInt(kockiceA[i].getText());
                        pom2=pom2+ Integer.parseInt(kockiceB[i].getText());
                        }
                        if(pom1==pom2)
                            nereseno++;
                        if(pom1>pom2)
                            sumaA=suma2A+1;
                        
                        if(pom1<pom2)
                            sumaB=suma2B+1;
                    }
                        
                        
                }
        ------------------------------------------------------------------------------------------------------------------------------------------------------------------
            for(int i=1; i<6;i++)
                System.out.println(a[i]);
                System.out.println();                             /*ispis u konzoli*/
                for(int i=1; i<6;i++)
                    System.out.println(b[i]);
                System.out.println();
                System.out.println("A= "+ sumaA);
                System.out.println("B= "+ sumaB);
                System.out.println("nereseno= "+ nereseno);
                for(int i=0; i<7; i++)
                {
                    a[i]=0;
                    b[i]=0;
                }
        
                
                }
        
            System.out.println("pobedio A= "+suma2A+" pobedio B= "+suma2B+" nereseno= "+nereseno); /*krajnji rezultat*/
            
    
            
            
    }    
        
        }
}


[Ovu poruku je menjao Mihajlo Cvetanović dana 12.01.2011. u 20:53 GMT+1]
 
Odgovor na temu

Sasa_2

Član broj: 161236
Poruke: 16
*.mts.telekom.rs.



Profil

icon Re: rand i kockice provera slicno kao u pokeru12.01.2011. u 18:51 - pre 161 meseci
ovaj deo koda gde sam stavio --------------- u tom delu izracunavam ko je pobednik ali mislim da imam greske
 
Odgovor na temu

ventura

Član broj: 32
Poruke: 7781
*.dynamic.sbb.rs.



+6455 Profil

icon Re: rand i kockice provera slicno kao u pokeru12.01.2011. u 19:22 - pre 161 meseci
Code:

for(int i=0; i<5; i++)
    {
        (String.valueOf((int)(6*Math.random() + 1)));
    }

for(int i=0; i<5; i++)
    {
        kockiceB.setText(String.valueOf((int)(6*Math.random() + 1)));
    }

for(int i=0; i<5; i++)
    {
        kockiceC.setText(String.valueOf((int)(6*Math.random() + 1)));
    }


Ovde imaš ozbiljan problem, naime, koristiš Math.random u petlji sa default seedom (milisekunde/unix time) i dešavaće ti se da dobijaš isti seed odnosno isti broj na outputu a za koji ti misliš da je random... Izlaz će ti biti npr ovakav:
Kockica A: 1 1 1 2 2
Kockica B: 2 2 6 6 6
Kockica C: 5 5 5 5 1

('random' brojevi se ponavljaju sve dok je seed isti)

Rešenje tog problema je da smisliš nešto pametnije za seed, ili jednostavnija varijanta, da staviš neki minimalni sleep u petlje, čisto da bi bio siguran da ćeš dobiti različit seed prilikom svake iteracije.
 
Odgovor na temu

Sasa_2

Član broj: 161236
Poruke: 16
*.mts.telekom.rs.



Profil

icon Re: rand i kockice provera slicno kao u pokeru12.01.2011. u 19:35 - pre 161 meseci
nije to problem, dobijam dobre brojeve, nego je problem u tome sto nekako ne izracunava dobro ko je pobedio
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: rand i kockice provera slicno kao u pokeru12.01.2011. u 20:11 - pre 161 meseci
Prva stvar, ako već koristiš Javu znači da programski jezik C nema veze s temom. Mislim da je bolje da se tema prebaci u Art of Programming.

Drugo, umesto ovog koda

Code:
                if(1==Integer.parseInt(kockiceA[i].getText()))
                    a[1]++;
                if(2==Integer.parseInt(kockiceA[i].getText()))
                    a[2]++;
                if(3==Integer.parseInt(kockiceA[i].getText()))
                    a[3]++;
                if(4==Integer.parseInt(kockiceA[i].getText()))
                    a[4]++;
                if(5==Integer.parseInt(kockiceA[i].getText()))
                    a[5]++;
                if(6==Integer.parseInt(kockiceA[i].getText()))
                    a[6]++;

može samo jedna linija:
Code:
a[Integer.parseInt(kockiceA[i].getText())]++;

Treće, ne razumem ovu logiku sa sumaA, sumaB, i nereseno. Cilj je valjda proglasiti pobednika, a ne prikazati korisniku nekakva tri broja.

Četvrto, iako smo počeli isto, i izbrojali sve brojke, ono šta posle radimo sa tim brojkama nam se razlikuje. Moj algoritam ne traži pobednika posredstvom nekih suma i brojača, nego se traži direktno. Možeš li da objasniš logiku svog algoritma od tačke kad se završi prebrojavanje svih brojki?
 
Odgovor na temu

ventura

Član broj: 32
Poruke: 7781
*.dynamic.sbb.rs.



+6455 Profil

icon Re: rand i kockice provera slicno kao u pokeru12.01.2011. u 21:15 - pre 161 meseci
Citat:
Sasa_2: nije to problem, dobijam dobre brojeve, nego je problem u tome sto nekako ne izracunava dobro ko je pobedio

Probaj svoj kod na malo bržem računaru pa ćeš videti o čemu pričam.

Odnosno, da bi testirao random uradi recimo 60.000 izvlačenja i napravi analizu izvučenih brojeva. Ako imaš brojeve od 1 do 6 (standardna kockica) svaki bi trebao da se javi otprilike po 10.000 puta, gore dole nekoliko procenata... Međutim ako ti random seed ne valja, to ćeš videti u podacima...

[Ovu poruku je menjao ventura dana 12.01.2011. u 22:30 GMT+1]
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: rand i kockice provera slicno kao u pokeru12.01.2011. u 21:48 - pre 161 meseci
Venturo, to o čemu ti pričaš se ispoljava kad neko poziva srand(time()) svaki put pre rand(). Ako se srand pozove samo jednom na početku rada onda nema tog problema. Svaki sledeći slučajan broj zavisi isključivo od nekog internog stanja i ni od čega više, pa ni od intervala između pozivanja rand funkcije.
 
Odgovor na temu

Sasa_2

Član broj: 161236
Poruke: 16
*.mts.telekom.rs.



Profil

icon Re: rand i kockice provera slicno kao u pokeru12.01.2011. u 22:20 - pre 161 meseci
posto moram da zavrsim do 20tog januara pa je kod grub


Igrač A ima 5 belih, a igrač B ima 5 crvenih kockica. Istovremeno se bacaju
sve kockice. Pobeđuje onaj koji ima bolju «kombinaciju», npr. ako A ima
1,2,2,5,6, a B ima 1,4,4,5,6, onda pobeđuje B. Ako su kombinacije iste pobeđuje
onaj koji ima veći zbir, a inače je ta partija nerešena. Modelirati 1000
ponavljanja ige i kao rezultat dati i statističke podatke – koliko je pobeda
ostvareno kad su oba igrača imala samo po par istih brojeva, koliko sa po tri
ista broja, ... koliko nerešenih partija.
ceo tekst zadatka


nadam se da je sad jasnije s tim da moram da imam i treceg igraca samo sto jos nisam dobio njegove kockice jer izgleda bice specificne najverovatnije (3,3,5,5,6)
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: rand i kockice provera slicno kao u pokeru12.01.2011. u 22:44 - pre 161 meseci
Da li je ovo kompletan tekst zadatka? Ovde se ne precizira šta je tačno bolja "kombinacija". Zašto onda ful ne bi bio jači od trilinga, ili kare od fula. Istovremeno, šta tačno znači kad su kombinacije iste? Takođe, ti si na početku spominjao jaču pojedinačnu brojku, ali sad ispada da na kraju odlučuje zbir umesto pojedinačne brojke. Ispada da sam džabe pisao rešenje, jer nije lepo postavljen zadatak. Gunđ.
 
Odgovor na temu

Sasa_2

Član broj: 161236
Poruke: 16
*.mts.telekom.rs.



Profil

icon Re: rand i kockice provera slicno kao u pokeru12.01.2011. u 22:58 - pre 161 meseci
Pa dobro je tvoje resenje, nisi dzabe pisao, ja imam 1000 partija, sto je isto kao da imam 1 partiju sa ove sume mi odredjuju samo koliko je ko pobedio, razumes?
gleda se ovako ako imam par istih kod igraca A i par istih kod igraca B onda samo gledam koji je par veci i njemu pririsem pobedu a ako su isti parovi onda sumiram sve brojeve pa ko ima vecu sumu je pobednik.
 
Odgovor na temu

[es] :: C/C++ programiranje :: rand i kockice provera slicno kao u pokeru

Strane: 1 2

[ Pregleda: 3752 | Odgovora: 21 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.