gpt4 book ai didi

javascript - 计算纸牌屋中的纸牌数量

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:58:26 28 4
gpt4 key购买 nike

背景故事:

所以我儿子突然来找我,问我如何写一个代数(?)表达式来计算根据指定的级别数制作纸牌屋需要多少张纸牌。我相当确定这实际上不是作业问题;如果他需要帮助,他通常会向我展示工作表。

“假设”是

a) 每层之间水平放置卡片,用于支撑;一张卡作为两个“峰”之间的“桥梁”b) 最低(地面)层下面没有任何水平卡片,因为地板/ table 本身就是支撑物。

例如,单层只有 2 张卡片:/\

再举个例子:3层共15张卡片(请原谅我的烂图!)

   /_\
/_\ /_\
/ \/ \/ \

好吧,我不擅长这种事情。我只知道基础 代数,但我认为自己是一个相当不错(但不是“专业”)的程序员。但无论如何,对于一个纯代数公式,我无法想出一个公式来计算所有卡片,但我确实想出了一个公式来计算给定层的卡片数量,基于以上假设:2v + (v - 1)

好吧,可能有一个更好/简化的方程式,同样,这仅适用于给定的层,而不是所有层。因此,例如第 1 层(顶层),v=1,因此卡的数量为 2。或者对于第 3 层,v=3,因此卡的数量为 8(因此此公式计算水平支撑作为给定层的一部分)。

而且..这就是我对纯代数的了解。然而!使用一些计算机代码(我使用的是 javascript),我能够根据上述等式创建一个函数,以返回卡片的数量:

function getNumHouseCards(layers) {
var layers = layers || 1;
var cards = 0;
for (var v = 1; v <= layers; v++) {
cards += (2 * v) + (v - 1);
}
return cards;
}

与函数的返回值相比,我对卡片进行了一些手动计数,这似乎是合法的,所以我应该很高兴,但是..我觉得这可以做得更好。所以..

问题:

如何改进?我想首先, 有没有办法只用代数表达式来写这个,或者真的需要编码来回答这样的问题吗?在任何一种情况下,我都觉得我把它复杂化了(好吧,至少我做的部分是这样......)

最佳答案

这个表达式涵盖了它:

expression

(y代表卡片数量,x代表层数)


在 JavaScript 中实现,并将输出与您的方法的输出进行比较:

function yourNumberOfCards(layers) {
var layers = layers || 1;
var cards = 0;
for (var v = 1; v <= layers; v++) {
cards += (2 * v) + (v - 1);
}
return cards;
}

function myNumberOfCards(layers) {
return (3 * Math.pow(layers, 2)) / 2 + (layers / 2);
}

for (let i = 1; i <= 10; i++) {
const yours = yourNumberOfCards(i);
const mine = myNumberOfCards(i);

console.log(yours + (yours === mine ? " == " : " != ") + mine);
}

我是怎么到那里的?我计算了前几个值,然后在 WolframAlpha 上运行多项式插值.

关于javascript - 计算纸牌屋中的纸牌数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47986783/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com