如果我们将12扩展到任何数字 圣诞节的十二天内总共有多少礼物 (how many gifts total in 12 days

我今天在一次采访中得到了这个问题:编写一个函数来计算圣诞节歌曲 12 天中任何一天收到的礼物总数。我在 c# ish 代码中使用 for () 循环编写了一个简单的函数,该函数有效。然后面试官要求我将其扩展到任何天数。然后谈话转向如何优化循环。显然,有一个很酷的数学技巧,可以在你的整数是什么的范围内做到这一点?

我今天在一次采访中得到了这个问题:编写一个函数来计算圣诞节歌曲 12 天中任何一天收到的礼物总数。我在 c# ish 代码中使用 for () 循环编写了一个简单的函数,该函数有效。然后面试官要求我将其扩展到任何天数。然后谈话转向如何优化循环。显然,有一个很酷的数学技巧,可以在你的整数是什么的范围内做到这一点?

使用递归的答案不是我要找的。

编辑:第 2 天的答案是总共 4 份礼物,而不是 3 份,因为我将有 2 棵树(今天 1 棵,昨天 1 棵)和 2 棵 part。在第 12 天,我将总共收到 364。我想要让我输入 12 并获得 364 的公式。

20

第一天,你得到 1。

第二天,你得到 1 + 2。

第三天,你得到 1 + 2 + 3。

...

n日,您将获得 1 + 2 + 3 +...+n

总和1 + 2 + ... + nn(n+1)/2。因此,总数T(N)1..Nnn(n+1)/2的总和,其中N是天数。

现在,n(n+1)/2 = n^2 / 2 + n / 2,并且1..Nnn^2的总和是N(N+1)(2N+1)/6,因此您得到:

T(N) = N(N+1)(2N+1)/12 + N(N+1)/4
     = N(N^2 + 3N + 2) / 6

没有循环。没有递归。

5

第 P 美元的礼物类型(其中 1 美元 st 是 part,2 美元 nd 是乌龟鸽子等)的数量为$P = \sum_{X = 1}^{P} 1$

在 $D $天,您将收到 $1 $到 $D $类型的礼物,当天总共有$\sum_{P = 1}^{D} \sum_{X = 1}^{P}1 $个礼物。

因此,如果天数从 $1 $到 $N $(通常,$N $是 12,但我们现在的兴趣是允许它变化),您将收到整体$\sum_{D = 1}^{N} \sum_{P = 1}^{D} \sum_{X = 1}^{P} 1$

这将计算非递减三元组的数量$1 \leq X \leq P \leq D \leq N$.

这与增加三元组的数量相同$1 \leq X < P + 1 < D + 2 \leq N + 2$.

所以答案是$\binom{N + 2}{3} = \frac{(N + 2)(N + 1)N}{6}$.

1

n天,我们会收到1 + 2 + 3 + ... + n份礼物。

Or...(1 + n) + (2 + n-1) +...

换句话说,(n + 1) * n/2

-1

你收到 364 份礼物。

1
+ 1 + 7 + 1 =3
3 + 2 + 1 = 6
4 + 3 + 2 + 1 = 10
5 + 4 + 3 + 2 + 1 = 15
6 + 5 + 4 + 3 + 8 + 8 = 2 + 1 = 28
8 + 7 + 6 + 5 + 4 + 3 + 2 = 4 10
6
6

如果你把它们都加起来,你会得到 364。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(514)
从页眉的一部分中删除粗体样式(bold text html)
上一篇
Glassfish服务器过早退出 退出代码为134
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(38条)