Атака подводной лодки
У подводной лодки есть \(n\) торпед, которые она выпускает но очереди по кораблю до тех нор, пока торпеда не попадет в корабль или пока не закончатся торпеды. Вероятность попадания торпеды в корабль равна \(p\). После каждого запуска торпеды лодкой корабль охраны производит залп по подводной лодке. Вероятность затопления подводной лодки в результате залпа корабля охранения равна \(p_{1}\). Составим программу, в которой будет вычисляться вероятность события \(P(A)\), состоящего в том, что и корабль, и подводная лодка будут затоплены. При этом используем формулу
$$P\left(A \right)=p\cdot p_{1}\left(1-q^{n} \right)/\left(1-q \right)$$
где введено обозначение \(q=\left(1-p \right)\left(1-p_{1} \right)\).
#include#include using namespace std; int main(){ //Параметры задачи: double p,p1,P,q; int n; //Ввод параметров задачи: cout << "p = "; cin>>p; //Проверка корректности значения p: (p < 0||p > 1)?(cout << "Wrong value!" << endl,exit(0)):cout << "p1 = "; cin >> p1; //Проверка корректности значения p1: (p1 < 0||p1 > 1)?(cout << "Wrong value!" << endl,exit(0)):cout << "n = "; cin >> n; //Поиск решения: q=(1-p)*(1-p1); P=p*p1*(1-pow(q,n))/(1-q); cout << "P = " << P << endl; return 0; }