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

[1stOpt] 趣味填空题之二!

[复制链接]
发表于 2010-9-14 09:02:54 | 显示全部楼层 |阅读模式 来自 北京海淀
将1至3*n的自然数不重不漏的填入下式中,使其成立

n = 1时:
  x1                     3
-------  = 1,如 ----- = 1
x2+x3               1+2

n = 2时:
  x1         x4                    1       6
------- + ------- = 1,如 ----- + ----- = 1
x2+x3   x5+x6               5+2     4+3

n最大可能值为多少?此时x(1),x(2)...x(3n)值?
发表于 2010-9-14 09:53:50 | 显示全部楼层 来自 河北廊坊
Simdroid开发平台
1# shamohu
用matlab计算
  1. clear;clc;close all
  2. n=2;
  3. nMax=3^n;
  4. all_C=nchoosek(1:nMax,6);
  5. all_A=cell(size(all_C,1),1);
  6. for i=1:length(all_A)
  7.     all_A{i}=perms(all_C(i,:));
  8. end
  9. all_A=cell2mat(all_A);
  10. all_r=all_A((abs(all_A(:,1)./(all_A(:,2)+all_A(:,3))+all_A(:,4)./(all_A(:,5)+all_A(:,6))-1)<eps),:)
复制代码

有1120种结果满足要求,太长了,所以结果放在附件中

本帖子中包含更多资源

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

×
回复 不支持

使用道具 举报

发表于 2010-9-14 10:26:43 | 显示全部楼层 来自 河北廊坊
1# shamohu
看错了,把3*n看成3^n了
所以程序修改一下

  1. clear;clc;close all
  2. n=3;
  3. nMax=3*n;
  4. all_A=perms(1:nMax);
  5. all_C=zeros(size(all_A,1),n);
  6. fz=1:3:nMax;
  7. for i=1:n
  8.     all_C(:,i)=all_A(:,fz(i))./sum(all_A(:,[fz(i)+1,fz(i)+2]),2);
  9. end
  10. all_r=all_A(abs(sum(all_C,2)-1)<eps,:);
复制代码

n=3时,有144组解
回复 不支持

使用道具 举报

 楼主| 发表于 2010-9-14 11:04:28 | 显示全部楼层 来自 北京海淀
n最大值可能为多少?
回复 不支持

使用道具 举报

发表于 2010-9-14 18:13:28 | 显示全部楼层 来自 湖南湘潭
n=7

1/(11+9)+2/(6+16)+3/(17+19)+4/(12+10)+5/(13+20)+7/(14+21)+8/(15+18) = 1;
1/(5+10)+2/(9+11)+3/(12+15)+4/(14+20)+6/(13+21)+7/(16+18)+8/(17+19) = 1;
回复 不支持

使用道具 举报

发表于 2010-9-14 20:43:36 | 显示全部楼层 来自 湖南湘潭
用1stopt编程,代码如下,很简洁明了。

  1. Constant n = 7;
  2. Parameter x(3*n) = [ 1, 3*n, 0 ];
  3. Exclusive = True;
  4. Function
  5.     Sum(i = 0 : n - 1)(x[ 3*i + 1 ]/(x[ 3*i + 2 ] + x[ 3*i + 3 ])) - 1;
复制代码
另外,shamohu看一看,用循环赋值求解(从n=2算到n=7)时程序什么地方出错?(3.0版)
loopconstant或varconstant都出错,手册又太粗糙了!不知道新版会不会有所进步。

  1. LoopConstant n = [1:1:7];
  2. Parameter x(3*n) = [ 1, 3*n, 0 ];
  3. Exclusive = True;
  4. Function
  5.     Sum(i = 0 : n-1)(x[ 3*i + 1 ]/(x[ 3*i + 2 ] + x[ 3*i + 3 ])) - 1;
复制代码

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2010-9-21 09:55:30 | 显示全部楼层 来自 北京海淀
试了下,1stOpt似乎不支持动态定义参数,因此第二段代码写的没错,但无法运行。
回复 不支持

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-7 23:38 , Processed in 0.036255 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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