Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Library: Algorithmen (https://www.delphipraxis.net/28-library-algorithmen/)
-   -   Delphi Schätzen, wie viele Primzahlen es zwischen X1 und X2 gibt (https://www.delphipraxis.net/75846-schaetzen-wie-viele-primzahlen-es-zwischen-x1-und-x2-gibt.html)

Meflin 25. Aug 2006 21:10


Schätzen, wie viele Primzahlen es zwischen X1 und X2 gibt
 
Aloha!

Mit Hilfe folgender Funktion kann man schätzen, wie viele Primzahlen es in dem Zahlenbereich zwischen X1 und X2 gibt, wobei X2 >= X1 ist.

Dazu stehen 3 Methoden zur Verfügung: 1. die "optimistische" Berechnung, die meistens über der tatsächlichen Zahl an Primzahlen liegt, 2. die "pessimistische", die praktisch immer darunter liegt und 3. das Verfahren von Legendre, das mal drüber und mal drunter liegt. Wirklich vorhersagbar sind alle drei nicht :lol:

Delphi-Quellcode:
uses System;

type
  TpMode = (pmOptimistic, pmPessimistic, pmLegendre);

function PrimesInRange(X1, X2: Cardinal; pMode: TpMode): Extended;
begin
  Result := 0;
  case pMode of
    pmOptimistic: Result := (x2 / (ln(x2) - 1)) - (x1 / (ln(x1) - 1));
    pmPessimistic: Result := (x2 / ln(x2)) - (x1 / ln(x1));
    pmLegendre: Result := (x2 / (ln(x2) - 1.08366)) - (x1 / (ln(x1) - 1.08366));
  end;
end;
Beispielaufruf:
Delphi-Quellcode:
blubb := PrimesInRange(0, 100, pmLegendre);
(*
pmOptimistic: 27,74
pmPessimistic: 21,71
pmLegendre: 28,40
tatsächlich: 25
*)
edit: vorgeschlagene Änderung von Flocke übernommen



Alle Zeitangaben in WEZ +1. Es ist jetzt 12:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz