我插一句,我们以前做数学题经常用的方法就是倒推法,呵呵。把要的结果分解,然后进行倒推,往往得到想要的结果,比如你要生成{1,0,0,0;-1,1,0,0;-1,-1,1,0;-1,-1,-1,1}这样的内存数组,那么就要对结果进行解,即{1-0,0,0,0;0-1,1-0,0,0;0-1,0-1,1-0,0;0-1,0-1,0-1,1-0},然后拆分,
{1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1}-{0,0,0,0;1,0,0,0;1,1,0,0;1,1,1,0}
为了方便说明用X1代表第一个数组,X2代表第二个内存数组,
要得出第一个数组,就要考虑Excel中数组的运算规则了,Excel中,运算一般是先行后列,那么要得到X1,可以考虑Row(1:4)=Column(A:D),row(1:4)生成垂直数组,即4*1列的数组,column(A:D)生成水平数组,即1*4的数组,那么两者相比较,根据规则,可以生成4*4的内存数组,得到X1。
X2,相反可以用row(1:4)<column(A:D)来生成,具体运算过程自己考虑,如果想清楚了,收获很大哦。
呵,另外谢谢版主这么好的解释,不过我工作中用不上这么复杂的东西,呵呵。
可能有人问,上面数组变化干吗用的?当然是用来变换数组喽,比如内存数组累加生成新的数组,递减生成新的数组。
上面只提供一个解题的思路,并不是楼主出的题目的解决办法。
其实说白了,Excel中就是要根据结果,构造各种条件,当然不同水平的人可能构造出来的条件是不同的,这取决于你的函数与公式基础,对函数的熟悉程度,你的思维方式等等。
[ 本帖最后由 jackeroo 于 2009-5-9 13:48 编辑 ] |