Najpierw rozwiaz matematycznie sobie to zadanie. Najprostszy sposob to drzewko. Jak to zrobic powinienes miec w szkole na podstawach prawdopodobienstwa. Potem wystarczy jedynie zaimplementowac algorytm dzialania jaki uzyles do wyliczenia tego na kartce.
Jako ze mam dobry humor to Ci pomoge ;p
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
srand(time(0));
double a=0.5,b=0.5; // moneta a - fair , b - nie fair
double fair=0.5,nie_fair=0.2; // prawdop. przy monecie fair rowne ; przy nie fair orzel 0.2 reszka 1-0.2
double p_a; // prawdop koncowe
int losuj=rand()%2+1; // symulacja losowania 1/2 moneta 1/moneta 2
if(losuj==1)p_a=a; // jesli 1 przypisuje szanse a
else p_a=b; // jesli druga b
int losuj2=rand()%2+1; // symulacja losowania 1/2 orzel/reszka
if(losuj2==1 and losuj==1)p_a=p_a*fair; // jesli wybralo monete fair a potem wypadl orzel to przypisuje odpowiednio
else if(losuj2==2 and losuj==1)p_a=p_a*(1-fair); // to samo tylko reszka
else if(losuj2==1 and losuj==2)p_a=p_a*nie_fair; // moneta nie fair i orzel
else if(losuj2==2 and losuj==2)p_a=p_a*(1-nie_fair); // moneta nie fair i reszka
cout << "Prawdopodobienstwo wynosi: " << p_a; // prawdop ostateczne wynosi
cout << endl;
system("pause");
return 0;
}
Nie wydaje mi sie zeby tutaj wystepowalo prawdop. warunkowe, poniewaz tresc zadania na to nie wskazuje jednak jesli tak to trzeba zamienic wzor. Powinno byc dobrze, pisane z glowy na szybko.