我正在寻找一种从 n 个元素创建表格的最佳方法,以便理想情况下没有空单元格,但同时表格尺寸列/行的比例变得尽可能接近 1。
当然,如果 n 是平方数,那么就很容易
cols = rows = sqrt( n );
如果 n 是素数,那么很明显会有空单元格,所以我当前处理此问题的方法是:
rows = floor( sqrt(n) );
cols = ceil( n / rows );
对于所有其他情况,我的计划是获取 n 的质因数,然后搜索所有可能的排列,找出组合比例最接近 1 的排列。
所以我的问题是:有没有更好的方法来做到这一点?或者至少有一种方法不必测试主要因素的所有可能组合?
而不是进行素因数分解n
,从平方根开始,找到下一个更大(或更小——没有区别)的因子。这对因子最接近平方根,因此最接近 1:1 的比例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)