vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: Rekursiv in Iterativ umwandeln 
Autor: ErfinderDesRades
Datum: 09.05.14 09:26

ich hab hier eine Lösung mit Cache:
   Private _RekuCache1(,) As Long
   Private _RekuCache2(,) As Long
 
   Sub Main()
      Dim uhr As New Stopwatch
      Console.WriteLine("Berechnung läuft...")
      Dim c = 21
      Dim a = c, b = c
      uhr.Start()
      Dim erg = Reku1(a, b)
      uhr.Stop()
      Console.WriteLine("Ergebnis: {0}  Zeit: {1}", erg, _
        uhr.ElapsedMilliseconds)
 
      ReDim _RekuCache1(a, b)
      ReDim _RekuCache2(a, b)
      uhr.Restart()
      erg = Rku1(a, b)
      uhr.Stop()
      Console.WriteLine("Ergebnis: {0}  Zeit: {1}", erg, _
        uhr.ElapsedMilliseconds)
 
      '=================================================
      'Ausgabe mit Reku1(26, 26):
      '--------------------------
      'Berechnung läuft...
      'Ergebnis: 5.632.870.627  Zeit: 00:00:30.2627623
   End Sub
 
   Private Function Rku1(a As Integer, b As Integer) As Long
      If a < 1 OrElse b < 1 Then Return 1
      If _RekuCache1(a, b) < 1 Then
         _RekuCache1(a, b) = If(a < 1 OrElse b < 1, 1, Rku1(a - 1, b) + Rku2(b _
           - 2, a - 1))
      End If
      Return _RekuCache1(a, b)
   End Function
 
   Private Function Rku2(a As Integer, b As Integer) As Long
      If a < 1 OrElse b < 1 Then Return 1
      If _RekuCache2(a, b) < 1 Then
         _RekuCache2(a, b) = If(a < 1 OrElse b < 1, 1, Rku1(b, a - 1) + Rku2(a, _
           b - 1))
      End If
      Return _RekuCache2(a, b)
   End Function

(Rechtschreibfehler urheberrechtlich geschützt)

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Rekursiv in Iterativ umwandeln1.190Kuno6009.05.14 02:15
Re: Rekursiv in Iterativ umwandeln667ErfinderDesRades09.05.14 09:26
Re: Rekursiv in Iterativ umwandeln618Kuno6009.05.14 13:34
Re: Rekursiv in Iterativ umwandeln620us471113.05.14 10:50

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel