C++ Bc. 28 cpp
#include <cstdlib> #include <ctime> #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(1,5) > 4; // kazdy paty autobus je obsazen } while (cas < novak || obsazen); return (cas - novak)*60; // cekani v minutach } int main() { using namespace std; for (int n=1; n<=10; n++) { const int N=100000; double suma = 0; for (int i=0; i<N; i++) suma += pokus(); cout << setw(2) << n << " : " << suma/N << endl; } }
[ Zpět ]