找回密码
 注册
Simdroid-非首页
查看: 99|回复: 2

【共享】711连锁店问题的计算机求解(优化/整数解)[有代码]

[复制链接]
发表于 2010-8-23 17:18:38 | 显示全部楼层 |阅读模式 来自 河北廊坊
本帖最后由 messenger 于 2010-8-25 12:54 编辑

原来的问题比较长,简化就是求解
x+y+z+t=711
x*y*z*t=7.11e8
的整数解
我在一本书中看到了比较巧妙的解法,但比较麻烦
我用计算机的优势来计算这道题,结果很快就算出来了,如果大家有什么好的思考可以一起讨论
程序如下,如果对程序优化的话,应该速度更快

  1. clear;clc;close all
  2. tic;
  3. for i=1:711
  4.     for j=i:711
  5.         for k=j:711
  6.             y=abs(7.11e8-prod([[i j k],711-sum([i j k])]));
  7.             if y<eps
  8.                 ok=[i j k 711-sum([i j k])];toc;
  9.                 return
  10.             end
  11.         end
  12.     end
  13. end
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评分

1

查看全部评分

发表于 2010-8-23 18:12:11 | 显示全部楼层 来自 湖南湘潭
Simdroid开发平台
试试下面的代码:
Elapsed time is 0.198607 seconds.
(Celeron(R) CPU 2.66G   760MB)

[120   125   150   316 ]

  1. clear;
  2. clc;
  3. close all
  4. tic;
  5. for i=1:711
  6.     for j=i:711-i
  7.         for k=j:711-i-j
  8. %             m = 711-i-j-k;
  9.             if i*j*k*(711-i-j-k) == 7.11e8
  10.                 ok = [i,j,k,711-i-j-k];
  11.                 toc;
  12.                 return;
  13.             end
  14.         end
  15.     end
  16. end
复制代码

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2010-8-24 08:06:33 | 显示全部楼层 来自 河北廊坊
2# lin2009
谢谢,算法的一小步,效率一大步啊,
我运行了
Elapsed time is 0.547510 seconds.
再次感谢
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-6 19:21 , Processed in 0.045047 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表