2

可以将规则三角形的二维晶体设想为由微观规则三角形单元的堆叠构成,如下所示:

在此处输入图像描述

在Java中计算这种4x4晶体的三角形总数的正确方法是什么?

var a; (even) 
var b; (odd)
4

3 回答 3

3

这是一种系统地找到问题解决方案的方法:

你得到了你在水晶的每一边找到的三角形的数量,比如说n。现在,让水晶像您向我们展示的图像一样放在一边,并在每行三角形上附加一个数字,您的第一行将有数字1,依此类推。

现在看看 row 2,例如。它有 2 个向上的三角形和 1 个向下的三角形。

你能概括一下吗?一排有多少个向上的三角形n?有多少向下的?

如果您有该问题的答案,您可以将代码中各个行的数字相加 - 或者为总和提出一个很好的封闭公式。


好吧 - 我无法抗拒。下图提供了一种很好的思考问题的方式,它实际上可以自行解决。您看着它并意识到您的问题实际上简化为数平方(这当然很容易)。它与@femtoRgon 建议的解决方案在精神上相似,但您甚至不必考虑区域!

在此处输入图像描述

于 2013-01-11T17:25:58.233 回答
2

对于小三角形,只有它的 n + 2((n-1) + (n-2) + ... + 1) 可以通过查看面向单向和面向相反方向的三角形图案来获得。

换一种方式看,你可以看到它的 count(n) = (2n-1) + count(n-1) for n>1 和 count(n) 1 for n=1 因为每个大三角形只是添加了另一层三角形沿一侧交错。

如果您需要 1x1x1 三角形和 2x2x2 三角形直到 nxnxn 三角形,它会更复杂但非常简单的代数。

于 2013-01-11T17:23:28.377 回答
2

我相信在 X x X 三角形中表示的三角形数量的正确计算是:

X*X

我的推理:这样的三角形是对应X×X正方形面积的1/2,每个单位三角形是单位正方形面积的1/2。我们可以用(S为正方形的面积)确定较大正方形中的单位正方形的数量S = X*X,因此我们可以计算出三角形的数量: T = S/2 = (X*X)/2(T为三角形的面积),并且由于我们的两个单位三角形有面积等于 1 个单位正方形,面积的两倍是三角形的个数,或num_triangles = (X*X)/2 * 2 = X*X

于 2013-01-11T17:28:48.197 回答