标题:5羊4犬3鸡2兔....穷举 求羊值多好钱?
只看楼主
粉jj
Rank: 2
等 级:论坛游民
威 望:1
帖 子:123
专家分:82
注 册:2011-3-8
结帖率:85.11%
已结贴  问题点数:10 回复次数:22 
5羊4犬3鸡2兔....穷举 求羊值多好钱?
穷举法求羊值多少钱的算法,有没有人分析一下,为什么要小于200?有没有运算量小点儿的??
今有5羊4犬3鸡2兔值钱1496,4羊2犬6鸡3兔值钱1175,3羊1犬7鸡5兔值钱958,2羊3犬5鸡1兔值钱861,求羊值多少钱?


main()
{
int i,j,k,h;
for (i=0;i<200;i++)
{
for (j=0;j<200;j++)
{
  for (k=0;k<200;k++)
  {
   for (h=0;h<200;h++)
   {
    clrscr();
    printf("%5d %5d %5d %5d",i,j,k,h);
    if(5*i+4*j+3*k+2*h==1496)
     if((4*i+2*j+6*k+3*h==1175) &&
      (2*i+3*j+5*k+h==861)&&(3*i+1*j+7*k+5*h==958))
     {printf("the sheep is:%d",i);break;}
   }
  }
}
}
getch();}


上述代码有问题。我让他运行了一天二夜才出个 199 199 199 199,头痛。。。。
搜索更多相关主题的帖子: 200 
2011-03-31 21:42
ebao
Rank: 2
来 自:杭州
等 级:论坛游民
帖 子:33
专家分:66
注 册:2011-3-9
得分:1 
有个帖子算钱的好像也这样,循环变量没有归0;
只循环200应该不对吧,羊的循环至少要有1496/5+1次.
我代码就一个结果,不知道对错:
程序代码:
#include <stdafx.h>
#include <stdio.h>
void main()
{
    for(int i=0;i<300;i++)
    {
        for(int j=0;j<300;j++)
        {
            for(int k=0;k<140;k++)
            {
                for(int l=0;l<200;l++)
                {
                    if(5*i+4*j+3*k+2*l==1496 && 4*i+2*j+6*k+3*l==1175
                        && 3*i+1*j+7*k+5*l==958 && 2*i+3*j+5*k+1*l==861)
                        printf("sheep:%d  dogs:%d  chicken:%d  rabbits:%d\n",i,j,k,l);
                }
            }
        }
    }
}
2011-04-07 16:39
xiaoqi0110
Rank: 2
等 级:论坛游民
帖 子:55
专家分:52
注 册:2010-8-15
得分:1 
为什么要小于300呢?好没理由吧!!!
2011-04-07 17:13
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
得分:1 
int a,b,c,d;
for(a=1;a<250;a++)
for(b=1;b<250;b++)
for(c=1;c<250;c++)
for(d=1;d<250;d++)
{if((5*a+4*b+3*c+2*d==1496)&&(4*a+2*b+6*c+3*d==1175)&&(3*a+1*b+7*c+5*d==958)&&(2*a+3*b+5*c+1*d==861))
printf("%d,%d,%d,%d\n",a,b,c,d);}
177,121,23,29
2011-04-07 17:17
njkido
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:224
专家分:1184
注 册:2011-3-8
得分:1 
穷举效率太低了
用线性代数的方法吧

5,4,3,2,     x0      1496
4,2,6,3,     x1   =  1175   
3,1,7,5,     x2      958
2,3,5,1      x3      861


AX=B => X=B*inv(A)
2011-04-07 17:34
ebao
Rank: 2
来 自:杭州
等 级:论坛游民
帖 子:33
专家分:66
注 册:2011-3-9
得分:0 
回复 3楼 xiaoqi0110
5羊4犬3鸡2兔值钱1496,
那么羊最值钱的时候就是其他3个最不值钱的时候(其他3个为0)
羊最贵1496/5
2011-04-07 17:47
cacker
该用户已被删除
得分:1 
提示: 作者被禁止或删除 内容自动屏蔽
2011-04-07 18:10
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
得分:1 
羊的最高价格:
1496 / 5 = 299
1175 / 4 = 293
958 / 3  = 319
861 / 2  = 430
取最小值,应为293
2011-04-07 21:12
ebao
Rank: 2
来 自:杭州
等 级:论坛游民
帖 子:33
专家分:66
注 册:2011-3-9
得分:0 
回复 7楼 cacker
对唉,,,没考虑仔细了,,感谢纠正,,,LZ无视我的代码啊
2011-04-07 21:28
清风拂晓
Rank: 8Rank: 8
来 自:火星
等 级:蝙蝠侠
威 望:1
帖 子:356
专家分:889
注 册:2010-8-13
得分:1 
这题能不能找系数的最小公倍数 然后一个未知数一个的消 这样应该比较快吧 穷举在普通计算机中不适合那么大的数字吧

清风拂暮(木)
2011-04-07 23:19



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




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

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