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

📄 动态规划--计算最优值.txt

📁 使用C++语言编写的动态规划--计算最优值。
💻 TXT
字号:
//计算最优值
#include<iostream>
using namespace std;
void MatrixChain(int *p,int n,int  (*m)[7],int (*s)[7]);
void main()
{
	cout<<"\t\t\t*****************************"<<endl;
	cout<<"\t\t\t     动态规划--计算最优值"<<endl;
	cout<<"\t\t\t          2007.04.15"<<endl;
	cout<<"\t\t\t*****************************"<<endl;
	int SourceDataArray[7][7];
	int ObjectDataArray[7][7];
	int DataArray[7]={30,35,15,5,10,20,25};
	//for(unsigned short int displacement=;displacement<)
	
	for(unsigned short int horizonal=1;horizonal<7;horizonal++)
	{
		for(unsigned short int vertical=1;vertical<7;vertical++)
		{
			SourceDataArray[horizonal][vertical]=ObjectDataArray[horizonal][vertical]=-1;
		}
	
	}
	
	MatrixChain(DataArray,6,ObjectDataArray,SourceDataArray);
	
	for(horizonal=1;horizonal<7;horizonal++)
	{
		for(unsigned short int vertical=1;vertical<7;vertical++)
		{
			if(ObjectDataArray[horizonal][vertical]==-1)
			{
				cout<<' '<<'\t';
			}
			else
			{	
				cout<<ObjectDataArray[horizonal][vertical]<<'\t';
			}
		}
		cout<<endl;
	}
	cout<<endl<<endl;
	for(horizonal=1;horizonal<7;horizonal++)
	{
		for(unsigned short int vertical=1;vertical<7;vertical++)
		{
			if(SourceDataArray[horizonal][vertical]==-1)
			{
				cout<<' '<<'\t';
			}
			else
			{	
				cout<<SourceDataArray[horizonal][vertical]<<'\t';
			}
		}
		cout<<endl;
	}
}
void MatrixChain(int *p,int n,int (*m)[7],int (*s)[7])
{
	
	for(int i=1;i<=n;i++)
	{
		s[i][i]=m[i][i]=0;
	}
	for(int r=2;r<=n;r++)//作8次循环
	{
		
		for(int i=1;i<=n-r+1;i++)//r=2,n=7,作6次循环
		{
			
			int j=i+r-1;//j=1+2-1=2
		
		m[i][j]=m[i+1][j]+p[i-1]*p[i]*p[j];
		s[i][j]=i;
		for(int k=i+1;k<j;k++)
		{
			int t=m[i][k]+m[k+1][j]+p[i-1]*p[k]*p[i];
			
			if(t<m[i][j])
			{
				m[i][j]=t;
				s[i][j]=k;
			
			}
		
		
		}
	
		}
	}




}

⌨️ 快捷键说明

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