Idi nazad   Croportal Forum > Tehnologija i Tehnika > Računala
Registracija FAQ Lista korisnika Kalendar Pretraži Današnje Poruke Označi forume pročitanima Online igre


Računala Raspravljate o temi Program u C++ u Tehnologija i Tehnika forumu; Citat: Pravi autor: cekaonica Istina, ovisno o slucajevima koji se pojavljuju (najgori ili najbolji slucaj), ali prema nekom teoremu iz ...

Odgovor
 
Opcije Teme
Star 10-11-05, 22:55   #21 (permalink)
Regularni forumas
 
Datum registracije: 10-11-05
Poruka: 77
cekaonica se izdvaja iz mase
Citat:
Pravi autor: cekaonica
Istina, ovisno o slucajevima koji se pojavljuju (najgori ili najbolji slucaj), ali prema nekom teoremu iz Teorije vjerojatnosti za jako veliki broj bacanja bi trebao dobiti priblizno jednaki broj pojavljivanja (neznatne razlike) za sve elementarne dogadjaje (polja na ruletu: 0, 00, 1, 2, ..., 36), odnosno aposteriorna vjerojatnost njihovog pojavljivanja trebala bi biti priblizno jednaka apriornoj vjerojatnosti pojavljivanja.
Evo koda koji to potvrdjuje (za 100000 iteracija max. devijacija je oko 4%, za milju je oko 1%, za 10 milja je oko 0,3%; dalje nisam isao jer treba malo vise vremena da se program izvrti, ali za beskonacno iteracija bi trebale biti jednake apriorne i aposteriorne vjerojatnosti)

#include <iostream>
#include <time.h>

using namespace std;

class Rulet
{
public:
Rulet()
{}

int GetGeneratedNumber()
{
int generated;
generated = (int) (rand()/(RAND_MAX+1.) * 38);
return generated;
}
};

int main(void)
{
srand(unsigned(time(NULL)));
int* roulette = new int[38];
int counter, secs;
int number;
int counterTemp;
int red = 0, black = 0, green = 0;
for (int i = 0; i < 38; i++)
{
roulette[i] = 0;
}
do
{
cout << "Upisite broj okretanja ruleta: ";
cin >> counter;
} while (counter <= 0);
counterTemp = counter;
cout << endl;

Rulet* r = new Rulet();
do
{
number = r->GetGeneratedNumber();
roulette[number]++;
} while (--counter != 0);
cout << endl;
for (int i = 0; i < 38; i++)
{
cout << ">> " << i << " --> " << ((double)roulette[i])/counterTemp << endl;
}
cout << endl;
cout << 1./38 << endl << endl;

double dev, devTemp;

dev = ((double)roulette[0])/counterTemp - 1./38;
if (dev < 0)
dev *= -1;
for (int i = 1; i < 38; i++)
{
devTemp = ((double)roulette[i])/counterTemp - 1./38;
if (devTemp < 0)
devTemp *= -1;
if (devTemp > dev)
dev = devTemp;
}

cout << "Najvece odstupanje aposteriorne od apriorne vjerojatnosti: " << dev*38*100 << "%" << endl << endl;
free(r);
return 0;
}
cekaonica je offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Odgovori sa citatom
Odgovor
Tagovi: program



Broj korisnika koji trenutno prate ovu Temu: 1 (0 članova i 1 gosta)
 
Opcije Teme

Pravila poruka
Vi smijete ne otvarati nove teme
Vi smijete ne odgovarati na poruke
Vi smijete ne slati privitke
Vi smijete ne urediti vašu poruku

vB Kod je Uključen
Smajlići Kod je Uključen
[IMG] kod je Uključen
HTML kod je Isključen
Trackbacks are Isključen
Pingbacks are Isključen
Refbacks are Isključen

Slične Diskusije
Tema Pokretač teme Forum Odgovora Zadnja poruka
Program "Kladionica" Gogy Kladionica 57 19-04-08 12:18
Programi za Siemens S25 i S35 Kristijan Mobiteli 0 27-10-05 00:28
Kad Program Pukne Kristijan Savjeti i Trikovi XP 0 26-10-05 16:50
Dijagnostički programi - vrste, namjena, mogućnosti, norton utilites, sandra, aida Kristijan Računala 0 21-10-05 17:30
Igre ne rade. Pokušajte neke od ovih saveta Baltazar Igre 0 14-07-05 00:42


Trenutno vrijeme na forumu: 04:48.



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114