Java教程

动态规划(投资问题)

本文主要是介绍动态规划(投资问题),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

动态规划(投资问题)

一、问题描述:

一般性描述:设m元钱,n项投资项目,函数fi(x)表示将x元投入第i项项目所产生的效益,i=1,2,···,n;
问:如何分配这m元钱,使得投资总效益最高?
组合优化问题:假设分配给第i个项目的钱数是xi,
目标函数:max{f1(x1)+ f2(x2)+···+ fn(xn)};
约束条件:x1+x2+x3+···+xn=m,xi∈n;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NCY8uopg-1623723891072)(https://z3.ax1x.com/2021/06/07/20oewn.png)]

20o0SO.png

设计:

int maxprofit(int a[M][N],int b[M][N],int reward,int number){
	for(int i=1;i<=number;i++){
		for(int j=0;j<money;j++){
			a[i][j]=0;
			for(int k=0;k<=j;k++){
				if(a[i][j]<b[i][j]+a[i-1][j-k]){
					a[i][j]=b[i][k]+a[i-1][j-k];
				} 
			} 
		}
	}
	return a[number][reward];
}

分析

2Ha2PH.png

源码:https://github.com/Ace16602/dongtaiguihua/blob/main/动态规划.cpp

02/dongtaiguihua/blob/main/动态规划.cpp

这篇关于动态规划(投资问题)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!