給你總人數和獲勝機率,判斷出第 i 個人的獲勝機率是多少。
q = 1 - p;
透過歸納我們可以得知第 R 回合獲勝的機率為(q^(R-1)*n)*(q^(i-1))*p
再利用等比級數整理(q^(i-1)*p) / (1-q^n)
#include <bits/stdc++.h>
using namespace std;
int main() {
int kase;
cin >> kase;
while (kase--) {
double n, p, i;
cin >> n >> p >> i;
double q = 1 - p;
if(p==0)
cout<<"0.0000"<<endl;
else
printf("%.4f\n", (pow(q, (i - 1)) * p) / (1 - pow(q, n)));
}
return 0;
}
有個神奇的旅店,每次入住多少人必須住多少天,且下一批人一定比上一批旅客多一人,請你求出第 i 天入住的有多少人。
直接累加,當入住天數大於第 i 天時,代表上一團的人已經經過第 i 天了。
#include <bits/stdc++.h>
using namespace std;
int main(){
long long int n,d;
while(cin>>n>>d){
long long int day=1;
while(day<=d){
day+=n;
n++;
}
cout<<n-1<<endl;
}
return 0;
}