Umgekehrte Durchschnittsberechnung?

2 Antworten

Sei D der Durchschnitt der erreicht werden soll.

Dann kannst du das Problem in das folgende Problem umformen:

Welche k (hier 10) der N (hier 40) Zahlen soll man wählen, sodass dessen Summe möglichst nah an k*D ist (Teilt man nämlich die Summe durch k erhält man den Durchschnitt)

Dieses Problem ist eine Variation vom SUBSET SUM Problem.

Eine Dafür dazu gibt es hier:

https://www.geeksforgeeks.org/subarray-whose-sum-is-closest-to-k/

(Da ist sowohl der Code in C++ als auch eine Beschreibung vom Algorithmus, jedoch müssten da Anpassungen gemacht werden, da der Algorithmus nur Angibt, welcher Durschnitt möglich ist, aber nicht welche Zahlen man dafür braucht)


BruderGlaubMir 
Beitragsersteller
 02.10.2021, 10:05

Nach einigem Suchen habe ich dieses Video gefunden: https://www.youtube.com/watch?v=Oxt9V_qDiIA
Habe einfach eine weitere Nebenbedingung hinzugefügt die besagt, dass die Summe aller verwendeten Zaheln 10 Sein soll und es funktioniert!

1
BruderGlaubMir 
Beitragsersteller
 02.10.2021, 08:46

Vielen Dank!

0

Ist doch Wurst, du hast die Zahlen im Zähler, die kannst du beliebig verteilen und zerlegen. Notfalls die Addition davon durch 10 teilen, du hast 10 Schnipsel.


Jangler13  01.10.2021, 17:52

Du hast das Problem Falsche verstanden. Man will 10 Zahlen von 40 gegebenen Auswählen, sodass dessen Arithmetisches Mittel möglichst nahe an der gewollten Zahl ist.

1