|
先谈这道余数问题。
我问的数据错序设置是针对你81个字符的公式,不是这两个,虽然你没有写出来,但我随意揣度了一个,我知道这个习惯不好。没有问题自然是最好的。
首先,你的MAX和MIN是一个意思。只是MAX时,是83160>0;MIN时,是83160<FALSE。
其次,你的公式其实就是手动计算的思路,只是还不彻底。
1. LCM(A2:K2)
人工手动计算一定是简化到LCM(G2:K2)的。
2. ROW(1:9)
这个不太合理。要么ROW(1:3),因为大了就超出五位数了;要么ROW(1:13),构成完全剩余系。
人工手动计算的直译公式,应该是,
{=LCM(G2:K2)*MATCH(1,--(MOD(LCM(G2:K2)*ROW(1:3),13)=12),)-1}
似乎比你的更短,其实我是很少看公式长短的,至少是优先级很低。竞赛版为什么求最短公式,因为要量化(高考也是如此)。凡是都有利有弊,虽然有的事情是利大于弊,但我们要知道这个利在哪里,弊在哪里,否则就是无头苍蝇。要站得更高一点看问题。在地上和在井里,虽然看到的井口是一般大小,但看到的天不一样大。
最后,我们再尝试站得更高一点。
1. 既然是电脑自动计算,当然要穷举。不是说人工手动计算没用到穷举,人工手动计算用到的是部分的穷举,先缩小范围,再穷举个ROW(1:3),减少计算量啊。计算是电脑的强项,自然要在更大范围内穷举。
2. 人工手动计算只是计算一道题,电脑自动计算应该要计算一类题。所以数据应该是灵活的,可修改的,不是hard code的。我前面提到数据很重要,不是随便说说的。(包括之前的“授之以渔而渔”,不是随意抱怨,装腔作势,无病呻吟。我发在竞赛版而没有在函数版,不是要博眼球,也不是要博取你们的共鸣、认可和赞同。而是想发给有能力给“渔民”做“渔具”的高手看,非广大“渔民”,因为这些话不适合他们。他们只管用你们做的“渔具”就好了,而“渔具”做得好不好,关键在你们。合适的话要写给合适的对象看。看来还是徒劳了!)
言归正传,我写的电脑自动计算的公式,
=MATCH(12,MMULT(--(MOD(ROW(1:99999),A2:L2)=COLUMN(A:L)*ROW(1:99999)^0-1),ROW(1:12)^0),)
当然更一般化的公式,
=MATCH(COLUMNS(A2:L2),MMULT(--(MOD(ROW(1:99999),A2:L2)=COLUMN(A2:L2)*ROW(1:99999)^0-1),ROW(INDIRECT("1:"&COLUMNS(A2:L2)))^0),)
可以不囿于五位数,不囿于这12个固定除数,可以错序,看你什么要求,用在哪个场合。公式长短不是一定的,是可以变的,不应该成为羁绊。
当然,我知道你是无聊时随便玩玩,认真地写,不是这个样子。而我是认真看帖,认真回帖,花了不少时间的。但愿不是找错了对象,发错了帖子,蹉跎了岁月。
|
评分
-
1
查看全部评分
-
|