Infiniti_Inter

Таката?

Oct 19th, 2019
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.58 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <iostream>
  3. #include <string>
  4. #include <random>
  5. using namespace std;
  6.  
  7.  
  8.  
  9.  
  10. random_device rnd;//библиотеки random, чтобы были максимально случайные числа
  11. mt19937 mersenne(rnd());// ^^^^
  12.  
  13. //возвращает случайное число, все числа по которым берется модуль - простые.
  14. long long randInt()
  15. {
  16.     return
  17.         ((mersenne() % 89659) * (mersenne() % 92489) + (mersenne() % 75503) * (mersenne() % 74797)) *
  18.            ((mersenne() % 65407) * (mersenne() % 60889) + (mersenne() % 57713) * (mersenne() % 55207)) +
  19.             mersenne();
  20. }
  21. // генератор длины строки
  22. //int genLength() {
  23. //  return max((long long)minLengthOfBinaryNumber, (long long)randInt() % maxLengthOfBinaryNumber);
  24. //}
  25.  
  26.  
  27. void Shuffle(string & s)
  28. {
  29.     for (int i = 0; i < s.length(); ++i)
  30.         for (int j = 0; j < s.length(); ++j)
  31.         {
  32.             bool shuffle = (bool)randInt() % 2;
  33.             if (shuffle)
  34.                 swap(s[i], s[j]);
  35.         }
  36. }
  37.  
  38. string GenBinaryNumber(int length)
  39. {
  40.     string res = "";
  41.     for (int i = 0; i < length; ++i)
  42.     {
  43.         res += randInt() % 2 + '0';
  44.     }
  45.  
  46.     Shuffle(res);
  47.     res[0] = '1';
  48.     return res;
  49. }
  50.  
  51. int main()
  52. {
  53.     //freopen("input.txt", "r", stdin);
  54.     //freopen("output.txt", "w", stdout);
  55.     setlocale(LC_ALL, "Russian");
  56.     const int length = 16;//длина строки
  57.     string s = GenBinaryNumber(length);
  58.     for (int i = 0; i < length / 2; ++i)
  59.     {
  60.         for (int j = 0; j < i; ++j)
  61.             cout << ' ';
  62.         for (int j = i; j < length - i;j++)
  63.             cout << s[j];
  64.         cout << endl;
  65.     }
  66.    
  67.  
  68. }
Add Comment
Please, Sign In to add comment