M函数如下:
let
fx=(x as list,y as number,z as list) =>
let
A=List.Sort(List.Select(x,each _<=y),(x)=>Number.Random()){0},
B=y-A,
C=if B=0 then z&{A} else @fx(x,B,z&{A})
in
C
in
fx({1..100},300,{})
其中第一参数指定数字范围,第二参数为要求和的结果,第三参数应该为一个{}用来盛放结果
每次刷新可以显示不同值
有兴趣的研究研究
Ntt.Docomo