Hallo,
ich fange mal so an, wie es in der Hausaufgabe meiner Jüngsten beschrieben wurde.
"Die Syrer verwendeten ein Seil mit 12 Knoten um einen rechten Winkel darstellen zu können.
A) Beschreibe wie das Seil zwischen 3 Holzlatten verspannt werden muss ?
B) gibt es noch andere Formen an Kombinaten der Knoten um ein rechtwinkliges Dreieck darzustellen ?
C) Wie viele Möglichkeiten gibt es wenn man die Knotenanzahl bis auf 10.000 erhöht ?"
Das diese Zusammenhänge auf dem Satz des Pythagoras beruhen ist eingentlich bekannt. Soweit auch nicht das Problem.
Nun habe ich mir ein Programm geschrieben um die Anzahl der Möglichkeiten zu ermitteln.
def maxi(gmax, *args):
tval = sum(args)
return gmax - tval + 1
MaxKnoten = 10_000
table = [[(a + b + c), a, b, c]\
for a in range(1, MaxKnoten - 1)\
for b in range(1, maxi(MaxKnoten, a))\
for c in range(1, maxi(MaxKnoten, a, b))\
if (a + b + c) <= MaxKnoten and (c ** 2) == ((a ** 2) + ((b ** 2)))]
print(len(table)
Alles anzeigen
Klar stelle ich dir Frage hier, weil das Programm auf einem Raspberry laufen sollte, welche die Kid auch wegen Mathematica immer wieder nutzen.
Wie kann man dieses Programm evt. noch beschleunigen, denn selbst auf einem Modell 4 mit 2GB ist dieses schon seit Stunden damit beschäftigt ?