[ Ajvan @ 25.04.2005. 14:32 ] @
Imam ponudu da odradim program za online kazino,...ono...poker, BlackJack, rulet,.....Malo sam promuvao po internetu i video kako to otprilike funkcionise,...skines program instaliras ga kod tebe na lokal i onda komuniciras sa njihovim serverom.
Interesuje me da li je neko nekada radio nesto slicno,...na kom principu to funkcionise kada je u pitanju recimo deljenje karata...neka RANDOMIZE funkcija...ili sta. Ima li neko neku ideju...
Posao je dosta ozbiljan, i ja bas ne bih da zavrsim u nekoj rupi ili sa betonskim cipelama na dnu reke....zato sto je program podelio pogresne karte... Imao sam svojevremeno poker aparate (moj cale ih je drzao) i znam da se moze podesavati kako ce aparat deliti karte...
Neki savet...
[ ventura @ 25.04.2005. 15:30 ] @
Ako ti sam radis takav program, onda ta firma nije ozbiljna sto ti je ponudila posao, niti si ti ozbiljan ako si se toga prihvatio... To se radi godinama, i rade timovi od 10-20-30 programera...

Konkretno sto se tice randomize funkcije to ti je nauka sama po sebi... Jedan od popularnijih nacina (mada nije najsavrsenij) je da se iz atmosfere putem radio antene primaju zvukovi na odredjenoj frekvenciji, ti zvukovi su svi sumovi koji nastaju odbijanjem radio talasa o atmosferu, plus sumovi koje stvara sama planeta, zracenja itd itd.. Onda uzmes taj signal, amplitudu iseces tako da ti samo ostanu 0 i 1 i onda od tog streama vadis random brojeve...

Onda imas random generatore koji rade po principu CCD kamere, ili koji rade na osnovu radioaktivnih cestica...

U svakom slucaju jedan od dobrih izvora za to je http://www.random.org/

Neki od random generatora:

LavaRND, Silicon Graphics generator, koristi CCD kameru i lava lampu:
http://www.lavarnd.org/

HotBits, Hvatanje raspada radiokatvinih cestica:
http://www.fourmilab.ch/hotbits/

Java EntropyPool, skuplja sa vise izvora online pa generise:
http://random.hd.org/

Inace svaki random number generator mora da prodje 'entropy' test, odnosno da se proveri da li su brojevi stvarno random... Tvoj random generator ces najlakse proveriti tako sto ces generisati 1mb podataka, i ukoliko je sekvenca stvarno random, trebao bi da nema uopste razlike u velicini u kompresovanom i originalnom fajllu, odnosno da ti compression rate bude 0%. Pa onda imas chi-square distribution test, pa imas arithmetic, pa monte carlo pi value.. itd itd...

Uglavnom, sve je mnogo komplikovanije nego sto mislis... A to je samo deo za random... Gde je ostalih 99% softvera?
[ ventura @ 25.04.2005. 15:57 ] @
Evo ti recimo jedan primer,

Ovako izgleda entrophy test uradjen programom 'ent' (pseudorandom number sequence test), a radjen je na random brojevima dobijenih sa random.org:

Code:
Entropy = 7.980627 bits per character.

    Optimum compression would reduce the size
    of this 51768 character file by 0 percent.
 
    Chi square distribution for 51768 samples is 1542.26, and randomly
    would exceed this value 0.01 percent of the times.
  
    Arithmetic mean value of data bytes is 125.93 (127.5 = random).
    Monte Carlo value for Pi is 3.169834647 (error 0.90 percent).
    Serial correlation coefficient is 0.004249 (totally uncorrelated = 0.0).


Ja sam napisao u PERL-u program koji koristi klasicnu rand() funkciju, ponovio je u petlji kako bi dobio 1mb podaka i onda sam uradio entrophy test, i pogedaj rezultat:

Code:
Entropy = 3.354787 bits per byte.

Optimum compression would reduce the size
of this 965211 byte file by 58 percent.

Chi square distribution for 965211 samples is 23468418.09, and randomly
would exceed this value 0.01 percent of the times.

Arithmetic mean value of data bytes is 52.4995 (127.5 = random).
Monte Carlo value for Pi is 4.000000000 (error 27.32 percent).
Serial correlation coefficient is -0.002838 (totally uncorrelated = 0.0).


Iz cega se daje zakljuciti da PERL-ov rand() i nema bas mnogo veze sa randomom... Isto tako ce ti biti i sa bilo kojom drugom rand() funkcijom...
[ Ajvan @ 25.04.2005. 16:06 ] @
Firma je vrlo ozbiljna,...bas kao i ja...salu na stranu...da krenem od pozadi...sto se ostalih 99% tice ili koliko god...to nije problem...vladam tematikom..samo nesto ovako nisam nikada radio...Naravno da nisam nista prihvatio - jos ne..i naravno da ne bih sam to radio to je definitivno posao za vise ljudi (citaj firmu)...glavni problem je deo u vezi koga sam i postavio pitanje i uopste ne mislim da je jednostavan problem - ali ako hoces da zaradis malo vece pare moras da se uhvatis sa ozbiljnim problemom. Kazem opet, taj random deo (da ga laicki tako nazovem) u stvari i nije bas random - kazino uvek dobija i to naravno nije posledica slucajnosti...
u svakom slucaju hvala na linkovima, pogledacu...
U stvari treba napraviti WEB sajt...to je prvo i treba napraviti onoliko zasebnih igara koliko gazda kaze...u nasem slucaju je to par igara (do 5, ne vise), tako da je to vise problema i jedan covek tu moze samo da place....
[ blaza @ 25.04.2005. 19:23 ] @
Hm, malo sam se poigrao, iz znatizelje. Napisao sam, od oka - na brzaka, ovu rutinu za generisanje slucajnih brojeva 0-255:
Code:
int get_rb(void){
    static int a = 0;
    static int b = 0;
    static int c = 0;
    static int d = 0;
    if(a == 0) a = b + 1;
    if(b == 0) b = a + 15;
    if(c == 0) c = a + 69;
    int aa = (a + b) % (a + b + c);
    int bb = (a + c) % (a + b + c);
    int cc = (b + c) % (a + b + c);
    a = aa % 2991;
    b = bb % 4343;
    c = cc % 1085;
    d = (d + 7) ^ (a ^ (b ^ c));
    int x = ((a + b + c) ^ d) % 256;
    return x;
}


Rezultati:
Citat:
51768 bajtova:
Entropy = 7.996554 bits per byte.

Optimum compression would reduce the size
of this 51768 byte file by 0 percent.

Chi square distribution for 51768 samples is 247.83, and randomly
would exceed this value 50.00 percent of the times.

Arithmetic mean value of data bytes is 127.3244 (127.5 = random).
Monte Carlo value for Pi is 3.139082058 (error 0.08 percent).
Serial correlation coefficient is -0.008721 (totally uncorrelated = 0.0).

1M bajtova:
Entropy = 7.999817 bits per byte.

Optimum compression would reduce the size
of this 1048576 byte file by 0 percent.

Chi square distribution for 1048576 samples is 266.51, and randomly
would exceed this value 50.00 percent of the times.

Arithmetic mean value of data bytes is 127.4294 (127.5 = random).
Monte Carlo value for Pi is 3.139973221 (error 0.05 percent).
Serial correlation coefficient is -0.000118 (totally uncorrelated = 0.0).

10M bajtova:
Entropy = 7.999982 bits per byte.

Optimum compression would reduce the size
of this 10485760 byte file by 0 percent.

Chi square distribution for 10485760 samples is 268.03, and randomly
would exceed this value 50.00 percent of the times.

Arithmetic mean value of data bytes is 127.4912 (127.5 = random).
Monte Carlo value for Pi is 3.141367775 (error 0.01 percent).
Serial correlation coefficient is 0.000509 (totally uncorrelated = 0.0).

Izgleda da i nije tako tesko, sacometrijski, napisati "dovoljno slucajnu" RND rutinu.