Math 使用元素数创建网格

Math 使用元素数创建网格,math,graph,grid,point,equation,Math,Graph,Grid,Point,Equation,好的,这是我想要完成的。假设我有100件物品。我想创建一个“网格”(每个项目由一个x,y点组成)。我希望网格尽可能靠近正方形。 是否有任何数学方法可以通过一个数字来确定网格宽度和网格高度?(网格宽度和高度指的是x项的数量和Y项的数量) 现在我想,取数字的平方根是否有效,比如VARI= SqRT(45),将小数点从VARI中删除…x=VARI…那么Y是VARI+ 1?< /P> < P>这里有几个问题需要考虑。如果你希望你的网格尽可能的正方形,对于很多N,它将有空的单元格。一个简单的例子是N=10

好的,这是我想要完成的。假设我有100件物品。我想创建一个“网格”(每个项目由一个x,y点组成)。我希望网格尽可能靠近正方形。 是否有任何数学方法可以通过一个数字来确定网格宽度和网格高度?(网格宽度和高度指的是x项的数量和Y项的数量)


现在我想,取数字的平方根是否有效,比如VARI= SqRT(45),将小数点从VARI中删除…x=VARI…那么Y是VARI+ 1?< /P> < P>这里有几个问题需要考虑。如果你希望你的网格尽可能的正方形,对于很多N,它将有空的单元格。一个简单的例子是N=10。您可以为它创建一个3x4网格,但它将有两个空单元格。另一方面,2x5网格将没有空单元格。某些Ns(素数)在网格中总是有空单元格

但是如果你只想要平方,而不关心空字段,那么通常是的,你应该取平方根。假设你的号码是N。然后,取
R=int(sqrt(N))
。接下来,做一个整数除法
N/R
,取商并加1。这是
C
。网格是
RxC
。请注意,当
N
是一个正方形(如100)时,这是一个特例,因此不要在商中加1

例如:

N = 40
R = int(sqrt(N)) = 6
C = int(40 / 6) + 1 = 7
grid is 6x7

这里有几个问题需要考虑。如果你希望你的网格尽可能的正方形,对于很多N,它将有空的单元格。一个简单的例子是N=10。您可以为它创建一个3x4网格,但它将有两个空单元格。另一方面,2x5网格将没有空单元格。某些Ns(素数)在网格中总是有空单元格

但是如果你只想要平方,而不关心空字段,那么通常是的,你应该取平方根。假设你的号码是N。然后,取
R=int(sqrt(N))
。接下来,做一个整数除法
N/R
,取商并加1。这是
C
。网格是
RxC
。请注意,当
N
是一个正方形(如100)时,这是一个特例,因此不要在商中加1

例如:

N = 40
R = int(sqrt(N)) = 6
C = int(40 / 6) + 1 = 7
grid is 6x7

平方根正是您所需要的

N
x=floor(sqrt(N))
y=raise(N/x)
这是具有N个以上位置且最接近正方形的最小矩形

现在。。。如果你想找到一个正好有N个位置并且最接近正方形的矩形…那是另一个问题

你需要找到一个最接近的因子N,x


您必须遍历N的因子,并找到最接近sqrt(N)的因子。然后矩形是x乘N/x,两个整数。

平方根正是您需要的

N
x=floor(sqrt(N))
y=raise(N/x)
这是具有N个以上位置且最接近正方形的最小矩形

现在。。。如果你想找到一个正好有N个位置并且最接近正方形的矩形…那是另一个问题

你需要找到一个最接近的因子N,x


您必须遍历N的因子,并找到最接近sqrt(N)的因子。然后矩形是x乘以N/x,都是整数。

对于html/css中的网格,我也在寻找解决这个问题的方法,该网格具有固定的维度,可以容纳N个项目。我最终用javascript创建了自己的脚本


如果你对我使用的方法和数学感兴趣,你可以阅读,都有相关的文档。我使用了递归,它工作得非常好,您可以在自己的语言中使用相同的方法。希望这能有所帮助。

我也在寻找解决这个问题的方法,在html/css中,网格具有固定的维度,可以容纳N个项目。我最终用javascript创建了自己的脚本


如果你对我使用的方法和数学感兴趣,你可以阅读,都有相关的文档。我使用了递归,它工作得非常好,您可以在自己的语言中使用相同的方法。希望这能有所帮助。

我研究了Eli的答案,发现了一些我想指出的东西。为了通用性,只有当R x C(C=int(N/R))不完全为N时,才必须向C加1。因此,例外情况包括具有平方根的数字和正好是两个整数乘积的数字

例如:

N = 12
R = 3
C = 4 (int(N/R))

希望有帮助。

我研究了Eli的答案,发现了一些我想指出的东西。为了通用性,只有当R x C(C=int(N/R))不完全为N时,才必须向C加1。因此,例外情况包括具有平方根的数字和正好是两个整数乘积的数字

例如:

N = 12
R = 3
C = 4 (int(N/R))

希望能有所帮助。

我还没看过,但谢谢分享。即使它对我没有帮助,希望它能帮助其他人。我还没看过,但谢谢分享。即使它对我没有帮助,希望它能帮助其他人。好消息。我相信在我的情况下,额外的细胞没有呈现(我甚至不记得我在做什么了哈哈)我怎么能实现第二种情况?用最少的空单元格找到最好的网格。很好的信息。我相信在我的情况下,额外的细胞没有呈现(我甚至不记得我在做什么了哈哈)我怎么能实现第二种情况?用最小的空单元格寻找最佳网格。