C++ Bc. 28 cpp
#include <cstdlib> #include <ctime> #include <cmath> #include <iostream> #include <iomanip> double rab(double a, double b) // nahodne cislo z intervalu <a, b> { return a + (b-a)*rand()/(RAND_MAX + 1.0); } double pokus() { double novak = rab(16.00, 17.00); // pan Novak prichazi na zastavku double interval = 10.0/60.0; // interval autobusove linky double zpozdeni = 5.0/60.0; // maximalni zpozdeni double bus = 15.00 + 30.0/60.0; // prvni testovany autobus double cas; // cas prijezdu autobusu bool obsazen; // autobus je/neni obsazen do { bus += interval; cas = bus + rab(0, zpozdeni); obsazen = rab(0,5) > 4; // kazdy paty autobus je obsazen } while (cas < novak || obsazen); return (cas - novak)*60; // cekani v minutach } int main() { using namespace std; srand(time(0)); cout.setf(ios_base::fixed, ios_base::floatfield); for (int n=1; n<=10; n++) { const int N=100000; double suma=0, sum2=0; for (int i=0; i<N; i++) { double p = pokus(); suma += p; sum2 += p*p; } double prumer = suma/N; double variance = sum2/N - prumer*prumer; double stddev = sqrt(variance); // smerodatna odchylka cout << setw(2) << n << " : " << prumer << " " << stddev << endl; } }
[ Zpět ]