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

📄 mdm.cpp

📁 一个用于模糊聚类的算法。源码是基于VC平台下的Win32 console application
💻 CPP
字号:
// MDM.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "stdio.h"
#include "math.h"
int i,j,x,a,b;

float  max(float u,float v)

{
	float  w;
	w=u>v?u:v;
	return (w);
}

float  min(float p,float q)
{
	float r;
	r=p<q?p:q;
	return (r);
}

float integration(float E[100][100],float F[100][100])
{
	float z=0;
	for (i=1;i<=a;i++)
	{
		for (j=1;j<=a;j++)
		{
			z=min(E[i][j],E[j][i]);
			E[i][j]=max(E[i][j],z);
			if(E[i][j]!=F[i][j])
				x=0;
		}
	}
	return(E[100][100]);
}

void main()
{
	int m,n,k;
	float M=0,N=0;
	printf ("输入导弹种类数目,m=");
    scanf ("%d\n",&m);
    printf ("输入导弹参数数目,n=");
    scanf ("%d\n",&n);

    float A[100][100], B[100][100],C[100][100],O[100][100];
    for (a=1;a<=m;a++)
	{
		for (b=1;b<=n;b++)
		{
			printf ("请输入第%d种导弹的第%d种参数",a,b);
            scanf ("%f\n",&A[a][b]);
		 }
	 }
       

     for (i=1;i<=a;i++)
	 {
		 for (j=1;j<=a;j++)
		 {
			 if(i==j)
				 B[i][j]=1;
			 else
			 {
				 for(k=1;k<=n;k++)
				 {
					 N=N+A[i][k]*A[j][k];
                     M=max(M,N);
                     O[i][j]=N;
				  }
			 }
		 }
	 }
	 for(i=1;i<=a;i++)
	 {
		 for (j=1;j<=a;j++)
		 {
			 if(i!=j)
				 B[i][j]=O[i][j]/M;
		 }
	 }
	 x=0;
	 while(x++==0)
	 {
		 for(i=0;i<100;i++)
			 for(j=0;j<100;j++)
				 B[i][j]=integration(B,B);
	 }
	 int p=0;
	 float t;
	 while(p=0)
	 {
		 printf ("请输入阈值,t=");
		 scanf ("%f\n",&t);             
		 for (i=1;i<=a;i++)
		 {
			 printf ("/n");
			 for (j=1;j<=a;j++)
			 {
				 if(B[i][j]>=t)
					 C[i][j]=1;
				 else
					 C[i][j]=0;
			 }
			 printf("%d",C[i][j]);
		 }
		 char character;
		 printf("是否继续截割?(y/n)");
		 scanf("%c",&character);
		 if(character=='y')
			 p=0;
		 else 
			 p=1;
	 }
}

⌨️ 快捷键说明

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