已知C++中目標命中機率,計算A獲勝的機率
假設有兩個玩家A和B,他們都在爭取點球來贏得比賽。已知四個整型變數a、b、c、d,A先獲得點球的機率為a/b,B先獲得點球的機率為c/d。
先獲得點球的一方將贏得比賽,根據題意,程式必須找到A贏得比賽的機率。
輸入
a = 10, b = 20, c = 30, d = 40
輸出
probability is 0.5333
輸入
a = 1, b = 2, c = 10, d = 11
輸出
probability is 0.523
下面程式中使用的方案如下:
輸入四個整型變數a、b、c、d的值。
從總機率中減去B獲勝的機率,我們將得到A獲勝的最終機率。
e * (1 / (1 - (1 - f) * (1 - f)))
其中,e是A獲勝的機率,f是B獲勝的機率。
顯示A贏得比賽的機率。
演算法
Start Step 1→ Declare function to calculate the probability of winning double probab_win(int a, int b, int c, int d) Declare double e = (double)a / (double)b Declare double f = (double)c / (double)d return (e * (1 / (1 - (1 - f) * (1 - f)))) Step 2→ In main() Declare variable as int a = 10, b = 20, c = 30, d = 40 Call probab_win(a, b, c, d) Stop
示例
#include <bits/stdc++.h>
using namespace std;
// calculate the probability of winning the match
double probab_win(int a, int b, int c, int d){
double e = (double)a / (double)b;
double f = (double)c / (double)d;
return (e * (1 / (1 - (1 - f) * (1 - f))));
}
int main(){
int a = 10, b = 20, c = 30, d = 40;
cout<<"probability is "<<probab_win(a, b, c, d);
return 0;
}輸出
執行以上程式碼將生成以下輸出:
probability is 0.5333
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP