C++ Bc. 35 cpp
#include <iostream>
#include <iomanip>
#include <vector>
#include <ctime>
void hod_kostkami(std::vector<int>&);
bool alespon_na_jedne_kostce_padne_1_nebo_2(const std::vector<int>&);
bool padne_jedno_dve_nebo_tri_licha_cisla (const std::vector<int>&);
int main()
{
srand(time(0)); // inicializace generatoru rand()
std::vector<int> kostky(4);
double t1 = 0, s1 = 0; // total, suma
double t2 = 0, s2 = 0;
const int M = 10; // pocet opakovani pokusu
const int N = 10000; // pocet pokusu
std::cout.setf(std::ios_base::fixed, std::ios_base::floatfield);
std::cout.precision(4);
for (int m=1; m<=M; m++)
{
for (int n=1; n<=N; n++)
{
hod_kostkami(kostky);
if (alespon_na_jedne_kostce_padne_1_nebo_2(kostky)) s1++;
if (padne_jedno_dve_nebo_tri_licha_cisla (kostky)) s2++;
}
std::cout << std::setw(2) << m << " | ";
t1 += s1;
std::cout << s1/N << " " << t1/N/m << " | ";
t2 += s2;
std::cout << s2/N << " " << t2/N/m << " |" << std::endl;
s1 = s2 = 0;
}
}
void hod_kostkami(std::vector<int>& kostky)
{
for (unsigned int i=0; i<kostky.size(); i++)
{
kostky[i] = 1 + int( rand()/(RAND_MAX + 1.0)*6 );
}
}
bool alespon_na_jedne_kostce_padne_1_nebo_2(const std::vector<int>& kostky)
{
for (unsigned int i=0; i<kostky.size(); i++)
{
const int n = kostky[i];
if (n == 1 || n == 2) return true;
}
return false;
}
bool padne_jedno_dve_nebo_tri_licha_cisla (const std::vector<int>& kostky)
{
int liche = 0;
for (unsigned int i=0; i<kostky.size(); i++)
{
const int n = kostky[i];
if (n%2 != 0) liche++;
}
return liche==1 || liche==2 || liche==3;
}
[ Zpět ]