数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
查看: 3866|回复: 2

一正整数列满足 a1=1,a2=2,a18=2020,ak=ai+aj(1≤i<j<k,3≤k≤18),求这个数列

[复制链接]
发表于 2020-7-22 15:34 | 显示全部楼层 |阅读模式
求解这类题有什么技巧?

本帖子中包含更多资源

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

x
发表于 2020-7-24 17:32 | 显示全部楼层
本帖最后由 kaien 于 2020-7-24 17:42 编辑

该问题的一组解如下:
1=a1       
2=a2       
3=a3=a1+a2
4=a4=a1+a3
4=a5=a1+a3
8=a6=a4+a5
12=a7=a5+a6
20=a8=a6+a7
32=a9=a7+a8
52=a10=a8+a9
64=a11=a7+a10
116=a12=a10+a11
180=a13=a11+a12
296=a14=a12+a13
476=a15=a13+a14
772=a16=a14+a15
1248=a17=a15+a16
2020=a18=a16+a17

我的求解方法是通过非线性整数优化模型来计算的,非手算方法。简单来说,首先建立如下模型:
设\(a(k), k=1,\ldots,18\)为所需确定的整数变量。设\(x(k,i),k=3,\ldots,18, i=1,\ldots,k-1\)为01布尔型变量,其意义是当\(x(k,i)=1\)时则计算\(a(k)\)时取\(a(i)\)为其中的一个加数。否则,不取\(a(i)\)为其中的一个加数。

设约束条件 \[C= \begin{cases}
\sum_{i=1}^{k-1} x(k,i) = 2, k=3,\ldots,18;\\
a(k)=\sum_{i=1}^{k-1}x(k,i) \times a(i), k=3,\ldots,18;\\
a(1)=1, a(2)=2, a(18)=2020;\\
x(k,i)\in \{0,1\}, a(k)\in \mathbb{Z}_+.
\end{cases} \]
只要满足该条件的任一可行解就是原问题的解。我们可以随意的加一个目标函数如: \(f(a)=\sum_{k=1}^{18}a(k)\).
于是,需要求解的数学优化模型为:
\[ \min \{ f(a): (a,x)\in C \}.\]
这个优化问题中,存在非线性等式约束条件,变量是整数变量,所以该问题是非线性整数规划问题。可以通过相应的优化求解器求解。例如: 我使用Baron在415秒内得到全局最优解。其实上面的可行解应该是在160秒时得到的,剩下的时间是分支定界算法验证和寻找更好的最优解所花费的时间。
回复 支持 反对

使用道具 举报

发表于 2020-7-24 19:06 | 显示全部楼层
楼上 kaien 的解答很好!已收藏。
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|数学中国 ( 京ICP备05040119号 )

GMT+8, 2025-7-24 13:33 , Processed in 0.095687 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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