js不懂,有没有直接用M语言解的?我用acc+transmany写了一个,效率比楼主的低了很多,请帮忙看看是否能优化。
(mylist,sum,偏差,n)=>
let
list={0..List.Count(mylist)-1},
k2 = List.Accumulate(list,{},(r,e)=>r & List.Transform( List.Skip(list,e+1),each {list{e},})),
自定义1 =List.Buffer( List.Accumulate({1..n-2},k2,(r,e)=> List.TransformMany( r, each List.Skip(list,List.Last()+1),(x,y)=>x & {y}))),
组合=List.Buffer(List.Transform(自定义1,each List.Transform(,(x)=>mylist{x}))),
条件=List.Select(组合,each if 偏差=0 then List.Sum()=sum else Number.Abs(List.Sum()-sum)<=偏差),
结果=List.Transform(条件,each Text.Combine(List.Transform(,Text.From),","))
in
结果
/n小于3的话默认取2个数值/
专栏文章
没有任何数据~~
最近问题
没有任何数据~~