vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

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

VB.NET - Fortgeschrittene
Re: .NET und die sehr großen Zahlen 
Autor: Preisser
Datum: 03.09.11 15:30

Nachtrag:

Hier noch eine Variante, die binäre Exponentiation verwendet, womit bei der Berechnung von a^p mod n nur noch log2(p)+1 (abgerundet) Schleifendurchläufe notwendig sind.
    Public Shared Function PotMod(a As Integer, p As Integer, n As Integer) As _
      Integer ' Berechnet (a^p) mod n
        Dim bits As List(Of Boolean) = GetBitsBackwards(p)
        Dim m As Integer = 1
        For i As Integer = bits.Count - 1 To 0 Step -1
            m = m * m Mod n
            If bits(i) Then m = m * a Mod n
        Next
        Return m
    End Function
 
    Private Shared Function GetBitsBackwards(a As Integer) As List(Of Boolean)
        ' gibt eine Bitliste zurück (rückwärts)
        Dim l As New List(Of Boolean)
        While a > 0
            l.Add(a Mod 2 = 1)
            a >>= 1
        End While
        Return l
    End Function
Wie Snof bereits erwähnte, können bei einer derartigen Berechnung die Zahlen nicht so groß werden. Hier dürfte der größte Wert, der entstehen kann, Max((n-1)^2,(n-1)*a) betragen.

Beitrag wurde zuletzt am 03.09.11 um 18:42:04 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
.NET und die sehr großen Zahlen2.269Tomahawk02.09.11 14:43
Re: .NET und die sehr großen Zahlen1.683Preisser02.09.11 14:49
Re: .NET und die sehr großen Zahlen1.710ModeratorDaveS02.09.11 15:13
Re: .NET und die sehr großen Zahlen1.553ModeratorFZelle02.09.11 15:41
Re: .NET und die sehr großen Zahlen1.598Snof02.09.11 22:27
Re: .NET und die sehr großen Zahlen1.550Tomahawk03.09.11 12:20
Re: .NET und die sehr großen Zahlen1.633Preisser03.09.11 12:40
Re: .NET und die sehr großen Zahlen1.721Preisser03.09.11 15:30
Re: .NET und die sehr großen Zahlen1.523ModeratorDaveS03.09.11 16:52
Re: .NET und die sehr großen Zahlen1.539Preisser03.09.11 17:02
Re: .NET und die sehr großen Zahlen1.538ModeratorDaveS03.09.11 17:33
Re: .NET und die sehr großen Zahlen1.558Preisser03.09.11 19:06

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-2025 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