⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.cs

📁 C#平台下的随机一致性指标RI计算
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace 随机一致性指标RI计算
{
    public partial class Form1 : Form
    {

        Random rand = new Random();
        int temp;
        double k = 0,temp1 = 0,temp2 = 0;
        double RandomNum;
        double[,] A = new double[31, 31];
        double[,] B = new double[31, 31];
        double[] temprow1 = new double[31];
        double[] temprow2 = new double[31];
        double[] ri = new double[31];
        int i, j, n, m;

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            for (n = 2; n <= 30; n++)
            {
                k = 0;
                for ( m = 1; m <= 1000; m++)
                {
                    for ( i = 1; i <= n; i++)
                    {
                        for (j = i; j <= n; j++)
                        {
                            RandomNumber();
                            A[i, j] = RandomNum;
                        }
                    }
                    for (int m1 = 1; m1 <= n; m1++)
                    {
                        for (int n1 = 1; n1 <= m1 - 1; n1++)
                        {
                            A[m1,n1] = 1 / A[n1,m1];
                        }
                    }
                    for (int a = 1; a<= n; a++)
                    {
                        A[a,a] = 1;
                    }
                    for (int b1 = 1; b1 <= n; b1++)
                    {
                        for (int b2 = 1; b2 <= n; b2++)
                        {
                            B[b1,b2] = A[b1,b2];
                        }
                    }

                    for (int c = 1; c <= n; c++)
                    {
                        temp1 = 0;
                        for (int c1 = 1; c1 <= n; c1++)
                        {
                            temp1 += A[c1,c];
                        }
                        for (int c2 = 1; c2 <= n; c2++)
                        {
                            B[c2,c] = B[c2,c] / temp1;
                        }
                    }
                    for (int d = 1; d <= n; d++)
                    {
                        temprow1[d] = 0;
                    }
                    for (int e1 = 1; e1 <= n; e1++)
                    {
                        for (int e2 = 1; e2 <= n; e2++)
                        {
                            temprow1[e2] += B[e2,e1];
                        }
                    }
                    temp1 = 0;
                    for (int f1 = 1; f1 <= n; f1++)
                    {
                        temp1 += temprow1[f1];
                    }
                    for (int f2 = 1; f2 <= n; f2++)
                    {
                        temprow1[f2] = temprow1[f2] / temp1;
                    }
                    temp2 = 0;
                    for (int g = 1; g <= n; g++)
                    {
                        temprow2[g] = 0;
                    }
                    for (int g1 = 1; g1 <= n; g1++)
                    {
                        for (int g2 = 1; g2 <= n; g2++)
                        {
                            temprow2[g1] += A[g1,g2] * temprow1[g2];
                        }
                    }
                    for (int h = 1; h <= n;h++)
                    {
                        temp2 += temprow2[h];
                    }
                    k += temp2;
                }
                k = k / 1000;
                ri[n] = (k - n) / (n - 1);
            }

           ShowRI();

	

        }

        private void RandomNumber()
        {
            temp = rand.Next(18);//
            switch (temp)
            {
                case 0:
                    RandomNum= 1;
                    break;
                case 1:
                    RandomNum = 2;
                    break;
                case 2:
                    RandomNum = 3;
                    break;
                case 3:
                    RandomNum = 4;
                    break;
                case 4:
                    RandomNum = 5;
                    break;
                case 5:
                    RandomNum = 6;
                    break;
                case 6:
                    RandomNum = 7;
                    break;
                case 7:
                    RandomNum = 8;
                    break;
                case 8:
                    RandomNum = 9;
                    break;
                case 9:
                    RandomNum = 1;
                    break;
                case 10:
                    RandomNum = 0.5;
                    break;
                case 11:
                    RandomNum = 1.00 / 3.00;
                    break;
                case 12:
                    RandomNum = 0.25;
                    break;
                case 13:
                    RandomNum = 0.2;
                    break;
                case 14:
                    RandomNum = 1.00 / 6.00;
                    break;
                case 15:
                    RandomNum = 1.00 / 7.00;
                    break;
                case 16:
                    RandomNum = 0.125;
                    break;
                case 17:
                    RandomNum = 1.00 / 9.00;
                    break;
                default:
                    RandomNum = 0;
                    break;
            }
        }

        private void ShowRI()
        {
            textBox1.Text = ri[2].ToString();
            textBox2.Text = ri[3].ToString();
            textBox3.Text = ri[4].ToString();
            textBox4.Text = ri[5].ToString();
            textBox5.Text = ri[6].ToString();
            textBox6.Text = ri[7].ToString();
            textBox7.Text = ri[8].ToString();
            textBox8.Text = ri[9].ToString();
            textBox9.Text = ri[10].ToString();
            textBox10.Text = ri[11].ToString();
            textBox11.Text = ri[12].ToString();
            textBox12.Text = ri[13].ToString();
            textBox13.Text = ri[14].ToString();
            textBox14.Text = ri[15].ToString();
            textBox15.Text = ri[16].ToString();
            textBox16.Text = ri[17].ToString();
            textBox17.Text = ri[18].ToString();
            textBox18.Text = ri[19].ToString();
            textBox19.Text = ri[20].ToString();
            textBox20.Text = ri[21].ToString();
            textBox21.Text = ri[22].ToString();
            textBox22.Text = ri[23].ToString();
            textBox23.Text = ri[24].ToString();
            textBox24.Text = ri[25].ToString();
            textBox25.Text = ri[26].ToString();
            textBox26.Text = ri[27].ToString();
            textBox27.Text = ri[28].ToString();
            textBox28.Text = ri[29].ToString();
            textBox29.Text = ri[30].ToString();
        }

    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -