本帖最后由 jsxjd 于 2013-11-16 20:31 编辑
感觉本题应该有木条长度的限制(100以内的整数),否则难于控制误差。
先规规矩矩上一个,100以内的整数不会有误差,郁闷的是这个公式中 Index 的列参数无法省略,而换成其他情况是可以的。
257 Chars- =INDEX(IF({1,0},A2:A23,RIGHT(SMALL(ROW(1:22)/1%%+B2:E23,ROW(1:22)*4-2)*SMALL(ROW(1:22)/1%%+B2:E23,ROW(1:22)*4-1),4)/2),-MOD(LARGE(RIGHT(SMALL(ROW(1:22)/1%%+B2:E23,ROW(1:22)*4-2)*SMALL(ROW(1:22)/1%%+B2:E23,ROW(1:22)*4-1),4)/1%-ROW(1:22),ROW()-1),-100),{1,2})
复制代码 下面这个没考虑浮点运算引起的误差: 199 Chars- =INDEX(IF({1,0},A2:A23,10^MMULT(LOG(SUBTOTAL({4,5,6},OFFSET(B1:E1,ROW(1:22),))),{-1;-1;1})/2),MOD(SMALL(ROW(1:22)-10^MMULT(LOG(SUBTOTAL({4,5,6},OFFSET(B1,ROW(1:22),,,4))),{-1;-1;1})/1%,ROW()-1),100))
复制代码 以下为了防止木条长度为整数时结果可能产生误差,加了一层 Round : 207 Chars- =INDEX(IF({1,0},A2:A23,ROUND(10^MMULT(LOG(SUBTOTAL({4,5,6},OFFSET(B1:E1,ROW(1:22),))),{-1;-1;1}),)/2),MOD(SMALL(ROW(1:22)-10^MMULT(LOG(SUBTOTAL({4,5,6},OFFSET(B1,ROW(1:22),,,4))),{-1;-1;1})/1%,ROW()-1),100))
复制代码 |