您的位置:首页 > 编程语言

模糊综合评判+C代码

2015-08-27 11:42 204 查看
例:

对某件衣服的评判,评判因素有:色彩u1、做工u2、面料u3、款式u4;它构成论域U={u1, u2, u3, u4}。

仅色彩讲,假设70%评委认为是“好”、20%为较好、5%为较差、5%为差

则色彩评价为: r1 = {0.7, 0.2, 0.05, 0.05};

同理:r2 = {0.5,0.1,0.2, 0.2}; r3 = {0.6, 0.2, 0.1, 0.1}; r4 = {07, 0.2, 0.1, 0};

写成评价矩阵R为:

0.7, 0.2, 0.05, 0.05

0.5, 0.1, 0.2, 0.2

0.6, 0.2, 0.1, 0.1

07, 0.2, 0.1, 0

假设权重为:色彩0.3,做工0.3,面料0.1,款式0.3:

A = {0.3, 0.3, 0.1, 0.3};

所以评委对这件衣服的综合评价为:

B =
AR

c代码如下:

#include "stdio.h"

#include "math.h"

#define MAX(a, b) (a>b?a:b)

#define MIN(a, b) (a<b?a:b)

void main()

{

int i, j, k;

double A[4][4] = {0.7, 0.2, 0.05, 0.05, 0.5, 0.1, 0.2, 0.2, 0.6, 0.2, 0.1, 0.1, 0.7, 0.2, 0.1, 0};

double B[4]= {0.3, 0.3, 0.1, 0.3};

double temp[4] = {0};

double Y[4];

double max, min;

for(i=0; i<4; i++)

{

for(j=0; j<4; j++)

temp[j] = MIN(B[j], A[j][i]); //模糊集中A交B

max = temp[0];

for(j=1; j<4; j++)

max = MAX(max, temp[j]);

Y[i] = max;

}

printf("综合评判为:\n");

for(i=0; i<4; i++)

printf("%4lf", Y[i]);

printf("\n");

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: