この実装にはスタック保護がないため、funtion呼び出しをヒープに確実に書き込むため、私は自分のmicropythonプラットフォームで再帰を使用できないことがわかりました。非再帰アルゴリズムへの再帰的な再帰の手助けが必要
私はこの再帰的なpythonコードを書き直さなければなりません。まだ解決策が見つかりませんでした。ここで
ランドマークが何であるか、いくつかのexplainations:
層 - 再帰は今、どのように「深いです」。最も深いレイヤーは、self.blobsのリストに依存します。レイヤーがlen(self.blobs)-1の場合、再帰が返される必要があります。そうでない場合は、再度再帰します。
firstIDとlastIDは(self.differenceValidに判明())の組み合わせが可能であるか否かを見つけ出すためのパラメータ
possibleQueuesある戻り値です。ご質問がございましたら、お気軽に等しい
ある
[[0, 2, 4], [6, 8, 1, 3], [0, 2, 4], [1, 3]]
LEN(self.blobs)とlen(self.possibleLandmarkIDs): self.possibleLandmarkIDsは次のように、数字を含むネストされたリストです。あなたが私を助けることを願っています!
def findQueueCombinationsRecursive(self, layer, firstID, lastID):
possibleQueues = []
for index in range(len(self.possibleLandmarkIDs[layer])):
landmarkID = self.possibleLandmarkIDs[layer][index]
if layer == 0:
firstID = self.possibleLandmarkIDs[layer][index]
lastID = self.possibleLandmarkIDs[layer][index]
if self.differenceValid(firstID, lastID, landmarkID):
if layer == len(self.blobs) - 1:
possibleQueues.append([])
possibleQueues[len(possibleQueues)-1].append(landmarkID)
else:
deeperList = self.findQueueCombinationsRecursive(layer + 1, firstID, landmarkID)
if len(deeperList) == 0:
continue
for item in deeperList:
possibleQueues.append([])
possibleQueues[len(possibleQueues)-1].append(landmarkID)
for i in item:
possibleQueues[len(possibleQueues)-1].append(i)
return possibleQueues
再帰を反復に変換する方法(およびその逆)については、多くのサイトと例があります。これらのどれもあなたが小さな試みでも書くのを助けませんでしたか?また、この関数の動作を指定したり、アルゴリズムを記述したり、サンプルの入力と出力を表示したり、ドライバルーチンを提供したりすることもできません。 – Prune
ようこそStackOverflowへ。ヘルプドキュメントの投稿ガイドラインを読み、それに従ってください。 [on topic](http://stackoverflow.com/help/on-topic)および[How to Ask](http://stackoverflow.com/help/how-to-ask)をここで適用してください。 StackOverflowは、デザイン、コーディング、リサーチまたはチュートリアルサービスではありません。 – Prune
["誰かが私を助けますか?"有効な質問ではありません](https://meta.stackoverflow.com/questions/284236/why-is-can-someone-help-me-not-an-actual-question)。これは通常、あなたが必要とするものは、ローカルの家庭教師と30分、またはスタックオーバーフローではなくチュートリアルを歩くことを示唆しています。 – Prune