![]() |
Rekursionstiefe
Ist wahrscheinlich ziemlich einfach, aber ich komme einfach nicht drauf:
Ich erstelle ein Objekt, dieses Objekt erstellt zwei gleiche Objekte, die beiden neuen Objekte erstellen wieder jeweils zwei neue usw.. Also rekursiv und immer zeitgleich. Jetzt zählt jedes Objekt wenn es (selbst) erstellt wird eine globale Variable hoch, so dass die Variable die Anzahl aller erstellten Objekte darstellt. Jetzt will ich über diese Zahl herausfinden, der wievielte "Schub" Objekte das ist. (keine Ahnung wie ich das anders beschreiben soll) Also: Anzahl erstellter Objekte: 1 -> 2 -> 4 -> 8 -> 16 -> 32 -> 64 -> ... -> n Anzahl Schübe----------------1----2----3----4----5-----6------7--> ... -> ? Meine Frage: Wie kann ich jetzt zur Zahl n die Anzhal der Schübe ausrechnen? Hört sich jetzt sicherlich viel komplizierter an, als es ist. Schwer zu beschreiben... ;) |
Re: Rekursionstiefe
Ich denke mal log2(n)+1 genügt deinen Anforderungen ;)
Wenn du unbedingt formatieren willst: Code-Tags! |
Re: Rekursionstiefe
Zitat:
Vielen Dank! Zitat:
|
Re: Rekursionstiefe
Wenn deine Schübe ab 0 gezählt werden, dann ist die Zahl z deiner erzeugten Objekte die Summe aller 2-er Potenzen von 0 bis n - das ist genau 2 hoch (n + 1) - 1. Die Auflösung nach n ergibt dann log2(z + 1) - 1.
Grüße vom marabu PS: PRE tags zum Zeichnen von Semi-Grafik sind semantisch sauberer... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz