奋斗从博士毕业开始分享 http://blog.sciencenet.cn/u/xuqingzheng 西安通信学院讲师

博文

关于穷举法的一个编程问题

已有 3807 次阅读 2015-5-6 16:51 |个人分类:个人论文|系统分类:科研笔记

变量:m个正整数

目标函数:m个正整数的乘积最大

约束条件:m个正整数的和,等于100

基本要求:m的值由人工临时输入,也就是m的大小可变

特殊要求:不要以数学推导出来的结论为支撑来编程,就直接用穷举法或简单变形来编程(语言不限,C、MATLAB等)


如果m是固定的,没有难度。比如,m=3

out = 0;

for d1=1:100

   for d2=1:100-d1

       for d3=1:100-d1-d2

           d = [d1 d2 d3];

           temp = prod(d);

           if temp>out

               out = temp;

           end

      end

   end

end

out    % 输出最大值


现在的问题是,如果m是变化的,不知道需要写多少层的for循环?


欢迎高手打擂



https://wap.sciencenet.cn/blog-209167-887834.html

上一篇:2015年度国家自然科学基金项目开始申请
下一篇:请数学教授帮个忙

0

该博文允许注册用户评论 请点击登录 评论 (1 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2022-7-1 06:10

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部