AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Zufallsgleitkommazahlen mit zufälligen Nachkommastellen

Zufallsgleitkommazahlen mit zufälligen Nachkommastellen

Ein Thema von Chemiker · begonnen am 14. Jul 2008 · letzter Beitrag vom 16. Jul 2008
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#11

Re: Zufallsgleitkommazahlen mit zufälligen Nachkommastellen

  Alt 15. Jul 2008, 02:20
Wenn man die Random() Funktion ohne Parameter aufruft, bekommt man Zufallszahlen zwischen 0.0 und 1.0.
Random() ist überladen - siehe OH.
Man muss diesen Wertebereich nur noch verschieben und skalieren.
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: Zufallsgleitkommazahlen mit zufälligen Nachkommastellen

  Alt 15. Jul 2008, 08:02
Hallo,

@sx2008: Das die Random() Function überladen ist, ist mir bekannt, allerdings wenn man einen Werte-Bereich angibt werden nur Interger-Zahlen zurückgegeben.

@Medium: Danke erst mal für ausführliche Informationen. Die erste Funktion müsste nur geändert werden um die Nachkomma-Stellen als Integer zu bekommen.

Geändert:

Delphi-Quellcode:
function dZufallsZahlen(Von, Bis: Integer): Double;
var
  KommaStellen: Integer;
begin
  KommaStellen := trunc(Power(10, random(8))*10);
  Result := iZufallsZahlen(Von*KommaStellen, bis*KommaStellen)/KommaStellen;
end;
Nach einem kurzen Test funktioniert sie wunschgemäß.
Es sollen Zahlen zwischen -1000 und 100000 generiert werden, da sollte der Werte-Bereich noch funktionieren.

Der String der erstellt wird von der Zufallszahl soll unterschiedliche Länge haben und nicht mit Nullen aufgefüllt werden.

Zitat:
Alles andere wäre Rumgehackel und bestenfalls ein "dirty trick", aber nichts zum vorm Chef damit glänzen
Beim Programmieren bin ich mein eigener Chef.

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#13

Re: Zufallsgleitkommazahlen mit zufälligen Nachkommastellen

  Alt 15. Jul 2008, 22:23
Zitat von Chemiker:
@sx2008: Das die Random() Function überladen ist, ist mir bekannt, allerdings wenn man einen Werte-Bereich angibt werden nur Interger-Zahlen zurückgegeben.
Ja, aber überleg doch mal - so bekommt man blitzsaubere Zufallsszahlen als double im Bereich zwischen Von und Bis:
Delphi-Quellcode:
function dZufallsZahl(Von, Bis: Double): Double;
begin
  Result := (Bis-Von)*Random + Von;
end;
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: Zufallsgleitkommazahlen mit zufälligen Nachkommastellen

  Alt 15. Jul 2008, 22:40
Hallo sx2008,

die Zufallszahlen waren nicht das Problem sondern, die variablen Kommastellen.

Prüfe mal Deine Funktion mit den Werten: von: 0.00001 bis: 0.00002 dann wirst Du sehen das der Bereich nicht mehr eingehalten wird.
Medium hat die Erklärung dafür gegeben.

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#15

Re: Zufallsgleitkommazahlen mit zufälligen Nachkommastellen

  Alt 15. Jul 2008, 23:05
Zitat von Chemiker:
die Zufallszahlen waren nicht das Problem sondern, die variablen Kommastellen.
Diese seltsame Bedingung, dass die Anzahl der Nachkommastellen zwischen 0 und 8 liegen soll wiederspricht doch gleichverteilten Zufallszahlen.
Zwischen 0 und 1 gibt es genau 8 Werte, die genau eine Nachkommastelle haben.
Es gibt 90 Werte, die 2 NKs haben, es gibt 900 Werte mit 3 NKs,...
Ein echte Zufallszahl wird mit sehr hoher Wahrscheinlichkeit sehr viele Nachkommastellen haben.
Zwischen zwei Zahlen, egal wie eng sie beieinander liegen, sind unendlich viele Zahlen dazwischen.

Man darf Zufallszahlen auf eine bestimmte Anzahl Nachkommastellen runden und es bleiben immer noch gleichverteilte Zufallszahlen.
Wenn man aber aber wie oben versucht die NKs so zu beeinflussen, dass sie zwischen 0 und 8 liegen,
dann hat das mathematisch nicht mehr viel mit Zufallszahlen zu tun.
Insbesondere ist die Gleichverteilung gestört.
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#16

Re: Zufallsgleitkommazahlen mit zufälligen Nachkommastellen

  Alt 15. Jul 2008, 23:51
Hallo sx2008,

im Grunde genommen werden die Zufallszahlen ab einer zufällig gewählten Stelle abgeschnitten, die Zufallszahlen werden ja bei der Entstehung nicht beeinflusst.
Die Zahlen sollen zwischen -1000 und 100000 liegen.
Die gleichmäßige Wahrscheinlichkeit ist nicht so wichtig, wobei auch bei den Nachkommastellen eine zufällige Verteilung besteht.
Ich bin sowieso der Meinung, dass man mit einem Rechner keine echten Zufallszahlen generieren kann.

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#17

Re: Zufallsgleitkommazahlen mit zufälligen Nachkommastellen

  Alt 16. Jul 2008, 07:50
Zitat von Chemiker:
Ich bin sowieso der Meinung, dass man mit einem Rechner keine echten Zufallszahlen generieren kann.
Na ja, dürfte schon gehen, aber das will ja k(aum)einer. Wir wollen Pseudo-Zufallszahlen, die aber eben gleichverteilt sind. Und, wenns geht, unvorhersehbar. Bei einer Monte-Carlo-Simulation ist das 'unvorhersehbar' egal, aber bei der Kryptographie nicht.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#18

Re: Zufallsgleitkommazahlen mit zufälligen Nachkommastellen

  Alt 16. Jul 2008, 19:57
Hallo alzaimar,

die Zufallszahlen werden für eine Simulation gebraucht. Random() ist nicht für Kryptographie geeignet, laut der Delphi-Hilfe. Zudem würden meine bescheiden Mathematischen Kenntnisse für Kryptographie nicht ausreichen.

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:56 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