Wie verteile ich die Zahlen 1-100 (einschließlich) genau auf eine gewichtete Liste mit einer Länge von <= 100?
Posted: 20 Jan 2025, 15:58
Ich habe eine Liste mit Artikeln, jeder Artikel hat ein Gewicht;
Diese Liste ist höchstens 100 Elemente lang und mindestens 2 Elemente lang.
Ich möchte die ganzen Zahlen 1-100 umgekehrt proportional verteilen (einschließlich) in dieser Liste, sodass das niedrigste Gewicht den größten Bereich erhält.
Dieser Code bringt mich nahe, aber die Bereiche werden nicht umgekehrt:
Code: Select all
std::vector weights{0.5, 2, 5};
Ich möchte die ganzen Zahlen 1-100 umgekehrt proportional verteilen (einschließlich) in dieser Liste, sodass das niedrigste Gewicht den größten Bereich erhält.
Dieser Code bringt mich nahe, aber die Bereiche werden nicht umgekehrt:
Code: Select all
#include
#include
#include
void distributeNumbers(const std::vector& numbers) {
float total = 0;
for (float num : numbers) {
total += num;
}
int start = 1;
int end = 100;
std::cout