Advertisement
Pearlfromsu

adaptive algo

Mar 6th, 2024
613
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.11 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <iomanip>
  4. using namespace std;
  5. int main()
  6. {
  7.     int n;
  8.     cin >> n;
  9.     cout << setprecision(10) << fixed;
  10.     vector<double> vc(n+1), counts(n+1, 1);
  11.     double allcnt = n;
  12.     vc[0] = 0;
  13.     for(int i = 0; i < n; i++)
  14.       vc[i+1] = 1.0/n;
  15.     double a = 0, b = 1;
  16.     string str;
  17.     cin >> str;
  18.     for(int k = 0; k <= str.size(); k++) {
  19.         vector<double> res(n+1);
  20.         cout << k+1 << ". (" << str[k] << ") " << " a: " << a << " b: " << b << endl;
  21.         double sm = 0, dif = b-a;
  22.         res[0] = a;
  23.         for(int i = 1; k != str.size() && i <= n; i++) {
  24.             sm += vc[i];
  25.             cout << a + dif*sm << " _ ";
  26.             res[i] = a+dif*sm;
  27.         }
  28.         cout << endl;
  29.         for(int i = 1; i<vc.size(); i++)
  30.             cout << vc[i] << ", ";
  31.         //res.push_back(b);
  32.        
  33.         if(k != str.size()) {
  34.           int ind = str[k]-'0';
  35.           a = res[ind-1];
  36.           b = res[ind];
  37.           counts[ind]++;
  38.           allcnt++;
  39.           for(int i = 1; i < vc.size(); i++)
  40.             vc[i] = counts[i]/allcnt;
  41.           cout << endl << endl;
  42.         } else
  43.           cout << "<-- result";
  44.         //cout << endl << endl;
  45.     }
  46.    
  47.     return 0;
  48. }
  49.  
  50.  
  51.  
  52.  
  53. #include <iostream>
  54. #include <vector>
  55. using namespace std;
  56. int main()
  57. {
  58.     int n;
  59.     cin >> n;
  60.     vector<double> vc(n+1);
  61.     vc[0] = 0;
  62.     for(int i = 0; i < n; i++)
  63.       cin >> vc[i+1];
  64.     double a, b;
  65.     cin >> a >> b;
  66.     string str;
  67.     cin >> str;
  68.     for(int k = 0; k <= str.size(); k++) {
  69.     vector<double> res(n+1);
  70.     cout << k+1 << ". a: " << a << " b: " << b << endl;
  71.     double sm = 0, dif = b-a;
  72.     res[0] = a;
  73.     for(int i = 1; k != str.size() && i <= n; i++) {
  74.         sm += vc[i];
  75.         cout << a + dif*sm << " _ ";
  76.         res[i] = a+dif*sm;
  77.     }
  78.     //res.push_back(b);
  79.    
  80.     if(k != str.size()) {
  81.       int ind = str[k]-'0';
  82.       a = res[ind-1];
  83.       b = res[ind];
  84.       cout << endl << endl;
  85.     } else
  86.       cout << "<-- result";
  87.     //cout << endl << endl;
  88.     }
  89.    
  90.     return 0;
  91. }f
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement