Formel für das berechnen eines optimalen Felds

Hallo

Ich programmiere gerade ein Kartenspiel. Der User kann angeben mit wivielen karten er spielen will (Gerade Zahl). Jetzt will ich die Karten auf den Bildschirm zeichnen und zwar in einem Optimalen Verhältnis. Beispiel:

Der User entscheidet sich mit 20 Karten zu spielen jetzt muss ich ein Optimales Feld Zeichnen (X,Y) optimal sieht für eine Bildschirmausgabe sieht X=5 Y=4 aus. ungünstig wäre z.b. X=2 Y=10. Man kann also sagen, dass X und Y möglich nahe zueinander sein sollten.

Gibt es dafür eine mathematische Formel/Algorithmus ?

Besten Dank
Giuseppe

Gibt es dafür eine mathematische Formel/Algorithmus ?

Man kann natürlich einen großen mathematischen Wirbel entfachen, indem man beispielsweise die Anzahl der karten in ihre Primfaktoren zerlegt und diese dann zu den zwei kleinstmöglichen Faktoren zusammenfaßt, aber da es ja nicht mehr als 32 Karten werden können, besteht die einfachste, schnellst und speicherschonnendste Methode darin alle 32 Möglichkeiten per Hand zu optimieren und die Ergebnisse in einem 32x2-Array zu speichern.

Hi.

Wenn ich schnell recht richtig überlegt habe, könnte es so funktionieren: Du teilst die Anzahl der gewünschten Karten durch i (i ab 2 (da Zahl ja gerade), i schrittweise um 1 erhöhen) und speicherst das Ergebnis in y. Sobald i>=y ist, hast Du Deine gewünschte Lösung, da sich dann die Faktoren sozusagen nur wiederholen…
Bsp: 20
i y
2 10
4 5
5 4
10 2

(Das Gleicheitszeichen gilt bei Quadratzahlen)
Im Prinzip suchst Du alle Teiler und hörst auf, wenn Du alle gefunden hast.
Geht sicherlich auch optimierter…

gruss, tafp

Kein schlechter Ansatz. :smile: *sterngib* o.T.
lang lebe mathe