• AHP(使用于某项目设备重要度评估测试)


    用层次法和蒙特卡洛模型计算权重系数,然后建立判断矩阵进行随机一致性检验,最后求出重要度指数。

     1  string calculateStr = "1,2,3,2,1,|1,2,3,2,1,|1,2,3,2,1,|1,2,3,2,1,";
     2             var vals = calculateStr.Split('|');
     3             var Strlen = vals.Length - 1;
     4             double[,] t = new double[Strlen, Strlen];
     5             double RI = 0;
     6             for (int i = 0; i < Strlen; i++)
     7             {
     8                 for (int j = 0; j < Strlen; j++)
     9                 {
    10                     t[i, j] = double.Parse(vals[i].Split(',')[j]);
    11                 }
    12             }
    13 
    14             double result = 0;
    15             int len = t.GetUpperBound(0) + 1;
    16             double[,] t1 = new double[len, len];
    17             double[] dNums = new double[len];
    18             for (int i = 0; i < len; i++)
    19             {
    20                 double colResut = 0;
    21                 for (int j = 0; j < len; j++)
    22                 {
    23                     colResut += t[j, i];
    24                 }
    25                 for (int k = 0; k < len; k++)
    26                 {
    27                     t1[k, i] = Sum(t[k, i], colResut);
    28                 }
    29             }
    30 
    31             for (int i = 0; i < len; i++)
    32             {
    33                 double vector = 0;
    34                 double colResult = 0;
    35 
    36                 for (int j = 0; j < len; j++)
    37                 {
    38                     colResult += t[j, i];
    39                 }
    40 
    41                 for (int r = 0; r < len; r++)
    42                 {
    43                     vector += t1[i, r];
    44                 }
    45                 dNums[i] = vector / len;
    46                 result += colResult * vector / len;
    47             }
    48 
    49 
    50             if (len > 2)
    51             {
    52                 switch (len)
    53                 {
    54                     case 3:
    55                         RI = 0.58;
    56                         break;
    57                     case 4:
    58                         RI = 0.9;
    59                         break;
    60                     case 5:
    61                         RI = 1.12;
    62                         break;
    63                     case 6:
    64                         RI = 1.24;
    65                         break;
    66                     case 7:
    67                         RI = 1.32;
    68                         break;
    69                     case 8:
    70                         RI = 1.41;
    71                         break;
    72                     case 9:
    73                         RI = 1.46;
    74                         break;
    75                 }
    76             }
    77 
    78             var CI = (result - len) / (len - 1);
    79             var CR = CI / RI;
    80             Console.WriteLine(CR);
    控制台代码
    好好学习,天天向上。
  • 相关阅读:
    MS Sq l数据类型
    northwind数据库介绍
    div使用jqueryui 源码 | gridview多个功能的源码
    gridview 经典
    文件流的方式下载文件
    sql(一)( )
    c# 和 .net (一)()
    html 和 html5(一)(表格 | 列表 | 提交按钮 | 单选 |复选 | 框架 | 脚本 | html字符实体 )
    狂神Redis笔记(上)
    狂神说 MyBatisPlus 学习笔记
  • 原文地址:https://www.cnblogs.com/Zhengxue/p/8777839.html
Copyright © 2020-2023  润新知