算法:如何投资才能获利最大

问题:

一个公司要创建一些发射台,每个发射台的成本是P,发射台共N个

经过调查,得出有M个用户群,我们可以给公司代理收益,但取决与如下数据,一个用户群需要A,B两个转发的才能给公司代理C的利用,A、B是N中的任何一点

要求帮公司计算如何投资才能获利最大。

数据如下:P={1,2,3……N}

 M个用户群的数据如下

A B C

1 2 3

2 3 1

1 4 2

……

算法:

这个问题看来比较复杂,有的人用组合排列,就M组数据进行组合计算,个人认为不好

我想到的一种算法,不知是否是最简单的

将M组数据填充到一个N*N的二维数组中,N即为发射点数,M数据中的A、B对应二位数组的位置,C就作为这个位置的值,这样就将问转化成一个带权的图(用二维数组表示)

再一列一列地计算,计算一个发射点涉及的所有利益,再将这个利益和该点的成本比较,如果成本比当前点涉及的大,那么这个点肯定是赚不到钱的,将这个点去掉,同时将跟这个点有关的连线去掉,也就是将数组中这个点的行数据全部设为0,继续新一轮的循环,直到不能去除任何一个点,得出结果。对最后的结果进行计算,看总成本跟从收益的差值,如果为负数,那么不能创建任何点,即便最后还剩下很多点。

后来跟同时讨论如果一点它涉及的利益跟成本相同,那么到底应该是去除还是保留,当时争议比较大,后来我自行验证,感觉去除不去除都没有关系,不去除能更能快得出结果,但这个可能是错的,要通过总结果判断,如果去除,比较慢得到结果,但数据比较准确。

阅读更多
文章标签: 算法 c
个人分类: 算法
想对作者说点什么? 我来说一句

动态规划算法实现投资问题

2011年05月27日 206KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭