|
例子
|
a(5)=11,因为有11个{1,2,3,4,5}:{},{1},}2,{3},[4],{5},[2,3}、[2,5}、{3,4}、[3,5}]、[5}和[4,5]的不可分割子集。
a(7)=21:{},{1},}2,{3},[4],{5},[16},2],{2,3}、{2,5}、[2,7}、[3,4}、}3,5}和{3,7}、{4,5},{4,6}、[14,7}]、{5,6},{5,7},{6,7}。
|
|
MAPLE公司
|
总和:=进程选项记忆;局部i,m;
m: =最大值(s[]);
`如果`(m<1,{},{m,seq([i,i+m][],i=和(s减去{m})})
结束时间:
b: =proc(i,s)选项记忆;局部j,ok,t,si;
如果i<2,则为1
else si:=s联合{i};
ok:=真;
求和(si)中的j,而ok-do
对于si中的t,而okdo
如果irem(j,t)=0且t<>j,则ok:=假fi
日
od;
b(i-1,s)+`if`(ok,b(i-l,si),0)
fi(菲涅耳)
结束时间:
a: =n->`如果`(n=0,1,1+b(n,{})):
|
|
数学
|
sums[s_]:=总和[s]=模块[{m=Max[s]},
如果[m<1,{},
加入[{m},
序列@@表[{i,i+m},{i,总和[DeleteCase[s,m]]}]]
];
b[i_,s_]:=b[i,s]=模块[{ok,si,sij,sik},
如果[i<2,1,si=Union[s,{i}];
ok=真;
对于[j=1,j<=长度[sums[si]]&&ok,j++,
sij=总和[si][j]];
对于[k=1,k<=长度[si]&ok,k++,
如果[Divisible[sij,sik=si[[k]]&&sij=sik,ok=错误]]];
b[i-1,s]+如果[ok,b[i-l,si],0]
]
];
a[n_]:=a[n]=如果[n==0,1,1+b[n,{}]];
表格[打印[a[n]];a[n],{n,0,47}]
|