C++ Bc. 28 cpp: Porovnání verzí
Bez shrnutí editace |
+ srand |
||
(Nejsou zobrazeny 4 mezilehlé verze od 2 dalších uživatelů.) | |||
Řádek 1: | Řádek 1: | ||
#include <cstdlib> | #include <cstdlib> | ||
#include <ctime> | #include <ctime> | ||
#include <cmath> | |||
#include <iostream> | #include <iostream> | ||
#include <iomanip> | #include <iomanip> | ||
Řádek 24: | Řádek 25: | ||
cas = bus + rab(0, zpozdeni); | cas = bus + rab(0, zpozdeni); | ||
obsazen = rab( | obsazen = rab(0,5) > 4; // kazdy paty autobus je obsazen | ||
} | } | ||
while (cas < novak || obsazen); | while (cas < novak || obsazen); | ||
Řádek 34: | Řádek 35: | ||
{ | { | ||
using namespace std; | using namespace std; | ||
srand(time(0)); | |||
cout.setf(ios_base::fixed, ios_base::floatfield); | |||
for (int n=1; n<=10; n++) | for (int n=1; n<=10; n++) | ||
{ | { | ||
const int N=100000; | const int N=100000; | ||
double suma = 0; | double suma=0, sum2=0; | ||
for (int i=0; i<N; i++) | for (int i=0; i<N; i++) | ||
{ | |||
double p = pokus(); | |||
suma += p; | |||
sum2 += p*p; | |||
} | |||
cout << setw(2) << n << " : " << | double prumer = suma/N; | ||
double variance = sum2/N - prumer*prumer; | |||
double stddev = sqrt(variance); // smerodatna odchylka | |||
cout << setw(2) << n << " : " << prumer << " " << stddev << endl; | |||
} | } | ||
} | } | ||
[ [[C | [ [[C++ Bc. 28 | Zpět]] ] | ||
[[Kategorie:Programování]] | |||
[[Kategorie:C++]] |
Aktuální verze z 25. 1. 2011, 15:57
#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 ]