标题:关于c语言程序问题,求各位c语言爱好者和大神们相助,具体的请看补充问题! ...
只看楼主
big棒槌
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-11-29
结帖率:0
已结贴  问题点数:20 回复次数:2 
关于c语言程序问题,求各位c语言爱好者和大神们相助,具体的请看补充问题!!万分感谢!

有这个方程x+y+z=1。规定x,y,z都是取小数点后一位的数,即x可以等于0.1,0.2,0.3到0.9。y,z和x的取值方式一样。现在求一个c语言程序,使x*0.2+y*0.5+z*0.6的值最大。(以及怎么推广到不止xyz三个数,比如有四以及更多的n个数的和等于1,那么程序又是怎么写哦。*表示乘号哈)求各位c语言爱好者即大神帮帮我,小弟万分感谢,难于言表!!
搜索更多相关主题的帖子: c语言程序 爱好者 小数点 
2012-11-29 23:29
jk_love
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:196
专家分:965
注 册:2012-10-22
得分:10 
提供一个比较笨的方法如下,看这个这么久都没人回:
还有值得推广的,因为是乘法,看系数,然后对取得数排大小就是了。


#include <stdio.h>
#define FNUM 0.000001
int main()
{
float a,b,c,x,y,z,result=0,max=0;
for(a=0.1;a<=0.9;a+=0.1)
for(b=0.1;b<=0.9;b+=0.1)
for(c=0.1;c<=0.9;c+=0.1)
{
 if( ( -FNUM<((a+b+c)-1.0) ) && ( ((a+b+c)-1.0 )<FNUM) )
    {
        result=0.2*a+0.5*b+0.6*c;
        if(max<=result)
            {
                max=result;
                x=a;
                y=b;
                z=c;
                }
        }
}
printf("max=%f x=%f y=%f z=%f\n",max,x,y,z);
}
2012-11-30 13:48
laoA
Rank: 2
等 级:论坛游民
帖 子:24
专家分:59
注 册:2012-11-18
得分:10 
数学中的线性规划问题,高中就有了、。、。、、
2012-11-30 15:08



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-389016-1-1.html




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

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