Hilfe bei Mathe bitte!?
Ist es möglich, die Zahl 58,86 aus folgenden Zahlen zu addieren?
4,45
5,45
8,90
10,98
11,80
Dabei ist es egal, ob Zahlen mehrfach oder andere gar nicht verwendet werden.
3 Antworten
Nein
Um auf der 2. Nachkommastelle eine 6 zu haben, musst du 2×10,98=21,96 verwenden.
58,86-21,96=36,90
Für die 9 als Nachkommastelle entweder 2×4,45 oder 2×5,45 oder 4,45+5,45 oder 8,90
28, 27 und 26 lassen sich aus den gegebenen Zahlen nicht als Summe darstellen.
Wolfram Alpha meint das auch ;-)
Hallo.
Um das ganze zu vereinfachen, multiplizieren wir jede Zahl mal mit 100, damit die Komma verschwinden.
Gesucht ist die Zahl 5886. Damit diese durch addieren der genannten 5 Zahlen zu Stande kommen kann, muss 1098 2x vorkommen. Denn die anderen Zahlen enden alle auf 5 oder 0 und wenn man diese addiert, kann daraus keine 6 werden.
Damit blieben noch:
5886 - 2*1098 = 3690
Da wir nun eine Zahl haben, die auf 90 endet, kommt entweder 890 mindestens 1 mal drin vor, oder die Summe aus 445 und 545.
3690 - 890 = 2800
3690 - 445 - 545 = 2700
Dies aus den restlichen Zahlen zu bilden sieht praktisch unmöglich aus.
Um sicher zu gehen, verwenden wir ein Programm geschrieben in Python (die Brechstangenmethode wenn du so möchtest):
def is_possible(target, numbers):
if target == 0:
return True
if not numbers or target < 0:
return False
for i, num in enumerate(numbers):
remaining = numbers[:i] + numbers[i+1:]
if is_possible(target - num, remaining):
return True
return False
target_number = 58.86
given_numbers = [4.45, 5.45, 8.90, 10.98, 11.80]
if is_possible(target_number, given_numbers):
print("Es ist möglich, die Zahl", target_number, "durch Addition der gegebenen Zahlen zu erreichen.")
else:
print("Es ist nicht möglich, die Zahl", target_number, "durch Addition der gegebenen Zahlen zu erreichen.")
Ergebnis davon war, dass es nicht möglich ist. Wir haben hier also noch die Bestätigung für unsere Vermutung bekommen.
Dafür gibt es das Code Tag. Den Code markieren mit der Maus und dann auf das Symbol </> drücken.
Nein, es ist nicht möglich.
Man könnte die Frage vereinfachen: Die 10,98 zwei mal drin vorkommen, da die Zahl auf auf 6 endet. Jetzt ist die Frage, ob es eine Zusammenstellung zu 36,9 (58.86 - 21.96) gibt. Da die 8,90 nur 2*4,45 ist, ist die 8,90 auch unnötig. Also ist nur die Frage, ob wir
=> 36,9 aus {4.45, 5.45, 11.80} bauen können?
Da die 36,9 nur eine Nachkommestelle hat, müssen wir eine gerade anzahl von {4.45, 5.45} haben
=> 36.9 aus {8.9, 9.9, 10.9, 11.80} bauen können?
Da die 36 zu klein ist für 4 mal die kleinste Zahl (8.9) und zu groß für 2 mal die grösste Zahl, wissen wir, dass wir die
=> 36.9 mit 3 Zahlen aus {8.9, 9.9, 10.9, 11.80} bauen können?
Wenn wir jetzt wieder auf die Kommazahlen gucken, dann hätten wir iwas komma 9 und iwas komma 8, wo 3 davon komma neun ergeben soll
=> .9+.9+.9 = ?.9 oder .8+.9+.9 = ?.9 oder .8+.8+.9 = ?.9 oder .8+.8+.8 = ?.9
= .9+.9+.9 = ?.7 oder .8+.9+.6 = ?.9 oder .8+.8+.5 = ?.9 oder .8+.8+.8 = ?.4
Da keine Addition komma 9 ergibt
=> NEIN, es ist nicht möglich!
Hier ist ausserdem ein c#-Programm, welches alle Möglichkeiten austestet und es gibt keine Übereinstimmung:
using System;
using System.Linq;
using System.Collections;
using System.Collections.Generic;
public class Program
{
public static void Main()
{
RecSub(85.86f, 0, new());
void RecSub(float a, float subtr, List<float> _prev)
{
List<float> prev = _prev.ToList();
prev.Add(subtr);
a -= subtr;
if(a < 0)
return;
if(a == 0)
{
Console.WriteLine(string.Join(", ", prev));
return;
}
RecSub(a, 4.45f, prev);
RecSub(a, 5.45f, prev);
RecSub(a, 8.90f, prev);
RecSub(a, 10.98f, prev);
RecSub(a, 11.80f, prev);
}
Console.WriteLine("End");
}
}
Wie hast du den Code als Code in deiner Antwort markiert bekommen? :O