Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Welche x Zahlen ergeben Summe y
Qt21580
myCSharp.de - Member



Dabei seit:
Beiträge: 204

Themenstarter:

Welche x Zahlen ergeben Summe y

beantworten | zitieren | melden

Hallo zusammen

Ich habe da eine mathematische Frage zur "Mengenlehre".
Ich habe eine Liste mit verschiedenen werten (int) nun möchte ich anhand einer bestimmten Summe die passenden Werte finden.

Zb. :Summe y ist 60

Werte in der Liste
30
20
5
10
15
17
3

Das Ergebnis sollte sein:

    30, 20, 10
    30, 10, 17, 3
    20, 5, 15, 17, 3
    30, 5, 15, 10 usw.

Kann mir da jemand weiterhelfen.
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15618
Herkunft: BW

beantworten | zitieren | melden

Riecht nach Rucksackproblem.
Was hast du bisher versucht?
private Nachricht | Beiträge des Benutzers
chilic
myCSharp.de - Experte



Dabei seit:
Beiträge: 2111

beantworten | zitieren | melden

Rucksack hat nochmal einen weiteren Wertebereich den man abgleichen muss.

Wie viele Zahlen sind es? Der einfachste Ansatz für das jetzige Problem ist, jede Zahl entweder zu wählen oder nicht zu wählen und dann zu prüfen ob die Summe erreicht ist.
Wenn es um viele Zahlen geht kann das länger dauern, dann müsste etwas mehr Strategie dazu kommen.
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 3977

beantworten | zitieren | melden

In Algorithm to determine which numbers in a list are the sum of a given number sowie Finding all possible combinations of numbers to reach a given sum gibt es einige Codebeispiele.

PS: Wenn auch negative Zahlen in der Liste vorkommen, dann handelt es sich um das Teilsummenproblem (bzw. in englisch Subset sum problem).
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Th69 am .
private Nachricht | Beiträge des Benutzers
M.L.
myCSharp.de - Member



Dabei seit:
Beiträge: 249

beantworten | zitieren | melden

Bei der gegebenen Liste und dem Endresultat kann man erkennen, dass einige Zahlenkombinationen nur gemeinsam auftreten, z.B. 17+3, 15+5... Damit könnte man den Rechenaufwand beim Iterieren auch etwas reduzieren.
Goalkicker.com
DNC Magazine for .NET Developers,
Software is like cathedrals: first we build them, then we pray ;-)
private Nachricht | Beiträge des Benutzers