Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdlib>
- #include <ctime>
- using namespace std;
- const int VARIANTS = 14;
- const int STATES = 10;
- const double C = 0.6;
- // Генерация случайной матрицы оценок
- void generateMatrix(double e[VARIANTS][STATES]) {
- for (int i = 0; i < VARIANTS; i++) {
- double sum = 0;
- for (int j = 0; j < STATES; j++) {
- e[i][j] = rand() % 100 + 1;
- sum += e[i][j];
- }
- for (int j = 0; j < STATES; j++) {
- e[i][j] /= sum;
- }
- }
- }
- // Критерий Гурвица
- double hurwicz(double e[VARIANTS][STATES], int variant) {
- double min = e[variant][0], max = e[variant][0];
- for (int i = 1; i < STATES; i++) {
- if (e[variant][i] < min) {
- min = e[variant][i];
- }
- if (e[variant][i] > max) {
- max = e[variant][i];
- }
- }
- return C * max + (1 - C) * min;
- }
- // Оптимистический критерий
- double optimistic(double e[VARIANTS][STATES], int variant) {
- double max = e[variant][0];
- for (int i = 1; i < STATES; i++) {
- if (e[variant][i] > max) {
- max = e[variant][i];
- }
- }
- return max;
- }
- int main() {
- srand(time(NULL));
- double e[VARIANTS][STATES];
- generateMatrix(e);
- cout << "Оценки: " << endl;
- for (int i = 0; i < VARIANTS; i++) {
- for (int j = 0; j < STATES; j++) {
- cout << e[i][j] << "\t";
- }
- cout << endl;
- }
- cout << "Критерий выбора 1 (критерий Гурвица):" << endl;
- for (int i = 0; i < VARIANTS; i++) {
- cout << "Вариант " << i << ": " << hurwicz(e, i) << endl;
- }
- cout << "Критерий выбора 2 (оптимистический критерий):" << endl;
- for (int i = 0; i < VARIANTS; i++) {
- cout << "Вариант " << i << ": " << optimistic(e, i) << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment