ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[Excel 函数与公式] [72期]哪些灯亮着?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-3-24 20:36 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
只能把“工具-选项-零值”关掉了!120字符,待优化。首次参加,看来1个技术分也是不好拿的呀!

[ 本帖最后由 Cellfarmer 于 2011-4-9 09:38 编辑 ]

本帖子中包含更多资源

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

x

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-3-24 20:55 | 显示全部楼层
据说很简单,至于原理,世界有公认的定律。
=IF(ROW()>17,"",ROW(A1)^2)

TA的精华主题

TA的得分主题

发表于 2011-3-24 21:28 | 显示全部楼层
选中B2:B30,输入
=TEXT(SMALL(IF(-1^MMULT(N(MOD(ROW(1:256),COLUMN(1:1))=0),ROW(1:256)^0)=1,999,ROW(1:256)),ROW()-1),"[>256]g")
多单元格数组。
这是一笔一划做的,字符108个,能取巧的话,B2中输入
=TEXT(ROW(A1)^2,"[>256]g")
下拉,从效果上看也能达到目的,就是好象不符合最后那行大字体现解题思路的要求。
还是这样吧,B2
=TEXT(SMALL(IF(ISERR(FIND(".",ROW($1:$256)^(1/2))),ROW($1:$256),999),ROW()-1),"[>256] ;0")
数组输入,下拉。

[ 本帖最后由 山桑弓 于 2011-3-26 20:15 编辑 ]

本帖子中包含更多资源

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

x

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-3-24 22:07 | 显示全部楼层
好久不来了,凑个热闹.


思路:
1.要知道灯的状态,就是要知道这个灯被开关了是奇数次还是偶数次,亮着的灯一定是奇数次.

2.某编号的灯的开关次数就是这个数有多少个约数.

3.所以本题归结为计算某个数约数个数的算法问题,即是算法题.

4.某个数如果不是完全平方数,那么这个数的约数是偶数,完全平方数的约数个数是奇数.

5.所以1-256内是完全平方数编号的就是亮着的灯.即求出1-256内完全平方数即可.

这是因为:约数就是2个数的积等于这个数,如果不是完全平方数 那么,他的约数就肯定是2的倍数.而如果这个数是完全平方数,虽然他的约数总的也是2的倍数 但是,他有2个数是相等的 即他的开方的那个数.如 16的开方数是4,他的总的约数有1 2 4 4 8 16(1*16,2*8,4*4),共有6个约数,有2数是相同的,所以,他的约数共有6-1=5个,即为奇数.

本题答案:
下拉普通公式26个字符:
=TEXT(ROW(A1)^2,"[<257];")

多单元格数组公式43个字符:
=TEXT(SMALL(ROW(1:29)^2,ROW()-1),"[<257];")

下面附一个硬算的公式(长70),即算出完全平方数(上面2个公式是直接使用完全平方数):
=TEXT(1/SMALL(IF(LEN(ROW(1:256)^0.5)>2,1,-1/ROW(1:256)),ROW()-1),";0")


再附一个计算出开关次数的公式(长95):
=TEXT(1/SMALL(-1^MMULT(N(MOD(ROW(1:256),COLUMN(1:1))=0),ROW(1:256)^0)/ROW(1:256),ROW()-1),";0")


附,约数个数及约数之和求法,供对算法感兴趣的参考:
16=2x2x2x2=(2^4)
所以16约数的个数:(1+4)=5
所有约数的和:(2^0+2^1+2^2+2^3+2^4)=31

240=2x2x2x2x3x5=(2^4)x3x5
所以240约数的个数:(1+4)(1+1)(1+1)=20
所有约数的和:(2^0+2^1+2^2+2^3+2^4)*(3^0+3^1)*(5^0+5^1)=(1+2+4+8+16)(1+3)(1+5)=744
解释:240的质因数有2,3和5 ,即240的约数由质因数2,3,5构成,其中因数2可能出现0个,1个,2个,3个,4个,共5种情况;因数3可能出现0个,1个,共2种情况;因数5可能出现0个,1个,共2种情况。所以,240的约数个数为5x2x2=20个

1998=2x3x3x3x37 =2^1x3^3x37
约数有:(1+1)x(3+1)x(1+1)=16个
约数和:(2^0+2^1)*(3^0+3^1+3^2+3^3)*(37^0+37^1)=4560

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-3-25 00:51 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
前面的灯是否开着已经确定了,与总灯数无关。。。即满足平方的就是亮着的。。。
=TEXT(ROW(A1)^2,"[<257];")  
只需要将256改为灯数即可
验证1-400个灯剩余亮灯情况。


分析:
其实归根到底是个约数的问题,即如果这盏灯(或者这个数)能有几个约数,即相当于按几次开关。譬如12,在有1这个约数的同时必然有一个12这个约数(1X12,3X4,2X6)。即约数总是成对的,除非该数为平方得来,如25=(5X5 1X25),由于5和5重叠导致约数只有3个,为奇数,则该灯亮。

按部就班的话,只能写到110个字符。。。。。说啥都减不掉两个字符。。。。抑郁。。。
=TEXT(SMALL(IF(MOD(MMULT(N(MOD(ROW(1:256),COLUMN(1:1))=0),ROW(1:256)^0),2),ROW(1:256),8^8),ROW()-1),"[<257];")

[ 本帖最后由 涅磐86970 于 2011-3-27 19:02 编辑 ]

本帖子中包含更多资源

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

x

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-3-25 01:35 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
B1=MOD(SUM(--(MOD(ROW(),ROW(A$1:A1))=0)),2)
数组公式
解题思路:每个人只能拨动是自己编号倍数的开关,反过来说,每个开关只能被小于或等于自己编号整除的相应编号的人员拨动。实际上就是求1-256每个数的因子的个数,如果因子的个数是单数,那么开关最后就是亮着的,双数就是被关着的。

没看清楚题意,重新来:
=SMALL(MOD(MMULT(N(MOD(ROW($1:$256),COLUMN(1:1))=0),ROW($1:$256)^0),2)*ROW($1:$256),ROW(241:241))

=SMALL(IF(MOD(MMULT(N(MOD(ROW($1:$256),COLUMN(1:1))=0),ROW($1:$256)^0),2)=1,ROW($1:$256),""),ROW(1:1))

=SMALL(MOD(MMULT(N(MOD(ROW(A1:A$256),COLUMN(1:1))=0),ROW($1:$256)^0),2)*ROW(A1:A$256),241)

[ 本帖最后由 topyuyang 于 2011-3-30 15:28 编辑 ]

TA的精华主题

TA的得分主题

发表于 2011-3-25 07:48 | 显示全部楼层
投机取巧一个

本帖子中包含更多资源

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

x

TA的精华主题

TA的得分主题

发表于 2011-3-25 09:02 | 显示全部楼层
本题是筛选1到256中的有奇数个不重复因数的数:
B2:B30=TEXT(SMALL(IF(MOD(MMULT(-(MOD(ROW(1:270),COLUMN(1:1))=0),1^ROW(1:256)),2),ROW(1:270)),ROW()-2),"[<257]0;")
多单元格数组公式,有107个字符。
以下公式为75字符:
B2=TEXT(SMALL(IF(MOD(COLUMN(1:1)^0.5,1),999,COLUMN(1:1)),ROW(A1)),"[<257]0;")
第二个公式会有争议,这是好事,有关的算术原理不是人人可以理解的,仅作一简要说明:
进一步说,如果原理和说明是正确的,这个27字符的普通公式也是正确的:
B2=TEXT(ROW(A1)^2,"[<257]0;")
楼主可能是需要类似这样的公式,真是舍近求远啊:
B2=TEXT(SMALL(IF(MOD(FREQUENCY(ROW($1:270)*COLUMN(1:1),ROW($1:270)),2),ROW($1:271)),ROW(A1)),"[<257]0;")

[ 本帖最后由 wddn 于 2011-3-28 08:50 编辑 ]

本帖子中包含更多资源

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

x

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-3-25 09:14 | 显示全部楼层

我只做出答案。

公式还不懂。 还在摸索。

本帖子中包含更多资源

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

x

TA的精华主题

TA的得分主题

发表于 2011-3-25 09:23 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
呵呵,题目变了,原可没要求过程。换一个想法,如果一个自然数的因子数量是奇数个,那么这个数肯定是存在一个自然数,它的平方等于这个数。那么这道题的答案便是:1^2、2^2、3^2......,所以在改题目之前不能说17楼不对吧?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-25 19:51 , Processed in 0.043404 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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