在红宝石中制作2d网格并解决难题

时间:2015-05-10 14:48:44

标签: ruby math grid

我非常有兴趣学习使用Ruby编写代码,因为我想进入Web开发,但我还有一个小方面的项目,我实际上是在手工计算的。

我正在制作一个正方形,只是计算一下你可以从左上角到右下角的方式,而只是向右和向下。

现在在1x1网格中只有2个解决方案。 制作2x2网格时,实际上是4个正方形(或者1个大的1x1网格大小为2,但是然后将其分成两半)

这个难题的答案是6。

所以我打算用3x3,4x4等手动计算。为什么我做了你可能会问的所有事情?好吧,我实际上正在寻找一系列数字,我将输入到整数序列数据库(oeis.org),并试图找到这个谜题的数学公式。这是成功的但是我想通过简单地改变规则来进一步,例如你不能向右移动两次,或者向下移动......或者你可以只向左移动一次,依此类推。

然后我意识到手动计算所有可能性非常困难所以我决定尝试制作一个会强制它的代码。

我理解Ruby可能不是最好的语言(也许是c ++?)但我对Ruby非常感兴趣,并希望使用这种语言来解决这个问题。

问题是我不知道从哪里开始:(

1 个答案:

答案 0 :(得分:0)

对于n尺寸的网格,您必须移动2 * n次,n次 l eft,n次 d 拥有。你可以用多少种方式组合lldd,ldld,lddl等? Here是一个专门用于这些计算的网站:C(4,2)表示2x2网格,C(6,3)表示3x3等。谷歌用于二项式系数,以了解如何自己计算它们。不要为oeis做这件事。