| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1069 人关注过本帖
标题:算最大利润的问题
只看楼主 加入收藏
养下就很帅
Rank: 2
等 级:论坛游民
帖 子:32
专家分:50
注 册:2007-8-3
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
算最大利润的问题
告诉我个思路就行了~ 谢谢
某公司要建8个销售点 a1到a8

a1a2选择 a3不能选择 a4a5中至少选择1个 a6a7至多选择1个 a4a5a8中至多选择两个
投资额不能超过700万 给一个投资额 获取最大利润 下面是投资盈利对照表
站点a1 a2 a3 a4 a5 a6 a7 a8
投资(万元)200 220 150 180 170 190 180 140
利润(万元/年)36 40 50 22 20 30 25 48
搜索更多相关主题的帖子: 利润 
2009-08-31 00:08
机器能
Rank: 2
等 级:论坛游民
帖 子:46
专家分:61
注 册:2009-8-24
收藏
得分:0 
没看懂题目意思~

不管黑猫白猫抓住老鼠就是好猫~
2009-08-31 13:09
cfchenchen
Rank: 2
等 级:论坛游民
帖 子:14
专家分:13
注 册:2009-6-28
收藏
得分:5 
我看这个题应是线性规划里的,你不妨用0-1规划来解一下,相信你能解出来的!!
2009-08-31 13:18
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:15 
这题没什么规律性,思路很绕,只能边想边动手,最终程序搞完了,思路还是不能很顺的说出,只能给你看代码了
程序代码:
main()
{
 int a[9],tzmun=0,lrmun=0,tzmax=0,lrmax=0,i1,i2,j1,j2,k1,m; /*a数组标记投资的销售点,tzmun用做垒加每一次投资,lrmun用做垒加利润,tzmax用做保存一种投资方案的总投资额,lrmax用做保存所有投资方案的最大利润*/
 int tz[9]={0,200,220,150,180,170,190,180,140}; /*tz数组存放投资金额*/
 int lr[9]={0,36,40,50,22,20,30,25,48};         /*lr数组存放利润金额*/
 for(i1=1;i1<=2;i1++)
   {
    tzmun=tz[i1];
    lrmun=lr[i1];
    for(i2=(i1==1)?2:1;i2>=1;i2--)
      {
       if(i2==2)
     {
      tzmun+=tz[i2];
      lrmun+=lr[i2];
     }
       for(j1=4;j1<=5;j1++)
     {
      tzmun+=tz[j1];
      lrmun+=lr[j1];
      for(j2=(j1==4)?5:4;j2>=4;j2--)
        {
         if(j2==5)
           {
        tzmun+=tz[j2];
        lrmun+=lr[j2];
           }
         for(k1=6;k1<=7;k1++)
           {
        tzmun+=tz[k1];
        lrmun+=lr[k1];
        if(j2!=5)
          {
           tzmun+=tz[8];
           lrmun+=lr[8];
          }
        if(tzmun<=700)      /*判断每种投资方案总金额是否小于或等于700*/
          if(lrmun>lrmax)   /*判断这次投资方案是否比前几次投次方案要好*/
             {
              lrmax=lrmun;  /*if语句里记下最好的投资利润、总金额和投资给哪些销售点*/
              tzmax=tzmun;
              for(m=1;m<9;m++)
                 a[m]=0;

              a[i1]=1;
              a[i2]=1;
              a[j1]=1;
              if(j1==4)a[j2]=1;
              a[k1]=1;
              if(j2!=5)a[8]=1;
             }
        tzmun-=tz[k1];
        lrmun-=lr[k1];
        if(j2!=5)
          {
           tzmun-=tz[8];
           lrmun-=lr[8];
          }
           }
         if(j2==5)
           {tzmun-=tz[j2];lrmun-=lr[j2];}
        }
      tzmun-=tz[j1];lrmun-=lr[j1];
     }
       if(i2==2)
     {tzmun-=tz[i2];lrmun-=lr[i2];}
      }
    tzmun-=tz[i1];lrmun-=lr[i1];
   }
 printf("tzmax=%d\nlrmax=%d\n\n",tzmax,lrmax);
 for(m=1;m<9;m++)
   {
    if(a[m]==1)printf("   a%d",m);
   }
 printf("\n");
 for(m=1;m<9;m++)
   {
    if(a[m]==1)printf("%5d",tz[m]);
   }
 printf("\n");
 for(m=1;m<9;m++)
   {
    if(a[m]==1)printf("%5d",lr[m]);
   }
 printf("\n\n");
}
程序算出最好的投资是:a1 a5 a6 a8   总投资金额:700万  总利润:134万
运行结果:
tzmax=700
lrmax=134
   a1   a5   a6   a8
  200  170  190  140
   36   20   30   48

努力—前进—变老—退休—入土
2009-08-31 17:16
快速回复:算最大利润的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023547 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved