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

问题:

一个公司要创建一些发射台,每个发射台的成本是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,继续新一轮的循环,直到不能去除任何一个点,得出结果。对最后的结果进行计算,看总成本跟从收益的差值,如果为负数,那么不能创建任何点,即便最后还剩下很多点。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值