n游戏中,有多少种方法可以得分k?适用的场景包括NFL和国际象棋。
n和k组成,分别位于不同的行上。n将是一个非负整数.(n ≤ 16)k要么是非负整数,要么是非负整数加一半.(k ≤ n)在每种情况下,前两行是用户提供的输入,第三行是程序输出。
10
4.5
8350
16
8
5196627
16
13.5
13328
12
12
1发布于 2013-06-20 01:15:30
cat(sum(rowSums(do.call(expand.grid,replicate(scan(n=1),0:2,s=F)))==2*scan(n=1)))再长一点(106),但我也喜欢把它写成递归:
Z=function(n,k)if(n<1|k<0)0 else if(n<2&k<3)1 else Z(n-1,k)+Z(n-1,k-1)+Z(n-1,k-2);Z(scan(n=1),2*scan(n=1))发布于 2013-06-20 17:56:05
+/(2×⎕)=+⌿(N⍴3)⊤⍳3*N←⎕但是,它并不完全有效(如果您希望工作空间实际工作到N=16,那么将您的工作区大小设置为几up )。
https://codegolf.stackexchange.com/questions/11898
复制相似问题