Finden der optimalen Spalten- und Zeilengröße für eine Tabelle mit n Elementen und einem bestimmten Bereich für ihren Anteil
Ich suche nach einer optimalen Möglichkeit, eine Tabelle aus n Elementen zu erstellen, sodass im Idealfall keine leeren Zellen vorhanden sind, aber gleichzeitig der Anteil der Tabellendimensionen Spalten / Zeilen so nahe wie möglich bei 1 liegt.
Natürlich, wenn n eine quadratische Zahl ist, ist es einfach, da dann
cols = rows = sqrt( n );
Wenn n eine Primzahl ist, ist es auch klar, dass es leere Zellen geben wird. Meine derzeitige Vorgehensweise lautet:
rows = floor( sqrt(n) );
cols = ceil( n / rows );
Für alle anderen Fälle ist mein Plan, die Primfaktoren von n zu erhalten und dann alle möglichen Permutationen nach jenen zu durchsuchen, deren Kombination Proportionen hat, die 1 am nächsten kommen.
Also meine Frage ist: gibt es einen besseren Weg, dies zu tun? Oder gibt es zumindest eine Möglichkeit, nicht jede mögliche Kombination der Primfaktoren testen zu müssen?