khuseiN

Untitled

Mar 1st, 2023
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.98 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>
  4.  
  5. using namespace std;
  6.  
  7. const int VARIANTS = 14;
  8. const int STATES = 10;
  9. const double C = 0.6;
  10.  
  11. // Генерация случайной матрицы оценок
  12. void generateMatrix(double e[VARIANTS][STATES]) {
  13. for (int i = 0; i < VARIANTS; i++) {
  14. double sum = 0;
  15. for (int j = 0; j < STATES; j++) {
  16. e[i][j] = rand() % 100 + 1;
  17. sum += e[i][j];
  18. }
  19. for (int j = 0; j < STATES; j++) {
  20. e[i][j] /= sum;
  21. }
  22. }
  23. }
  24.  
  25. // Критерий Гурвица
  26. double hurwicz(double e[VARIANTS][STATES], int variant) {
  27. double min = e[variant][0], max = e[variant][0];
  28. for (int i = 1; i < STATES; i++) {
  29. if (e[variant][i] < min) {
  30. min = e[variant][i];
  31. }
  32. if (e[variant][i] > max) {
  33. max = e[variant][i];
  34. }
  35. }
  36. return C * max + (1 - C) * min;
  37. }
  38.  
  39. // Оптимистический критерий
  40. double optimistic(double e[VARIANTS][STATES], int variant) {
  41. double max = e[variant][0];
  42. for (int i = 1; i < STATES; i++) {
  43. if (e[variant][i] > max) {
  44. max = e[variant][i];
  45. }
  46. }
  47. return max;
  48. }
  49.  
  50. int main() {
  51. srand(time(NULL));
  52. double e[VARIANTS][STATES];
  53. generateMatrix(e);
  54. cout << "Оценки: " << endl;
  55. for (int i = 0; i < VARIANTS; i++) {
  56. for (int j = 0; j < STATES; j++) {
  57. cout << e[i][j] << "\t";
  58. }
  59. cout << endl;
  60. }
  61. cout << "Критерий выбора 1 (критерий Гурвица):" << endl;
  62. for (int i = 0; i < VARIANTS; i++) {
  63. cout << "Вариант " << i << ": " << hurwicz(e, i) << endl;
  64. }
  65. cout << "Критерий выбора 2 (оптимистический критерий):" << endl;
  66. for (int i = 0; i < VARIANTS; i++) {
  67. cout << "Вариант " << i << ": " << optimistic(e, i) << endl;
  68. }
  69. return 0;
  70. }
  71.  
Advertisement
Add Comment
Please, Sign In to add comment