-2

千篇一律的问题是否有封闭形式的解决方案?供参考,这是:谷歌页面

*更新包括问题陈述

问题

在这个问题中,您从 0 个 cookie 开始。通过单击一个巨大的 cookie,您以每秒 2 个 cookie 的速度获得 cookie。只要你有至少 C 个饼干,你就可以买一个饼干农场。每次你购买一个饼干农场,它会花费你 C 饼干,并且每秒给你额外的 F 饼干。

一旦你有 X 块没有花在农场上的饼干,你就赢了!弄清楚如果你使用最好的策略,你需要多长时间才能获胜。

例子

假设 C=500.0,F=4.0 和 X=2000.0。以下是最佳策略的实施方式:

您从 0 个 cookie 开始,但每秒产生 2 个 cookie。250 秒后,您将拥有 C=500 个饼干,并且可以购买一个每秒生产 F=4 个饼干的农场。购买农场后,您有 0 个 cookie,您的 cookie 总产量为每秒 6 个 cookie。下一个农场将花费 500 个饼干,您可以在大约 83.3333333 秒后购买。购买第二个农场后,您有 0 个 cookie,您的 cookie 总产量为每秒 10 个 cookie。另一个农场将花费 500 块饼干,您可以在 50 秒后购买。购买第三个农场后,您有 0 个 cookie,您的 cookie 总产量为每秒 14 个 cookie。另一个农场将花费 500 个 cookie,但实际上不买它是有意义的:相反,您可以等到有 X=2000 个 cookie,这大约需要 142.8571429 秒。

总时间:250 + 83.3333333 + 50 + 142.8571429 = 526.1904762 秒。

请注意,您会连续获得 cookie:因此游戏开始后 0.1 秒您将获得 0.2 个 cookie,游戏开始后 π 秒您将获得 2π cookie。

4

2 回答 2

0

不,它不会有任何封闭形式。

算法是这样的,

等待收集C许多cookie。如果你有 C 多块饼干,买一个新农场

 (X-C)/R >= X/(R+F) --- (i)

否则不要购买任何农场并继续收集饼干,直到你有 X 多个饼干。

eqn (i)
LHS is the time for the collecting (X-C) many cookies [collected C many cookies already which I did not spend on buying a farm] with current collecting rate.

RHS is the time for collecting X many cookies with the increased collecting rate.

从我们得到的等式,R <= F(X-C)/C

所以答案是,

C/2 + C/2+F + C/2+2F + C/2+3F + ... + C/2+NF + X/2+NF [2 + NF <= F(X-C)/C]
= C(1/2 + 1/2+F + 1/2+2F + ... + 1/2+NF) + X/2+NF = A

假设我们有一个封闭的形式来计算 A

那么对于F = 1, C = 1, X = K

我们在A = (1/2 + 1/3 + .. + 1/2+N) + X/2+N哪里2+N <= (K-1)

=> (1/2 + 1/3 + .. + 1/2+N) = A - X/2+N这也将有一个封闭的形式。

但是,序列 {1/N} 的有限和没有任何封闭形式。所以这两个都没有。

于 2014-04-13T18:43:33.923 回答
0

我想有一个封闭的形式:

请注意,您必须进行比较(因为最好尽可能购买另一个农场或永远不要购买另一个农场)

(X-C)/(2+F(n-1)) with X/(2+Fn),其中 n 是农场的数量。

因此,您只需找到n可以解决的问题

(X-C)/(2+F(n-1)) = X/(2+Fn).

n=(FX-2C)/CF

如果 n 为正数,则意味着您的解决方案是 Floor(n)。否则,n=0 是您的解决方案。

PS:上面的“2”可以用初始生产率代替。

于 2014-04-13T19:44:02.897 回答