python - 通过python中给定数量的元素生成大小均匀的矩阵?
问题描述
我有一个包含n
项目的 python 列表。
我想将项目放置在(几乎)大小均匀的矩阵中。即矩阵形状应尽可能接近正方形。这里有些例子。
- 项目数4,矩阵大小:2*2
- 项数5,矩阵大小:3*2
- 项目数6,矩阵大小:3*2
- 项目数7,矩阵大小:3*3
解决方案
我的方法如下:
- 任意数量的项目
n_items
,必须介于n^2
和之间(n+1)^2
。 - 因此,要获得“几乎”均匀分布,我们可以将矩阵设为
n*(n+1)
或(n+1)*(n+1)
。 - 简单地
n_items
与这两个维度的乘积进行比较,就可以得到所需的矩阵大小。如果n_items
小于n*(n+1)
,我们将使用n x (n+1)
and(n+1) x (n+1)
否则。
这是一个示例代码:
from math import floor,ceil,sqrt
def even_matrix_size(n_items):
sq_root = sqrt(n_items)
lower_bound = floor(sq_root)
upper_bound = ceil(sq_root)
if n_items <= lower_bound*upper_bound:
return lower_bound,upper_bound
else:
return upper_bound,upper_bound
print(even_matrix_size(7))
推荐阅读
- c# - 如何避免查询 linq 中的 OrderByDescending
- python - 在 Django 中进行分页时,我在 QuerySet 中遇到问题
- javascript - Vue.js:我可以使用 v-if 创建组件吗?
- java - 使用键和值存储 3 个值,如 hashmap
- python-3.x - Seaborn Countplot:在条形图上显示计数
- python - 如何使用 python 生成 3d 温度映射
- windows - 抑制 MimeText 标头
- image - 图像未在模拟器中显示本机反应
- javascript - 如何以表格的形式显示嵌套的 JSON 对象并将其余 JSON 值显示为简单文本
- javascript - 使用for循环的Javascript行号?