C# Algo Aufteilen einer Liste von Ganzzahlen in drei Listen mit ähnlicher SummeC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 C# Algo Aufteilen einer Liste von Ganzzahlen in drei Listen mit ähnlicher Summe

Post by Anonymous »

Ich arbeite gerade an einem Algorithmus, der eine Liste von Ganzzahlen aufteilt, aber ich kann nicht herausfinden, wie es geht. Ich habe eine Liste von Ganzzahlen, die ich in 3 Listen teilen muss, und die Summe aller dieser Listen sollte so ähnlich wie möglich sein. Ich habe mit dieser Liste ein Demo-Projekt gestartet: < /p>

Code: Select all

List numbers = new List { 1, 2, 3, 4, 5 };
< /code>
In diesem Fall sollte das Ergebnis: < /p>
seinlist1 = {1,4};
list2 = {3,2};
list3 = {5};
< /code>
Und hier ist mein Code: < /p>
public static List ProvideLists(List originalList)
{
List result
= new List { new List(), new List(), new List() };
var listToParse = originalList;
while (listToParse.Count > 0)
{
var smalestList =
result.Aggregate((a, b) => a.Sum() < b.Sum() ? a : b);
var biggestList =
result.Aggregate((a, b) => a.Sum() > b.Sum() ? a : b);
var diffSmallBig = biggestList.Sum() - smalestList.Sum();
var closestNumber =
listToParse.OrderBy(x => Math.Abs(x - diffSmallBig)).First();
listToParse.Remove(closestNumber);
smalestList.Add(closestNumber);
}
return result;
}
< /code>
Derzeit retektiert dieser Code: < /p>
list1 = {3};
list2 = {5,2};
list3 = {4,1};
Wenn jemand einen Hinweis hat, um mir zu helfen :)

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post