Diskuse:C++ Bc. 37
Přímý výpočet je v daném případě pochopitelně rychlejší
#include <iostream> #include <vector> #include <cstdlib> #include <ctime> #include <algorithm> int main() { enum {bila, cerna}; std::vector<int> prvni; prvni.push_back(bila); prvni.push_back(bila); prvni.push_back(cerna); prvni.push_back(cerna); prvni.push_back(cerna); prvni.push_back(cerna); std::vector<int> druha; druha.push_back(bila); druha.push_back(bila); druha.push_back(bila); druha.push_back(bila); druha.push_back(cerna); druha.push_back(cerna); std::vector<int> treti; treti.push_back(bila); treti.push_back(bila); treti.push_back(bila); treti.push_back(cerna); treti.push_back(cerna); treti.push_back(cerna); srand(time(0)); const int N = 1000000; int indx, urna, koule; double tpb = 0, tpbn = 0, tpc = 0, tpcn = 0; for (int k=0; k<10; k++) { double pb = 0, pbn = 0, pc = 0, pcn = 0; for (int n=0; n<N; n++) { urna = int(3*(rand()/(RAND_MAX+1.0))); indx = int(6*(rand()/(RAND_MAX+1.0))); if (urna == 0) { koule = prvni[indx]; } else if (urna == 1) { koule = druha[indx]; } else { koule = treti[indx]; } if (koule == bila) { if (urna == 0) pb++; pbn++; } else { if (urna == 0) pc++; pcn++; } } tpb += pb; tpbn += pbn; tpc += pc; tpcn += pcn; std::cout << "bila " << pb/pbn << "\t" << tpb/tpbn << "\t\t" << "cerna " << pc/pcn << "\t" << tpc/tpcn << "\n"; } }