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-2025
 
zurück

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

Allgemeine Diskussionen
groooßer Fehler. 
Autor: Snof
Datum: 10.07.04 03:07

In dem gepostetem Code war ein Fehler enthalten. Hier der Neue:
Option Strict On
 
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", CInt(dTimes \ (Runs + 1)).ToString( _
      "#,##0").PadLeft(7, " "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)
 
    Prims(0) = True
    Prims(1) = True
 
    For i = 4 To MaxValue Step 2
      Prims(i) = True
    Next i
 
    For P = 3 To MaxValue Step 2
      If Not Prims(P) Then
        For i = 2 * P To MaxValue Step P
          Prims(i) = True
        Next i
      End If
 
      If P * P > MaxValue Then
        Exit For
      Else
        P *= P
      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
 
    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 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
Und die neuen Werte:
  2.000.000    28 ms
 20.000.000   281 ms
200.000.000 2.828 ms


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.237JennyB04.07.04 09:07
Re: Warum Speicherbedarf für boolean 2 bytes 1.213hobby_programmer04.07.04 18:15
Re: Warum Speicherbedarf für boolean 2 bytes 1.388E704.07.04 18:18
Re: Warum Speicherbedarf für boolean 2 bytes 1.218LonelySuicide66604.07.04 21:59
Re: Warum Speicherbedarf für boolean 2 bytes 1.147hobby_programmer04.07.04 22:01
Re: Warum Speicherbedarf für boolean 2 bytes 1.172E705.07.04 18:36
Re: Warum Speicherbedarf für boolean 2 bytes 1.072LonelySuicide66606.07.04 17:02
Re: Warum Speicherbedarf für boolean 2 bytes 1.570ModeratorMartoeng05.07.04 19:43
Re: Warum Speicherbedarf für boolean 2 bytes 1.145E705.07.04 20:31
Re: Warum Speicherbedarf für boolean 2 bytes 1.150ModeratorMartoeng05.07.04 21:03
Re: Warum Speicherbedarf für boolean 2 bytes 1.160Snof06.07.04 00:03
Re: Warum Speicherbedarf für boolean 2 bytes 1.140ModeratorMartoeng06.07.04 09:49
Was ich mir vorstellen könnte...1.129ModeratorMartoeng05.07.04 19:51
Re: Was ich mir vorstellen könnte...1.043hobby_programmer06.07.04 15:39
Re: Was ich mir vorstellen könnte...1.055LonelySuicide66606.07.04 17:05
Re: Was ich mir vorstellen könnte...1.147E706.07.04 19:22
Re: Was ich mir vorstellen könnte...1.048LonelySuicide66606.07.04 21:12
Re: Warum Speicherbedarf für boolean 2 bytes 1.184Mr. Fox07.07.04 09:11
Re: Warum Speicherbedarf für boolean 2 bytes 1.080Mahobi08.07.04 11:24
Re: Warum Speicherbedarf für boolean 2 bytes 1.044hobby_programmer08.07.04 13:25
Re: Warum Speicherbedarf für boolean 2 bytes 1.149Mahobi08.07.04 14:11
Re: Warum Speicherbedarf für boolean 2 bytes 999hobby_programmer08.07.04 17:50
Re: Warum Speicherbedarf für boolean 2 bytes 988Mahobi09.07.04 08:53
Re: Warum Speicherbedarf für boolean 2 bytes 1.016ModeratorMartoeng09.07.04 09:34
Re: Warum Speicherbedarf für boolean 2 bytes 973Mahobi09.07.04 12:21
Re: Warum Speicherbedarf für boolean 2 bytes 983Mr. Fox08.07.04 20:34
Re: Warum Speicherbedarf für boolean 2 bytes 1.121Mahobi09.07.04 12:47
Re: Warum Speicherbedarf für boolean 2 bytes 1.144Mahobi09.07.04 18:15
Re: Warum Speicherbedarf für boolean 2 bytes 1.051Mahobi09.07.04 19:11
Re: Warum Speicherbedarf für boolean 2 bytes 1.070hobby_programmer09.07.04 22:37
Meine Zahlen1.052Snof10.07.04 01:53
groooßer Fehler.1.053Snof10.07.04 03:07
Re: Warum Speicherbedarf für boolean 2 bytes 1.030Mahobi10.07.04 00:47
Re: Warum Speicherbedarf für boolean 2 bytes 977hobby_programmer10.07.04 13:11
Re: Warum Speicherbedarf für boolean 2 bytes 1.017E710.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