给定一个值n,想象在引用(0,0)到(2n,0)中刻有的山地景观。斜坡之间不应该有空白,山也不应该下降到x轴以下。需要解决的问题是:给定n(定义景观的大小)和峰数k (k总是小于或等于n),那么有多少山可以与k峰结合?
N代表景观的宽度,k代表山峰的数目。
可能的组合数量。
给定n=3和k=2,答案是三个组合。
/\ /\ /\/\
/\/ \ / \/\ / \这三个组合可能使用6 (3*2)个位置和2个峰值。
编辑:-更多例子-
n k result
2 1 1
4 1 1
4 3 6
5 2 10适用标准的密码-高尔夫规则。最短的提交(以字节为单位)获胜。
发布于 2018-09-30 22:28:07
f=lambda n,k:k<2or~-n*n*f(n-1,k-1)/~-k/k使用递归a_{n,1} = 1,a_{n,k} = \frac{n(n-1)}{k(k-1)}a_{n-1,k-1}。
发布于 2018-09-30 21:31:13
发布于 2018-10-01 15:49:16
三个版本,全部相同的长度:
(b=Binomial)@##b[#,#2-1]/#&
Binomial@##^2#2/(#-#2+1)/#&
1/(Beta[#2,d=#-#2+1]^2d##)&在网上试试! (只是第一个版本,但您可以复制和粘贴以尝试其他版本)。
所有这些都是\frac{n!(n-1)!}{k!(k-1)!(n-k)!(n-k-1)!}上的某种变体,这是一直在运行的公式。我希望用Beta函数来实现,这是一种二项式的相互作用,但后来发生了太多的分裂。
https://codegolf.stackexchange.com/questions/173081
复制相似问题