Advertisement
mamamaria

d

Mar 10th, 2021
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.22 KB | None | 0 0
  1. #include <iostream>
  2. #include <sstream>
  3. #include <fstream>
  4. #include <ctime>
  5. using namespace std;
  6.  
  7. stringstream str;
  8. double q = 0.2;
  9. double p = 0.9;
  10. int n = 12;
  11. int counterLB = 0;
  12. int counterRB = 0;
  13.  
  14. void generatorLB() {
  15.  
  16.     if (rand() < p * RAND_MAX) {
  17.         str << "(";
  18.         counterLB++;
  19.     }
  20. }
  21.  
  22. void generatorRB() {
  23.  
  24.     if (rand() < q * RAND_MAX) {
  25.         str << ")";
  26.         counterRB++;
  27.     }
  28. }
  29.  
  30. void generatorOp() {
  31.     int op = rand() % 4;
  32.     switch (op) {
  33.     case 0:
  34.         str << "+";
  35.         break;
  36.     case 1:
  37.         str << "-";
  38.         break;
  39.     case 2:
  40.         str << "*";
  41.         break;
  42.     case 3:
  43.         str << "/";
  44.         break;
  45.     }
  46. }
  47.  
  48. void generate() {
  49.    
  50.     int cnt = 0;
  51.     generatorLB();
  52.     str << "x"; str << (cnt + 1);
  53.     cnt++;
  54.  
  55.     while (cnt != n)
  56.     {  
  57.        
  58.         generatorOp();
  59.         generatorLB();
  60.         str << "x"; str << (cnt + 1);
  61.         cnt++;
  62.         if (counterLB != 0)
  63.             generatorRB();
  64.        
  65.     }
  66.     while (counterLB>counterRB)  generatorRB();
  67.  
  68. }
  69.  
  70. int main()
  71. {
  72.     srand(time(0));
  73.     setlocale(LC_ALL, "Russian");
  74.     ofstream fout("exp.txt");
  75.     generate();
  76.     fout << str.str();
  77.  
  78. }
  79.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement