首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >N场平局中k分得分的计算方法

N场平局中k分得分的计算方法
EN

Code Golf用户
提问于 2013-06-19 16:56:20
回答 2查看 326关注 0票数 1

如果一场比赛能导致一场胜利,值1分;一场平局,等于半分;或者一场输,就不值得得分;在n游戏中,有多少种方法可以得分k

适用的场景包括NFL和国际象棋。

  • 输入是通过stdin进行的,由nk组成,分别位于不同的行上。
  • n将是一个非负整数.(n ≤ 16)
  • k要么是非负整数,要么是非负整数加一半.(k ≤ n)
  • 输出就是输出。它可以,但不必包括一个尾随换行符。

测试用例

在每种情况下,前两行是用户提供的输入,第三行是程序输出。

代码语言:javascript
运行
复制
10
4.5
8350

16
8
5196627

16
13.5
13328

12
12
1
EN

回答 2

Code Golf用户

发布于 2013-06-20 01:15:30

R - 81

代码语言:javascript
运行
复制
cat(sum(rowSums(do.call(expand.grid,replicate(scan(n=1),0:2,s=F)))==2*scan(n=1)))

再长一点(106),但我也喜欢把它写成递归:

代码语言:javascript
运行
复制
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))
票数 3
EN

Code Golf用户

发布于 2013-06-20 17:56:05

APL (22)

代码语言:javascript
运行
复制
+/(2×⎕)=+⌿(N⍴3)⊤⍳3*N←⎕

但是,它并不完全有效(如果您希望工作空间实际工作到N=16,那么将您的工作区大小设置为几up )。

票数 1
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/11898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档