小编Rau*_*fio的帖子

最优的三重城镇算法

我一直在努力为游戏"三重城镇"激发的问题找到最佳算法.游戏如下:

将对象放置在网格中,每次创建一组三个对象时,它们会在放置的最后一个对象的位置压缩为一个更高级别的对象.


基本转型


此外,如果将这些b对象中的三个放在一起,它们会再次压缩以形成更高级别的对象.


设置为c


转变为c


注意:在这些图中,对象的级别表示为i,b i和c i,下标表示三个集合中的对象编号.

为了简化事情,我只考虑你必须放置的每个对象何时是最低级别.

现在我的问题是:

1:给定x,是否有算法确定制作x级对象所需的最小网格区域数量?

例如,对于等级a,您需要1x1,对于等级b,您需要1x3,对于等级c,您需要1x5.

2:鉴于网格的尺寸,我们能找到最高水平和可实现的物体数量吗?

例如,对于2x2,您可以获得2级'a'和2级'​​b'

3:在给定固定网格的情况下,是否有算法可以找到对象的最佳顺序和位置以获得最高级别?

例如,对于2x2,您可以得到(1,1),(1,2),(2,2)

4:给定一个预期级别x对象的位置,哪组移动最小化了制作此对象所需的空间量?

5:这些算法的最佳复杂性是什么?

更新:

我认为在找到解决方案时突出的一点是,获取x级项目不能在任何任意位置完成.

例如:[ _ _ _ _ c]在固定的1乘5格中是不可能实现的,因为你需要你的最后一个b在第5位,因此你的最后一个在第5位.所以放置第一个b:[a _ _ _ _]->[a a _ _ _]->[_ _ b _ _][_ a _ _ _]->[_ a a _ _]->[_ _ _ b _].在这两种情况下,没有足够的空间放置3'a来制作c的最后一个b.

另一件事,我们不能假设任何东西都可以展开到一维网格.我的下一点很明显.

我找到了一些有趣的东西:

边界的最小接近度是c级对象可以在1维网格中.[_ _ a a a]->[_ _ _ b]->[_ a a a …

algorithm

8
推荐指数
1
解决办法
691
查看次数

在R中绘制矩阵方程

我是R的新手,我需要绘制二次矩阵方程:

x^T A x + b^T x + c = 0

在R ^ 2中,A是2x2,ba 2x1和ca常数.该等式用于定义点类的边界.我需要绘制边界x0 = -6...6,x1 = -4...6.我的第一个想法是生成一堆点并看到它们在零的位置,但它取决于数字之间的增量(很可能我不会猜测哪些点为零).

有没有一种更好的方法,而不仅仅是生成一堆点,看看它在哪里为零或乘以它?任何帮助将非常感激,

谢谢.

plot r matrix parametric-equations

3
推荐指数
1
解决办法
268
查看次数

R坐标值对成稀疏矩阵

我在将数据集加载到R中的稀疏矩阵时遇到问题.我正在使用Matrix包.我的数据是在表格中x y value.例如:

  V1 V2 V3
  1  2  .34
  7  4  .56
  4  5  .62
Run Code Online (Sandbox Code Playgroud)

在哪里我想做相同的

myMatrix[1,2] = .34
myMatrix[7,4] = .56 
myMatrix[4,5] = .62 
Run Code Online (Sandbox Code Playgroud)

以自动化的方式.

我想做的事情如下:

myMatrix = Matrix(nrow=numrows, ncol=numcols)
myMatrix[mydata[1:numrows, 1], mydata[1:numrows, 2]] <- mydata[1:numrows, 3]
Run Code Online (Sandbox Code Playgroud)

但是当我需要一个数字矩阵时,这会使我的矩阵成为lgeMatrix.

我也尝试过:

myMatrix = Matrix(nrow=numrows, ncol=numcols)
for(i in 1:numrows){
    myMatrix[mydata[i, 1], mydata[i, 2]] <- mydata[i, 3]
}
Run Code Online (Sandbox Code Playgroud)

这创造了我想要的那种矩阵,但它需要太长时间(超过5分钟).我知道它有效,因为当我停止它时,我检查前几个值并且它们是正确的,但最后的值是NA.我正在使用7095乘5896矩阵,输入247158值,因此for循环是不可能的,除非我只是不耐烦.

我的问题是:在R中执行此操作的首选方法是什么?

更新:

我用它sparseMatrix代替了:

myMatrix = sparseMatrix(i = mydata[1:numrows,1], j = mydata[1:numrows,2],
                     x = mydata[1:numrows,3])
Run Code Online (Sandbox Code Playgroud)

不明白sparseMatrix其他帖子的用法

r matrix sparse-matrix

3
推荐指数
1
解决办法
1240
查看次数