Dato un elenco di elementi, voglio suddividerlo in quattro gruppi con la stessa lunghezza possibile. Gli articoli devono essere raggruppati in base alla prima lettera in ogni voce.
26 lettere / 4 gruppi in genere coprono 6,5 lettere in ciascun gruppo. Se avessimo una quantità uguale di elementi che iniziano con la stessa lettera in ciascun gruppo, potrebbe avere un aspetto simile a questo:
[A-F] (6 letters)
[G-M] (7 letters)
[N-S] (6 letters)
[T-Z] (7 letters)
Tuttavia, in pratica, potremmo scoprire che il nostro elenco originale è pesante sugli articoli nel gruppo [N-S].
[A-F] (50 items)
[G-M] (40 items)
[N-S] (70 items)
[T-Z] (40 items)
Potremmo voler spingere tutti gli elementi che iniziano con N nel gruppo 2 e tutti gli elementi che iniziano con S nel gruppo 4 per raggiungere il bilanciamento:
[A-F] (50 items)
[G-N] (50 items)
[O-R] (50 items)
[S-Z] (50 items)
Qualcuno ha qualche idea su dove indirizzarmi in termini di un algoritmo in grado di risolvere questo tipo di problema.
Molto probabilmente userò javascript sul client per implementare qualsiasi soluzione possa funzionare. Mi piacerebbe utilizzare il più possibile come funzionale.