Stranica: 1/2.

[C++] bingo problem

Postano: 18 ožu 2012, 16:06
Postao/la bajro17
zanima me mozel pomoc posto pravim (zapravo pokusavam napraviti bingo u c++) pa me sada zanima znaci kad pohranim 38 brojeva u niz (a bingo je 6/38 a ukupno je brojeva 49) kako da provjerim ponavljaju li se isti brojevi u nizu nikako nemogu da to sredim pa molim za pomoc

Re: bingo problem

Postano: 18 ožu 2012, 16:23
Postao/la pootzko
2 ideje otprilike:

1. sortiraj niz i onda provjeri svaka dva susjedna jesu različita

Kod: Označi sve

//ovdje iskoristi neki sort, svejedno koji, nađi neki na netu pa implementiraj, recimo bubble
sort(niz); 

for (i=0; i<n-1; i++) {
    if (V[i] == V[i+1])
        // broj vec postoji u nizu, radi sto vec zelis
}
2. koristi dvostruku petlju i provjeravaj redom da li taj broj postoji negdje kasnije u nizu

Kod: Označi sve

for (i=0; i<n-1; i++) {
    for (j=i; j<n; j++) {
        if (V[i] == V[j])
            // broj vec postoji u nizu, radi sto vec zelis
    }
}

Re: bingo problem

Postano: 18 ožu 2012, 16:32
Postao/la jasox
bajro17 evo jedna moj stari kod, iako nije efficient mozda ti pomogne

Kod: Označi sve

void randomSpil(karte randSpil[])
{
	int brojac = 0,provjera;
	for(int i=0; i<52; i++)  //random spil
	{
		do{
			brojac = 0;
			provjera = rand()%52;
			for(int j=0; j<52; j++)
				if(provjera == randSpil[j].brKarte)
					brojac ++;
		}while(brojac != 0);
		randSpil[i] = karta[provjera];
	}
}

Re: [C++] bingo problem

Postano: 18 ožu 2012, 17:35
Postao/la nicky

Kod: Označi sve

int i;
int count = 0;
char niz[49]; 

for(i = 0;i < 49;i++)
   niz[i] = 0;

for(;;)
    {
    if(count == 38) 
         break;
    rand_broj = rand()%49 + 1; 
    if(!niz[rand_broj - 1])
          {
          niz[rand_broj - 1] = rand_broj;
          count++;
          }
    }
//tu još ide izbacivanje nula iz niz[49] ako treba, npr prepisivanje u novo polje

Re: [C++] bingo problem

Postano: 18 ožu 2012, 17:51
Postao/la jasox
nicky je napisao/la:

Kod: Označi sve

int i;
int count = 0;
char niz[49]; 

for(i = 0;i < 49;i++)
   niz[i] = 0;

for(;;)
    {
    if(count == 38) 
         break;
    rand_broj = rand()%49 + 1; 
    if(!niz[rand_broj - 1])
          {
          niz[rand_broj - 1] = rand_broj;
          count++;
          }
    }
//tu još ide izbacivanje nula iz niz[49] ako treba, npr prepisivanje u novo polje
Ali ponavljat ce ti se brojevi u nizu.

Re: [C++] bingo problem

Postano: 18 ožu 2012, 17:57
Postao/la nicky
Kako?

Osim ako nešto nisam previdjela, jedan index u nizu može biti zapisan samo jednom a isti broj se ne može naći na dva indexa u nizu.

Re: [C++] bingo problem

Postano: 18 ožu 2012, 18:48
Postao/la jasox
nicky je napisao/la:Kako?

Osim ako nešto nisam previdjela, jedan index u nizu može biti zapisan samo jednom a isti broj se ne može naći na dva indexa u nizu.
Skonto, izvini ;)

Re: [C++] bingo problem

Postano: 18 ožu 2012, 20:48
Postao/la bajro17
hvala pomoglo je samo zelim da napravim program koji ce da mi provjeri vjerovatnost da dobijem bez namjestanja

Re: [C++] bingo problem

Postano: 19 ožu 2012, 06:07
Postao/la jjj
bajro17 je napisao/la:hvala pomoglo je samo zelim da napravim program koji ce da mi provjeri vjerovatnost da dobijem bez namjestanja
Zašto ti treba program za to? szbunjen

Re: [C++] bingo problem

Postano: 19 ožu 2012, 07:59
Postao/la nicky
Vjerojatnost za dobitak na lotu 6/45 je
1/ukupni_broj_kombinacija
Broj kombinacija je 45 povrh 6, tj 45!/(6!*39!)
A 45! = 45*44*43*42*41*40*......3*2*1
Ukupno je vise od 8.500.000 kombinacija.

Neznam pravila za bingo, al se vjerojatnost racuna na isti nacin.