AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zufals-Boolean erzeugen

Ein Thema von ManuMF · begonnen am 25. Sep 2005 · letzter Beitrag vom 27. Sep 2005
Antwort Antwort
Seite 5 von 6   « Erste     345 6      
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#41

Re: Zufals-Boolean erzeugen

  Alt 27. Sep 2005, 15:02
Ein weiteres Beispiel

Delphi-Quellcode:
function BooleanToString3(Value: Boolean): String;
begin
  if Value = True then Result := 'True'
    else Result := 'False';
end;

begin
  WriteLn( BooleanToString3(Boolean(2)) );
end;
Man erwartet die Ausgabe von "True" bekommt aber "False", obwohl der Source in BooleanToString3() absolut korrekt ist.

Statt AV nun ein falscher Programmablauf den es gilt als Programmierer langwierig zu debuggen.

Gruß Hagen
  Mit Zitat antworten Zitat
Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#42

Re: Zufals-Boolean erzeugen

  Alt 27. Sep 2005, 15:06
Zitat:
... sind doch zufällig. Ich wollte halt eine "gleichmäßige" Lösung haben ...
Zitat von Toxman:
Es geht schon nicht mehr darum, einen zufälligen Boolean zu bekommen, sondern Möglichkeiten zu garantieren (!) dass True und False gleich oft erscheinen.
Dann müsst "ihr" aber den Titel ändern ... denn Zufälligkeit hat nix mit Gleichmäßigkeit zu tun ...

EDIT: jaja das wurde schon "mal" erwähnt ..
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#43

Re: Zufals-Boolean erzeugen

  Alt 27. Sep 2005, 15:12
Zitat:
Dann müsst "ihr" aber den Titel ändern ... denn Zufälligkeit hat nix mit Gleichmäßigkeit zu tun ...
Tja, und dies ist eben nicht ganz richtig. Zufall erzeugt schon im Mittel eine absolute Gleichverteilung. Je länger eine Zufallskette von Ereignissen wird desto unwahrscheinlicher werden alle WorstCase Szenarien. ZB. bei 1000 Boolans per Zufall erzeugt ist eine Kette aus lauter TRUE's mit 1/2^1000 sehr sehr unwahrscheinlich, aber denoch möglich. Im Allgemeinen werden es aber ca. 50% TRUE/FALSE Werte enthalten sein.

Zufall tendiert also im Gegensatz zu Chaos immer zu einer Gleichverteilung bzw. Uniformität. Es ist schon kourios, aber mathematisch gesehen besteht beim Zufall der relevante Unterschied in der Größe der Datenmenge die man analysiert. Je kleiner die Datenmenge ist des ungleichverteilter, chaosartiger erscheint diese Menge. Je größer die Menge wird desto Uniformer und gleichverteilt werden die Ereignisse auftreten. Zufall ist also abhängig von der Betrachtungsweise.

Gruß Hagen
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#44

Re: Zufals-Boolean erzeugen

  Alt 27. Sep 2005, 15:12
Zitat:
Dann müsst "ihr" aber den Titel ändern ... denn Zufälligkeit hat nix mit Gleichmäßigkeit zu tun ...
Das sehe ich nicht so. Wenn du das durchmischte array nimmst, bringt dir Anfangs die Information über die Verteilung von True und False recht wenig, wenn du den nächsten Wert vorraussagen willst. Gegen Ende wird die Vorraussage zwar einfacher, ab fast nie sicher.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#45

Re: Zufals-Boolean erzeugen

  Alt 27. Sep 2005, 15:16
Zitat von Toxman:
Zitat:
Dann müsst "ihr" aber den Titel ändern ... denn Zufälligkeit hat nix mit Gleichmäßigkeit zu tun ...
Das sehe ich nicht so. Wenn du das durchmischte array nimmst, bringt dir Anfangs die Information über die Verteilung von True und False recht wenig, wenn du den nächsten Wert vorraussagen willst. Gegen Ende wird die Vorraussage zwar einfacher, ab fast nie sicher.
Aber "Zufall" bedeutet, daß du ein Experiment beliebig oft unter genau den gleichen Voraussetzungen wiederholen kannst. Das ist hier aber dann nicht so. Im schlimmsten Fall kannst du nach 500 erzeugten Werte mit Sicherheit sagen, was die nächsten 500 ergeben. Das hat mit Zufall nichts mehr zu tun
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#46

Re: Zufals-Boolean erzeugen

  Alt 27. Sep 2005, 15:19
@Toxman:

korrekt. Nicht die Gleichverteilung ist ein Indiz für Zufälligkeit, sondern so Vorhersagewahrscheinlichkeit des nächsten zu erwartenden Wertes. Man wird sich bei dieser Vorhersage mit exakt 50% irren oder ebnen richtig liegen, und das ist zufälliges Raten !

Gruß Hagen
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#47

Re: Zufals-Boolean erzeugen

  Alt 27. Sep 2005, 15:20
Zitat:
Aber "Zufall" bedeutet, daß du ein Experiment beliebig oft unter genau den gleichen Voraussetzungen wiederholen kannst.
Warum dass denn? Es geht doch viel eher darum, dass die zufälligen Elemente in meinem Exement möglichst selten gleich sein sollten.

Ich habe weiter oben im Thread schon gesagt, dass ich diese Methode mit dem Array.Mischen nicht allzu toll finde, nur war es anscheinend dass, was gesucht war.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#48

Re: Zufals-Boolean erzeugen

  Alt 27. Sep 2005, 15:27
@leddl:

Zitat:
Aber "Zufall" bedeutet, daß du ein Experiment beliebig oft unter genau den gleichen Voraussetzungen wiederholen kannst. Das ist hier aber dann nicht so. Im schlimmsten Fall kannst du nach 500 erzeugten Werte mit Sicherheit sagen, was die nächsten 500 ergeben. Das hat mit Zufall nichts mehr zu tun

Du widersprichst dich ja im selben Satz

Ein Experiment beliebig oft exakt reproduzieren kann man nur OHNE Zufall.
Angenommenes Experiment

1 +1 = 2

Dies lässt sich jederzeit exakt reproduzieren.

1 + Random(10) = 2

lässt sich nicht beliebig oft reporduzieren.

ABER, statistich gesehen, also im Mittel werden wir nun feststellen das bei diesem Experiment exakt 1/10 aller Experimente korrekte Lösungen bringen, und 9/10'tel immer falsche.

Diese statistische Aussage ist nun jederzeit exakt reproduzierbar vorrausgesetzt man mancht in der statistischen Auswertung genügend viele sochler Experimente. Je geringer diese Anzahl an Experimenten ist desto weniger sind die Ergebnisse reproduzierbar, je mehr man von solchen Experimenten durchführt desto mehr wird die statistische Auswertung reproduzierbar und sich mit einer unendlich großen Anzahl von Experimenten wird sich exakt das mathematich vorrausberechnete Schema von 1/10'tel zi 9/10'tel ergeben.

Gruß Hagen
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#49

Re: Zufals-Boolean erzeugen

  Alt 27. Sep 2005, 15:28
Zitat von Toxman:
Warum dass denn? Es geht doch viel eher darum, dass die zufälligen Elemente in meinem Exement möglichst selten gleich sein sollten.
Warum? Weil es die Definition eines Zufallsexperimentes ist. Darum! Wenn du durch dein Eingreifen die Wahrscheinlichkeiten änderst, kann eben einfach nicht mehr von Zufälligkeit gesprochen werden.
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#50

Re: Zufals-Boolean erzeugen

  Alt 27. Sep 2005, 15:34
@Hagen:
Du hast mich falsch verstanden. Mit den Voraussetzungen meinte ich die Voraussetzungen, unter denen sich die Wahrscheinlichkeiten ergeben. Also zB die 6 Seiten eines Würfels. Hättest du einen Würfel, bei dem beim Werfen immer Stücke abbrechen, könntest du das ganze nicht mit den selben Wahrscheinlichkeiten (=^ Voraussetzungen) wiederholen und hast damit eine Verfälschung. Natürlich wäre das in gewisser Hinsicht immer noch Zufall, aber ich denke, du weißt, worauf ich hinauswollte.
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 6   « Erste     345 6      


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 12:54 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