稍微修改后高效一些的代码
- S(K,n)=
- {
- local(V,L,s,R);
- L=K*n;
- V=matrix(K,L);
- R=vector(n);
- V[1,1]=1;
- R[1]=0;
- for(u=2,2*n-1,
- for(h=1,K-1,
- for(v=1,L,
- s=V[K+1-h,v];
- if(v>u,s=s+V[K-h,v-u]);
- V[K+1-h,v]=s
- )
- );
- V[1,u]=1;
- if(bitand(u,1)==1,
- s=(u+1)/2;
- R[s]=V[K,K*s]
- )
- );
- R
- }
复制代码 (19:14) gp > S(8,100)
%6 = [0, 0, 0, 0, 1, 13, 73, 289, 910, 2430, 5744, 12346, 24591, 46029, 81805, 1
39143, 227930, 361384, 556834, 836618, 1229093, 1769773, 2502617, 3481445, 47715
08, 6451232, 8614108, 11370764, 14851235, 19207395, 24615603, 31279561, 39433366
, 49344790, 61318804, 75701312, 92883137, 113304279, 137458401, 165897591, 19923
7422, 238162256, 283430856, 335882312, 396442239, 466129301, 546062077, 63746621
7, 741681952, 860171966, 994529582, 1146487322, 1317925859, 1510883299, 17275648
63, 1970352985, 2241817760, 2544727816, 2882061630, 3257019208, 3673034221, 4133
786599, 4643215521, 5205532877, 5825237216, 6507128110, 7256321012, 8078262628,
8978746723, 9963930445, 11040351191, 12214943919, 13495059014, 14888480710, 1640
3445986, 18048664034, 19833336311, 21767177085, 23860434577, 26123912711, 285689
93380, 31207659328, 34052517670, 37116823944, 40414506807, 43960193389, 47769235
203, 51857734721, 56242572636, 60941435694, 65972845224, 71356186370, 7711173792
1, 83260702859, 89825239635, 96828494063, 104294631954, 112248872506, 1207175223
32, 129728010248] |