ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: northwolves

[Excel 程序开发] [开_106]已结]一道小学题目

[复制链接]

TA的精华主题

TA的得分主题

发表于 2007-1-13 19:00 | 显示全部楼层

试了,试验过程就不写了

TA的精华主题

TA的得分主题

发表于 2007-1-14 15:27 | 显示全部楼层

这是考高数啊,真晕哪是小学题!

TA的精华主题

TA的得分主题

发表于 2007-1-14 17:22 | 显示全部楼层

接下来我介绍一下几种失败的探索过程:

1、为了构造{1;6;10;13;15},我想出了下列公式::=MATCH(A1,6.5*ROW(1:5)-ROW(1:5)^2/2-5),可惜公式实在太长,还不如山菊花老师那样直接来得简单;

2、一种方法失败很不甘心,于是又找到了一个通项公式an=16-(7-n)*(6-n)/2,由此解得n=6.5-SQRT(32.25-2*an),简化后有公式=INT(6.5-SQRT(32-2*A1)),还有=5-INT(SQRT(32-2*D1)-0.5),可惜都还是字符太长,又失败了。

3、想探索一个公式,当A1=1、2、3、4、5时为1位数,A1=6,7,8,9时为2位数,……,A1=15时为5位数,然后用INT和LEN解决又没有成功……

[此贴子已经被作者于2007-1-14 20:40:20编辑过]

TA的精华主题

TA的得分主题

发表于 2007-1-14 22:22 | 显示全部楼层
QUOTE:
以下是引用liujy在2007-1-14 17:22:11的发言:

接下来我介绍一下几种失败的探索过程:

1、为了构造{1;6;10;13;15},我想出了下列公式::=MATCH(A1,6.5*ROW(1:5)-ROW(1:5)^2/2-5),可惜公式实在太长,还不如山菊花老师那样直接来得简单;

2、一种方法失败很不甘心,于是又找到了一个通项公式an=16-(7-n)*(6-n)/2,由此解得n=6.5-SQRT(32.25-2*an),简化后有公式=INT(6.5-SQRT(32-2*A1)),还有=5-INT(SQRT(32-2*D1)-0.5),可惜都还是字符太长,又失败了。

3、想探索一个公式,当A1=1、2、3、4、5时为1位数,A1=6,7,8,9时为2位数,……,A1=15时为5位数,然后用INT和LEN解决又没有成功……


继续努力,呵呵,继续关注答案中......

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-1-15 01:33 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

总结:

本题难度不大,但是由于长度的限制,VLOOKUP,MATCH函数便无用武之地,所以只能另寻思路。

 

 


如上图所示,函数稳中有升,平台部分可以使用INT()函数解决,上升部分按趋势判断,类似指数函数或幂函数。

由于5^(1/15)=1.113264,构造函数如下:

y=int(a^x+b)

y=int(a^x/b)

y=int(1+x^a/b)

a,b系数待定。

编程序求解如下:

Sub Solve()
Dim F1, F2(14) As Boolean, A As Single, B As Single, I As Byte, match As Boolean
F1 = Array(1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5)
For A = 1 To 2 Step 0.01
For B = 0 To 2 Step 0.01
match = True
For I = 0 To 14
F2(I) = Int(A ^ (I + 1) + B) = F1(I)
If F2(I) = False Then match = False: Exit For
Next
If match = True Then Debug.Print "=INT(" & Round(A, 2) & "^A1+" & Round(B, 2) & ")"
Next
Next

For A = 1 To 2 Step 0.01
For B = 0.01 To 2 Step 0.01
match = True
For I = 0 To 14
F2(I) = Int(A ^ (I + 1) / B) = F1(I)
If F2(I) = False Then match = False: Exit For
Next
If match = True Then Debug.Print "=INT(" & Round(A, 2) & "^A1/" & Round(B, 2) & ")"
Next
Next

For A = 1 To 2 Step 0.01
For B = 1 To 100
match = True
For I = 0 To 14
F2(I) = Int((I + 1) ^ A / B + 1) = F1(I)
If F2(I) = False Then match = False: Exit For
Next
If match = True Then Debug.Print "=INT(1+A1^" & Round(A, 2) & "/" & Round(B, 2) & ")"
Next
Next

End Sub

返回:

=INT(1.11^A1+0.22)
=INT(1.11^A1+0.23)
=INT(1.11^A1+0.24)
=INT(1.11^A1+0.25)
=INT(1.11^A1+0.26)
=INT(1.11^A1+0.27)
=INT(1.11^A1+0.28)
=INT(1.11^A1+0.29)
=INT(1.11^A1+0.3)
=INT(1.11^A1+0.31)
=INT(1.12^A1+0.03)
=INT(1.12^A1+0.04)
=INT(1.12^A1+0.05)
=INT(1.12^A1+0.06)
=INT(1.12^A1+0.07)
=INT(1.12^A1+0.08)
=INT(1.12^A1+0.09)
=INT(1.12^A1+0.1)
=INT(1.1^A1/0.81)
=INT(1.1^A1/0.82)
=INT(1.1^A1/0.83)

=INT(1.11^A1/0.88)
=INT(1.11^A1/0.89)
=INT(1.11^A1/0.9)
=INT(1.11^A1/0.91)
=INT(1.11^A1/0.92)
=INT(1.11^A1/0.93)
=INT(1.12^A1/0.98)
=INT(1+A1^1.4/11)
=INT(1+A1^1.43/12)
=INT(1+A1^1.44/12)
=INT(1+A1^1.46/13)
=INT(1+A1^1.47/13)
=INT(1+A1^1.49/14)
=INT(1+A1^1.5/14)
=INT(1+A1^1.52/15)
=INT(1+A1^1.53/15)
=INT(1+A1^1.55/16)

找出其中比较短的,如上红色标识

=INT(1.11^A1/0.9) 也可写为: =INT(1.1*1.11^A1) 长度一样。

一道小学题目

一道小学题目

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-1-15 10:48 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
QUOTE:
以下是引用andysky在2007-1-12 8:34:28的发言:

LEFT(112^A1)+(A1=6)

19个字符


可简化为:

LEFT(111^A1/9)

TA的精华主题

TA的得分主题

发表于 2007-1-15 16:51 | 显示全部楼层
QUOTE:
以下是引用northwolves在2007-1-15 10:48:00的发言:

可简化为:

LEFT(111^A1/9)

northwolves斑竹锲而不舍的钻研精神令人感到敬佩!吾辈学习了。
[此贴子已经被作者于2007-1-15 16:52:43编辑过]

TA的精华主题

TA的得分主题

发表于 2007-1-15 16:55 | 显示全部楼层
QUOTE:
以下是引用liujy在2007-1-14 17:22:11的发言:

接下来我介绍一下几种失败的探索过程:

1、为了构造{1;6;10;13;15},我想出了下列公式::=MATCH(A1,6.5*ROW(1:5)-ROW(1:5)^2/2-5),可惜公式实在太长,还不如山菊花老师那样直接来得简单;


构造{1;6;10;13;15}:16-(6-ROW(1:5))*(8-ROW(2:6))/2,西格马三角形的变形。

TA的精华主题

TA的得分主题

发表于 2007-1-15 17:32 | 显示全部楼层
QUOTE:
以下是引用chrisfang在2007-1-15 16:55:44的发言:

构造{1;6;10;13;15}:16-(6-ROW(1:5))*(8-ROW(2:6))/2,西格马三角形的变形。

谢谢chrisfang斑竹指点!受教了。

TA的精华主题

TA的得分主题

发表于 2007-1-16 01:41 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-28 08:19 , Processed in 0.043097 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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