2013-01-11 51 views
2

一个定期三角形二维晶体可以设想的是通过微观定期三角形单元堆叠被建立起来,因为在这里展示:计算的三角水晶

enter image description here

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

var a; (even) 
var b; (odd) 
+3

你给了什么样的输入?顶点?你明智地从代码开始了什么?你已经提出了一个非常广泛的问题(很可能是家庭作业),社区将不愿意解决,但愿意提供帮助。 – Grambot

+0

另外,你的水晶2D或3D? – us2012

+0

我编辑了我的答案。我只是在寻找计算。 – mate64

回答

3

这里有系统地寻找解决问题的方法一种方法:

你是因为你对你的水晶的每一侧找到三角形的数量,说n。现在,让水晶放在一边,就像您向我们展示的图像一样,并将一个数字附加到每一排三角形上,您的第一排将具有编号1等等。例如,现在看行2。它有两个向上指向的三角形和一个向下的三角形。

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

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


好吧 - 我无法抗拒。下面的图片给出了这样一个很好的思考问题的方法,它实际上解决了问题。你看看它,并意识到你的问题实际上减少到计数正方形(这当然很容易)。它与@femtoRgon所提出的解决方案在精神上相似,但您甚至不必考虑区域!

enter image description here

2

对于小三角形只有其N + 2((N-1)+(N-2)+ ... + 1),你看在三角形的格局面临着一个方式,面向获得相反的方式。你可以看到它的另一种方法,你可以看到它的count(n)=(2n-1)+ count(n-1)对于n> 1和count(n)1对于n = 1,因为每个大三角形只是增加了沿一侧交错的另一层三角形。

如果你需要1x1x1三角形和2x2x2三角形直到nxnxn三角形,那么它的代数就更加复杂但很简单了。

+0

另一个答案提醒我,一个完美的正方形是连续奇数的总和。所以3^2 = 9 = 1 + 3 + 5所以上面的递归解决方案相当于他的解决方案只有更多的计算。 –

2

相信如所示的,在由X三角形一个X为三角形的数量正确的计算公式是:

X*X 

我的推理:这样的三角形是1/2的面积相应的X by X square,并且每个单位三角形是单位平方的面积的1/2。我们可以用S = X*X(S代表正方形的面积)确定较大正方形的单位平方数,因此我们可以计算f个三角形的数量:T = S/2 = (X*X)/2(T为三角形的面积),并且由于我们的两个单位三角形的面积与1平方的面积相同,两倍的面积是三角的数量,或者num_triangles = (X*X)/2 * 2 = X*X