本帖最后由 胡剑0227 于 2015-5-12 20:45 编辑
构思MOD函数模型,清晰函数机制...
一般涉及周期性序列时我都会立马想到MOD函数,MOD函数的作用相当广泛,但本帖重点讲对这个函数本身机制的理解。帖子后面部分也会提一下生成常用循环序 列的一般思路。
本帖的其中一个目标是通过目测,心算就能快速准确的测算返回值。为了评估效果,大家可以先下载下面的PPT测试文件,看看大家10个小题的得分和速度!有兴趣可以直接抓图PK呀,呵呵。
===========================================================================================
上传PPT文件
MOD函数心算-帖子.rar
(399.99 KB, 下载次数: 1526)
===========================================================================================
目的倒不是真的想让大家能心算MOD函数的返回值,而是培养一些感性的认识,使得可以不用每次都去工作表中执行一下才知道返回值是多少,进而熟悉这个函数的特性。只有了解一个事物我们才能更好地去使用这个事物,否则会显得陌生,心理上对陌生的东西都会有抵触,潜意识里就去回避,这不利于思路的顺畅...
好了,言归正传,我讲一下MOD函数的模型,也许其他网友也讲过了,如果是那样我就当是再重复一遍吧。我自己曾经写过一个MOD函数的帖子,但那个帖子自己不是很满意,因为追求的是生硬的技巧特性,也许也挺正确,但并不怎么好用。所以,我尝试一下跨越自己。
MOD函数,就是拿一根绳子在一个圆柱体上饶圈。具体说,MOD函数有两个参数,即=mod(number,divisor),number就是那根绳子的长度,divisor就是那个圆柱体的周长,在圆柱体上均匀刻上刻度,满刻度即周长。
以最简单的,两个参数都是正数为例,其运行机制可参考如下:将绳子的一端对准零刻度线,然后往刻度数值增大的方向绕,绕至最后绳子的另一端所对应的刻度即是MOD函数的返回值。MOD,哈哈,中间的那个字母O多像那个圆柱截面呀,那个M就好比绕了多少圈,D么就是最后余下的绳子所对应的刻度。
模型解析:
在这个模型中,MOD函数周期性的特点已经体现出来了,也很容易理解,即多绕一圈少绕一圈是无关于返回值的,关键是余下的部分。另外,MOD函数返回值符号和第二参数相同也体现出来了,因为返回值就是最后那根绳子末端所对应的刻度,于是返回值的符号是和第二参数相同的。
但实际情况是两个参数不一定都是正数,根据正负搭配总共有4种情况,这就很复杂。不过,通过分析测试也可以简化为两种情况,即两参数符号相同和两参数符号不同。于是,以上运行机制的模型可以调整如下(本帖以下所称的数值即是指绝对值,符号(正负)只是方向):
如果符号相同,那么就是从零刻度往刻度数值大的方向绕,如果方向不同就往刻度数值小的方向绕,依然是末端对准的刻度就是返回值。符号相同是种和谐,往刻度数值大的方向绕也是种和谐,这种感觉是一致的,不容易混淆了。同理,符号相异是一种别扭,往刻度数值小的方向绕也是种别扭,因此也是一一对应的。如果事物给人的感受也分阴阳,那么这里就是阴阳对应的。
具体做几个实验吧,那样就清楚了,往刻度数值小的方向绕也能比较快地在脑海中浮现出场景:
=mod(7,-4) 先不要考虑符号,眼里只有数值7,4,那么能快速得到最后那段绳子的长度 3(如果这个有问题请求助小学老师)。因为符号相反,所以往刻度小的方向绕,于是4绕过去3就剩下1了,于是4-3=1,刻度的符号是负的,于是最后就是-1.
=mod(-3.2,10)
眼里只有3.2和10,于是最后那段绳子长度就是3.2,符号不同,往数值小的方向绕,于是得到的返回值=10-3.2=6.8。
好先就这样,大家可以再试试,看是否能提高速度和准确率...
待续....关键是要在脑海中呈现这样一种递增又循环的模型...
==============================================================================================
恩,这里就讲一下循环序列的构造吧,内容相对简单的,但如果是初学,那么还是有所帮助。
循环序列,如 1,2,3,1,2,3,1,2,3;或者2,3,4,5,2,3,4,5,2,3,4,5,这里就有两个关键点:周期和初始值,这里两个序列的周期分别为3和4,初始值分别为1和2,其中周期可以由MOD函数的第二参数直接确定,于是关键就是那组长度递增的绳子...以1为单位递增,于是ROW函数是不错的选择。
第一循环序列构造如下:
=MOD(ROW(1:10)-1,3)+1
第二循环序列构造如下:
=MOD(ROW(1:10)-1,4)+2
这里有一个小小的技巧,即对ROW函数部分进行了减1处理,使得第一个MOD函数返回的循环序列初始值固定为0,这样对于周期为3的序列就成为0,1,2,0,1,2...即进入一个初始态,便于直接加上一个数字作为起始值。
于是,要生成一个循环序列就是分两步走,第一确定周期,并通过ROW函数学列减1得到一个初始态,然后加上初始值就得到对应初始值和周期的循环序列了。
==========Excel函数实战技巧精粹================= 函数公开课群 246666938,进入群以后直接在聊天界面输入 #视频1001 可以下载公开课视频,不过建议直接输入 #报名 加入组织,那样毕业时你可以豪气万丈地对我说:“胡版,我当时连公开课都没听就直接报名了!!英明呀,回想起来真是痛快!“ |