vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 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

Allgemeine Diskussionen
Meine Zahlen 
Autor: Snof
Datum: 10.07.04 01:53

Hi

Ich hab das auch mal ausprobiert.

bis 200.000
0 ms

bis 2.000.000
15 ms

bis 200.000.000
1.546 ms

Athlon XP 2200+
768 MB RAM

Ich hab das ganze mal in .NET gemacht. Die Optimierung ist natürlich bei der Kompilierung aktiviert. Hier der Code:
Imports System
Imports System.Console
Imports System.Collections
Imports System.Environment
 
Public Class Main
 
  Shared Sub Main()
    Dim MaxValue, Runs As Integer
    Dim Times As Integer()
    Dim i As Integer
 
    WriteLine("****************")
    WriteLine("*  Primzahlen  *")
    WriteLine("****************")
    WriteLine()
 
    Write("Berechnen bis: ")
    MaxValue = Integer.Parse(ReadLine())
 
    Write("Durchläufe: ")
    Runs = Integer.Parse(ReadLine()) - 1
 
    ReDim Times(Runs)
 
    WriteLine()
 
    For i = 0 To Runs
      Write("{0}. Durchlauf: ", (i + 1).ToString("0"))
      Times(i) = GetPrim(MaxValue)
      WriteLine("{0} ms", Times(i).ToString("#,##0").PadLeft(7, " "c))
    Next
 
    WriteLine()
 
    Dim dTimes As Integer
 
    For i = 0 To Runs
      dTimes += Times(i)
    Next
 
    WriteLine("Durchschnitt: {0} ms", (dTimes \ (Runs + 1)).ToString( _
      "#,##0").PadLeft(6, " "c))
    ReadLine()
 
  End Sub
 
  Private Shared Function GetPrim(ByVal MaxValue As Integer) As Integer
    Dim Start As Integer
 
    Dim Prims As BitArray
    Dim P, i As Integer
 
    Start = TickCount
 
    Prims = New BitArray(MaxValue)
 
    For P = 3 To MaxValue \ 2
      If Not Prims(P) Then
        For i = P * 2 To MaxValue - 1 Step P
          Prims(i) = True
        Next i
      End If
    Next
 
    Prims.Clear()
    Prims = Nothing
 
    Return TickCount - Start
 
  End Function
 
End Class
 
Public Class BitArray
 
  Private aBits As Integer()
  Private Const ElementLength As Integer = 32
 
  Sub New(ByVal Length As Integer)
 
    Dim i As Integer
    Dim RealLength As Integer
 
    RealLength = Length \ ElementLength
 
    If Length Mod ElementLength = 0 Then
      RealLength -= 1
    End If
 
    ReDim aBits(RealLength)
 
  End Sub
 
  Default Public Property Item(ByVal Index As Integer) As Boolean
    Get
      Dim BigIndex As Integer = Index \ ElementLength
      Dim SmalIndex As Integer = 1I << (Index Mod ElementLength)
 
      Return (aBits(BigIndex) And SmalIndex) <> 0
    End Get
    Set(ByVal Value As Boolean)
      Dim BigIndex As Integer = Index \ ElementLength
      Dim SmalIndex As Integer = 1I << (Index Mod ElementLength)
 
      If Value Then
        aBits(BigIndex) = aBits(BigIndex) Or (Not SmalIndex)
      Else
        aBits(BigIndex) = aBits(BigIndex) And (Not SmalIndex)
      End If
    End Set
  End Property
 
  Sub Clear()
    Array.Clear(aBits, 0, aBits.Length)
  End Sub
 
End Class
Was mir fehlt ist eine Funktion,die den RAM wieder leert. Nach 5 durchläufen ist der benötigte Speicher bei 200.000.000 auf 110 MB angewachsen. Nach einem hab ich etwa 36 MB.


demn?chst Online: SnofWare.de
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Warum Speicherbedarf für boolean 2 bytes 1.772hobby_programmer03.07.04 23:34
Re: Warum Speicherbedarf für boolean 2 bytes 1.238JennyB04.07.04 09:07
Re: Warum Speicherbedarf für boolean 2 bytes 1.214hobby_programmer04.07.04 18:15
Re: Warum Speicherbedarf für boolean 2 bytes 1.389E704.07.04 18:18
Re: Warum Speicherbedarf für boolean 2 bytes 1.219LonelySuicide66604.07.04 21:59
Re: Warum Speicherbedarf für boolean 2 bytes 1.148hobby_programmer04.07.04 22:01
Re: Warum Speicherbedarf für boolean 2 bytes 1.173E705.07.04 18:36
Re: Warum Speicherbedarf für boolean 2 bytes 1.073LonelySuicide66606.07.04 17:02
Re: Warum Speicherbedarf für boolean 2 bytes 1.571ModeratorMartoeng05.07.04 19:43
Re: Warum Speicherbedarf für boolean 2 bytes 1.146E705.07.04 20:31
Re: Warum Speicherbedarf für boolean 2 bytes 1.151ModeratorMartoeng05.07.04 21:03
Re: Warum Speicherbedarf für boolean 2 bytes 1.161Snof06.07.04 00:03
Re: Warum Speicherbedarf für boolean 2 bytes 1.141ModeratorMartoeng06.07.04 09:49
Was ich mir vorstellen könnte...1.130ModeratorMartoeng05.07.04 19:51
Re: Was ich mir vorstellen könnte...1.044hobby_programmer06.07.04 15:39
Re: Was ich mir vorstellen könnte...1.056LonelySuicide66606.07.04 17:05
Re: Was ich mir vorstellen könnte...1.148E706.07.04 19:22
Re: Was ich mir vorstellen könnte...1.049LonelySuicide66606.07.04 21:12
Re: Warum Speicherbedarf für boolean 2 bytes 1.185Mr. Fox07.07.04 09:11
Re: Warum Speicherbedarf für boolean 2 bytes 1.081Mahobi08.07.04 11:24
Re: Warum Speicherbedarf für boolean 2 bytes 1.045hobby_programmer08.07.04 13:25
Re: Warum Speicherbedarf für boolean 2 bytes 1.150Mahobi08.07.04 14:11
Re: Warum Speicherbedarf für boolean 2 bytes 1.000hobby_programmer08.07.04 17:50
Re: Warum Speicherbedarf für boolean 2 bytes 989Mahobi09.07.04 08:53
Re: Warum Speicherbedarf für boolean 2 bytes 1.017ModeratorMartoeng09.07.04 09:34
Re: Warum Speicherbedarf für boolean 2 bytes 974Mahobi09.07.04 12:21
Re: Warum Speicherbedarf für boolean 2 bytes 984Mr. Fox08.07.04 20:34
Re: Warum Speicherbedarf für boolean 2 bytes 1.122Mahobi09.07.04 12:47
Re: Warum Speicherbedarf für boolean 2 bytes 1.145Mahobi09.07.04 18:15
Re: Warum Speicherbedarf für boolean 2 bytes 1.052Mahobi09.07.04 19:11
Re: Warum Speicherbedarf für boolean 2 bytes 1.071hobby_programmer09.07.04 22:37
Meine Zahlen1.053Snof10.07.04 01:53
groooßer Fehler.1.053Snof10.07.04 03:07
Re: Warum Speicherbedarf für boolean 2 bytes 1.031Mahobi10.07.04 00:47
Re: Warum Speicherbedarf für boolean 2 bytes 978hobby_programmer10.07.04 13:11
Re: Warum Speicherbedarf für boolean 2 bytes 1.018E710.07.04 14:57

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