Advertisement
Konark

Untitled

Nov 17th, 2015
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.93 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace ConsoleApplication18
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             double[,] exp1 = { { -1, 18 / 28f, 23 / 28f, 1 / 28f, 14 / 28f},
  14.             { 10 / 28f, -1, 7 / 28f, 16 / 28f, 6 / 28f},
  15.             { 5 / 28f, 21 / 28, -1, 3 / 28f, 13 / 28f},
  16.             { 27 / 28f, 12 / 28f, 25 / 28f, -1, 5 / 28f},
  17.             { 14 / 28f, 22 / 28f, 15 / 28f, 23 / 28f, -1} };
  18.             double[,] exp2 = {{-1, 17/28f, 1f, 3/28f, 1/28f},
  19.             {11/28f, -1, 5/28f, 17/28f, 16/28f},
  20.             {0, 23/28f, -1, 2/28f, 3/28f},
  21.             {25/28f, 11/28f, 26/28f, -1, 9/28f},
  22.             {27/28f, 12/28f, 25/28f, 19/28f, -1}};
  23.             double[,] exp3 = {{-1, 19/28f, 1, 2/28f, 12/28f},
  24.             {8/28f, -1, 6/28f, 18/28f, 8/28f},
  25.             {0, 22/28f, -1, 1/28f, 21/28f},
  26.             {26/28f, 10/28f, 27/28f, -1, 27/28f},
  27.             {16/28f, 20/28f, 7/28f, 1/28f, -1}};
  28.             int N = 20;
  29.             double[,] grade = new double[3, 5];
  30.             for (int i = 0;i < exp1.GetLength(0); i++)
  31.             {
  32.                 for (int j = 0; j < exp1.GetLength(1); j++)
  33.                 {
  34.                     if (i == j) continue;
  35.                     grade[0, j] += exp1[j, i];
  36.                 }
  37.             }
  38.             for (int i = 0; i < exp2.GetLength(0); i++)
  39.             {
  40.                 for (int j = 0; j < exp2.GetLength(1); j++)
  41.                 {
  42.                     if (i == j) continue;
  43.                     grade[1, j] += exp2[j, i];
  44.                 }
  45.             }
  46.             for (int i = 0; i < exp3.GetLength(0); i++)
  47.             {
  48.                 for (int j = 0; j < exp3.GetLength(1); j++)
  49.                 {
  50.                     if (i == j) continue;
  51.                     grade[2, j] += exp3[j, i];
  52.                 }
  53.             }
  54.             Console.WriteLine("Предпочтения: ");
  55.             for (int i = 0; i < grade.GetLength(0); i++)
  56.             {
  57.                 for (int j = 0; j < grade.GetLength(1); j++)
  58.                 {
  59.                     Console.Write(grade[i, j] + " ");
  60.                 }
  61.                 Console.WriteLine("");
  62.             }
  63.             double[,] gradeN = new double[3, 5];
  64.             for(int i = 0; i < gradeN.GetLength(0); i++)
  65.             {
  66.                 for (int j = 0; j < gradeN.GetLength(1); j++)
  67.                 {
  68.                     gradeN[i, j] += grade[i, j] / N;
  69.                 }
  70.             }
  71.             Console.WriteLine("-------------");
  72.             Console.WriteLine("Нормализиванны предпочтения: ");
  73.             for (int i = 0; i < gradeN.GetLength(0); i++)
  74.             {
  75.                 for (int j = 0; j < gradeN.GetLength(1); j++)
  76.                 {
  77.                     Console.Write(gradeN[i, j] + " ");
  78.                 }
  79.                 Console.WriteLine("");
  80.             }
  81.             double[] weight = new double[5];
  82.             double sum = 0;
  83.             double sumN = 0;
  84.             for (int i = 0; i < grade.GetLength(0); i++)
  85.             {
  86.                 for (int j = 0; j < grade.GetLength(1); j++)
  87.                 {
  88.                     sumN += gradeN[i, j];
  89.                 }
  90.             }
  91.             double[] sumNgrade = new double[5];
  92.             for (int i = 0; i < gradeN.GetLength(1); i++)
  93.             {
  94.                 for (int j = 0; j < gradeN.GetLength(0); j++) {
  95.                     sumNgrade[i] += gradeN[j, i];
  96.                 }
  97.             }
  98.             Console.WriteLine("-------------");
  99.             for (int i = 0; i < weight.Length; i++)
  100.             {
  101.                 weight[i] = sumNgrade[i] / sumN;
  102.             }
  103.             for (int i = 0; i < weight.Length; i++)
  104.             {
  105.                 Console.WriteLine("W" + (i+1) + " = " + weight[i]);
  106.             }
  107.             Console.Read();
  108.         }
  109.     }
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement