Matheaufgabe in Python?
Hallo, ich hatte in der Schule folgende Aufgabe in Mathe und habe interessehalber versucht diese durchs coden zu lösen. Wie ihr unten seht bin ich noch ziemlich am Anfang und hab wahrscheinlich einiges Falsch gemacht, meine Frage, ist es möglich das einfacher darzustellen und falls ja, auch so, dass man manuell alle Gleichungen per Input() neu eingeben kann?
bei der while Schleife mit x==0 ist mir nichts besseres eingefallen…
Danke schon mal!
from random import *
x = 0
a = randint(0, 9)
b = randint(0, 9)
c = randint(0, 9)
d = randint(0, 9)
e = randint(0, 9)
f = randint(0, 9)
g = randint(0, 9)
h = randint(0, 9) # Pick a random number between 1 and 100.
x = a * 100 + b * 10+ d - f * 10 * d
y = e * 100 + g * 10 + d
z = a * 100 + b * 10 + b - c * 10 + d
w = e * 100 + e * 10 + d
v = c * 10 + d - e * 10 + f
q = f * 10 + h
r = f * 10 + d + e * 10 + f
s = c * 10 + e
while x == 0:
a = randint(0, 9)
b = randint(0, 9)
c = randint(0, 9)
d = randint(0, 9)
e = randint(0, 9)
f = randint(0, 9)
g = randint(0, 9)
h = randint(0, 9)
if x == y and z == w and v == q and r == s:
print(a)
print(b)
print(c)
print(d)
print(e)
print(f)
print(g)
print(h)
x = 1
else:
print("false")
2 Antworten
Ich habe jetzt nochmals die Aufgabe von scratch geschrieben, da ich nicht weiß, was dein Programm bewerkstelligen möchte (nächstes mal am bessere Variablennamen verwenden)
Buchstabenliste_manuell: https://pastebin.com/nGYqHZMz
Buchstabenliste_automatisch: https://pastebin.com/ndQYGkGh
Ein Problem bei der automatischen Buchstabenliste ist, dass es sehr Unwahrscheinlich (wenn nicht unmöglich) ist ein Muster zu kreieren, welches den Anforderungen entspricht. Wenn du trotzdem das automatische Skript ausprobieren möchtest, dann lösche einfach ein paar Bedingungen (wie if x == num3_1 * num3_2: oder num1_1 - num2_1 == num3_1)
Der Code ist professionell geschrieben also wenn du Fragen hast, dann schreib mir
Deine Vorgehensweise ist offensichtlich falsch, denn:
1. Die Variablen jedes Mal zufällig zu belegen ist unklug, da es dann lange dauern kann, bis du die korrekte Kombination bekommst
2. Jede Ziffer soll exakt ein Mal vorkommen, das kannst du nicht garantieren, wenn du die Zahlen zufällig auswählst. Du musst stattdessen versuchen schlau vorzugehen. Löse erst das Teilproblem, wie du alle Möglichkeiten, die 9 Ziffern zuzuweisen, bestimmen kannst, erst dann ist es sinnvoll, die Gleichung zu lösen.
3. Dein Code ist nicht logisch.
Du Ordnet x,...s EIN einziges Mal einen Wert zu, danach haben die Variablen immer den selben Wert. Außer..... x, weil du aus irgend einem Grund denkst, dass es eine gute idee, ist, x zusätzlich noch für die Schleife zu nutzen.
Also:
Versuche zunächst alle Permutationen zu Generieren (Entweder mit itertools oder Rekursion). Und OHNE random.
Mache erst danach den Rest.