Advertisement
Guest User

Untitled

a guest
Mar 21st, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <ctime>
  4. #include <cstdlib>
  5. #include <cmath>
  6.  
  7. typedef std::vector<std::vector<double>> matrix;
  8.  
  9. inline double _rand(double a, double b)
  10. {
  11. return a + (rand() % 10001) / 10000.0 * (b - a);
  12. }
  13.  
  14. matrix createMatrix(int m, int n)
  15. {
  16. srand(time(NULL));
  17. matrix mat(m, std::vector<double>(n));
  18. double fi = _rand(0, 1.) * 2*3.141592654;
  19. int limit = _rand(0.6, 1.) * sqrt(m*n), br(limit);
  20. for (int i(0); i < m; i++)
  21. for (int j(0); j < n; j++)
  22. {
  23. double f, A(rand() % 100);
  24. if (rand() % int(pow(m*n, 0.2)) == 0) A = 20*pow(1.5, _rand(1., 1.5));
  25. if (rand() % 7 == 0) A = 300*pow(1.5, _rand(1., 13.));
  26. mat[i][j] = int(A*(1+pow(sin(2*3.141592654*f * (i*n+j) + fi), 25)));
  27. br++;
  28. if (br == limit)
  29. {
  30. br = 0;
  31. f = sqrt(m*n) * _rand(0.3, 1.5);
  32. limit = _rand(0.6, 1.) * sqrt(m*n);
  33. }
  34. }
  35. return mat;
  36. }
  37.  
  38. int main()
  39. {
  40. int a, b;
  41. std::cin >> a >> b;
  42. std::cout<<"START\n";
  43. for (std::vector<double> red : createMatrix(a, b))
  44. {
  45. for (double el : red)
  46. std::cout << el << " ";
  47. std::cout << "\n";
  48. }
  49. std::cout<<"END";
  50. return 0;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement