Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <iomanip> // std::setprecision
- using namespace std;
- long double getNThProb(int n, double long x){
- long double sol = x*1.0;
- for(int i = 2; i <= n; i++){
- sol = sol + (1-sol)*x;
- }
- return sol;
- }
- long double initProbs[100]={0,0.1, 0.1, 0.6, 0.455652142}, sumProbs[100], incraseRate[100]={0,0.1, 0.1, 0.6, 0.455652142};
- int main(){
- int n = 4;
- int k = 4;
- for(int iter = 1; iter <= k; iter++){
- int poz = 1;
- for(int i = 1; i <= n; i++){
- if (incraseRate[i] > incraseRate[poz]){
- poz = i;
- } else if(incraseRate[i] == incraseRate[poz]){
- if(initProbs[i] > initProbs[poz]){ //recheck
- poz=i;
- }
- }
- }
- sumProbs[poz] += (1-sumProbs[poz])*initProbs[poz];
- incraseRate[poz] = (1-sumProbs[poz])*initProbs[poz];
- }
- double long result=0.0;
- for(int i = 1; i <= n; i++){
- result += sumProbs[i];
- // cout<<initProbs[i]<<' '<<sumProbs[i]<<' '<<incraseRate[i]<<'\n';
- }
- cout<<setprecision(7)<<result;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement