Python RuntimeError: maximale Rekursionstiefe überschritten

Ich bin neu über Python. Ich schrieb eine Funktion über gibt die Anzahl der Vorkommen von x in der sortierten wiederholten Elemente Array A:

def FindFirstIndex(A, low, high, x, n): low = 0 high = len(A) - 1 if low <= high: mid = low + (high - low) / 2 if (mid == 0 or x > A[mid - 1]) and A[mid] == x: return mid elif x > A[mid]: return FindFirstIndex(A, (mid + 1), high, x, n) else: return FindFirstIndex(A, low, (mid - 1), x, n) return -1 def FindLastIndex(A, low, high, x, n): low = 0 high = len(A) - 1 if low <= high: mid = low + (high - low) / 2 if (mid == n - 1 or x < A[mid + 1]) and A[mid] == x: return mid elif x < A[mid]: return FindFirstIndex(A, low, (mid - 1), x, n) else: return FindFirstIndex(A, (mid + 1), high, x, n) return -1 def COUNT(A, x): i = FindFirstIndex(A, 0, len(A) - 1, x, len(A)) if i == -1: return i j = FindLastIndex(A, i, len(A) - 1, x, len(A)) length = j - i + 1 return length 

Der Fehler ist: RuntimeError: maximale Rekursionstiefe überschritten. Jemand weiß, wie man es löst?

2 Solutions collect form web for “Python RuntimeError: maximale Rekursionstiefe überschritten”

Eine rekursive fuction sollte Argumente in jeder Rekursion überprüfen. Auch müssen die Werte der Argumente ändern. Andernfalls endet es niemals. Zum Beispiel

 def factorial(n): if n == 0: return 1 else: return n * factorial(n-1) 

Was faktorisch von n gibt

Sicher können Sie:

 import sys sys.setrecursionlimit(3000) 

Ich glaube, Python ist Standard ist 1000 so sollte dies tun. Ich warnte dich aber wenn du versuchst und deine Implementierung auf einer sehr großen Liste zu testen python könnte abstürzen, also würde ich dich ermutigen, deinen Code iterativ neu zu implementieren

  • Rekursiv dekrementieren eine Liste durch 1
  • N-Queen-Backtracking in Python: Wie gibt man Lösungen zurück, anstatt sie zu drucken?
  • Ist diese Funktion rekursiv, obwohl sie sich nicht nennt?
  • Rekursiver Generator zum Abflachen von verschachtelten Listen
  • Finde alle Index mit Rekursion
  • Trennungsliste mit Rekursion
  • Python rekursiv anhängen Liste Funktion
  • Notwendigkeit, Pyramiden-Dreieck auf Python neu zu erstellen
  • Maximales Niveau der Rekursion in Python
  • Python Recursive Funktion fehlende Ergebnisse
  • Berechnungsdeterminante einer Matrix (nxn) rekursiv
  • Python ist die beste Programmiersprache der Welt.