a+b+c=<100,求X=a+3*b+8*c的最大值

解决方案 »

  1.   

    如果给定条件(a>=0 ,b>=0,c>=0),那最大值是800
      

  2.   

    可能我没说清楚,我的意思是:
    a*x1+b*x2+c*x3=<100,求X=x1+3*x2+8*x3的最大值!,a>=0 ,b>=0,c>=0
    如果变成多元怎么求最大值
    a*x1+b*x2+c*x3.....=<100,求X=x1+3*x2+8*x3.....
    求一算法
      

  3.   

    x1、x2、x3的值有约束吗?x1 x2 x3 >= 0 ?
      

  4.   

    如果x1、x2、x3的值没有约束,在某些a、b、c取值下,max(x1+3*x2+8*x3)为无穷大。
      

  5.   

    可能我没说清楚,我的意思是:
    a*x1+b*x2+c*x3=<100,求X=x1+3*x2+8*x3的最大值!,a>=0 ,b>=0,c>=0
    如果变成多元怎么求最大值
    a*x1+b*x2+c*x3.....=<100,求X=x1+3*x2+8*x3.....
    求一算法 
    -----------------------------------------------------
    那就是最大值:100
    x1=100 其它为0
      

  6.   

    declare @x int,@a int,@b int,@c int,@ma int,@mb int,@mc int
    set @x=0
    set @a=0
    set @b=0
    set @c=0
    while @c<100
    begin
    while @b<100
    begin
    while @a<100
    begin
    if (@a+3*@b+8*@c)>@x
    begin
    set @x=@a+3*@b+8*@c
    set @ma=@a
    set @mc=@c
    set @mb=@b
    end
    set @a=@a+1
    end
    set @b=@b+1
    set @a=0
    end
    set @c=@c+1
    set @b=0
    set @a=0
    end
    print @ma
    print @mb
    print @mc
    print @x
      

  7.   

    上面的漏了条件  这个正确!!!!!!!!!!!!!!!!!!!!!declare @x int,@a int,@b int,@c int,@ma int,@mb int,@mc int
    set @x=0
    set @a=0
    set @b=0
    set @c=0
    while @c<100
    begin
    while @b<100
    begin
    while @a<100
    begin
    if (@a+3*@b+8*@c)>@x
    begin
    set @x=@a+3*@b+8*@c
    set @ma=@a
    set @mc=@c
    set @mb=@b
    end
    set @a=@a+1
    end
    set @b=@b+1
    set @a=0
    end
    set @c=@c+1
    set @b=0
    set @a=0
    end
    print @ma
    print @mb
    print @mc
    print @x
      

  8.   

    上面的漏了条件 这个正确!!!!!!!!!!!!!!!!!!!!!declare @x int,@a int,@b int,@c int,@ma int,@mb int,@mc int
    select @x=0,@a=0,@b=0,@c=0
    while @c<=100
    begin
    while @b<=100
    begin
    while @a<=100
    begin
    if (@a+3*@b+8*@c)>@x and (@a+@b+@c)<=100
    begin
    select @x=@a+3*@b+8*@c,@ma=@a,@mc=@c,@mb=@b
    end
    set @a=@a+1
    end
    select @b=@b+1,@a=0
    end
    select @c=@c+1,@b=0,@a=0
    end
    print @ma
    print @mb
    print @mc
    print @x
      

  9.   

    --创建测试数据
    SELECT TOP 100 IDENTITY(int, 1,1) AS a 
    INTO dbo.#
    FROM syscolumns--得到结果
    SELECT TOP 10 a.a AS a,b.a AS b,c.a AS c, a.a+3*b.a+8*c.a
    FROM # a, # b, # c
    WHERE a.a+b.a+c.a<=100
    ORDER BY a.a+3*b.a+8*c.a DESC a           b           c                       
    ----------- ----------- ----------- ----------- 
    1           1           98          788
    1           2           97          783
    2           1           97          781
    1           1           97          780
    1           3           96          778
    2           2           96          776
    1           2           96          775
    3           1           96          774
    2           1           96          773
    1           4           95          773(10 row(s) affected)
      

  10.   

    bugchen888(臭虫)  如果a+b+c=<10000  这样的条件  你还用你的方法做吗?