Ich momentan ein kleines Problem mit folgendem kleinen Python-Skript
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #!/usr/bin/env python import sys sys.setrecursionlimit(50000) def ack(a,b): if a==0: ans=b+1 elif b==0: ans=ack(a-1,1) else: ans=ack(a-1,ack(a,b-1)) return ans i=0 while i<6: j=0 while j<6: print ("Ackermann von (%d,%d) ist %d" % (i,j,ack(i,j))) j+=1 i+=1 |
Wenn ich dieses Skript ausführe schmeißt es mir nach einiger Zeit bei ack(4,1) folgende Fehlermeldung raus:
Speicherzugriffsfehler (Speicherabzug geschrieben)
Und durch Googeln bin ich auch nicht wirklich weiter gekommen. :/ Das Rekursionslimit habe ich so hoch gesetzt, da die Ackermannfunktion sehr viele Rekursionen braucht und ich ihr genug freiraum geben wollte, da sie mir bei werten unter 5000 abgestürtzt ist.