Random

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
Benutzeravatar
PureBaser
Beiträge: 180
Registriert: 08.09.2004 21:20
Wohnort: Berlin
Kontaktdaten:

Random

Beitrag von PureBaser »

Hi Leute,
wie werden RANDOM-Funktionen berechnet?! Mathemathik ist ein exakte Hilfswissenschaft mit immer gleichen Ergebnissen, also kann nach meinem bisherigen Wissenstand kein Zufall "berechnet" werden?! :freak:
PB4 & WinXP_SP2
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Random

Beitrag von Kiffi »

> wie werden RANDOM-Funktionen berechnet?!

http://de.wikipedia.org/wiki/Zufallszahl

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
Eric
Beiträge: 303
Registriert: 05.09.2004 09:50
Wohnort: Göttingen

Beitrag von Eric »

Die meisten Funktionen erzeugen Pseudo-Zufallszahlen d.h., dass sich die Zahlen nach einer Periode wiederholen
und, dass man mit dem gleichen Random-Seed auch die gleichen 'Zufallszahlen' erhält.

Unter Linux gibt es dann noch /dev/random,
das versucht Entropie von der Harware zu 'sammeln'.
El_Choni_work: cant't you just spit the binary data to sqlite, as you would spit a hamster into a microwave oven?
* Fangles falls off the chair laughing
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

eine mögliche routine ist diese:

Code: Alles auswählen

#m=100000000 
#m1=10000 
#b=31415821 

i.l 
Global a.l 
N.l 

Procedure mult(p.l,q.l) 
  p1.l 
  p0.l 
  q1.l 
  q0.l 
  p1=Int(p/#m1) 
  p0=p%#m1 
  q1=Int(q/#m1) 
  q0=q%#m1 
  ProcedureReturn (((p0*q1+p1*q0)%#m1)*#m1+p0*q0)%#m 
EndProcedure 

Procedure myrandom(r)  ;r=max 
  a=(mult(a,#b)+1)%#m 
  ProcedureReturn Int((Int(a/#m1)*r)/#m1)+1  ;zahlen von 1 bis r 
EndProcedure 

N=10 
a=Random(12135)   ;seed 
For i=1 To N 
  Debug myrandom(11)  
Next
ich muss das nochemal umsetzen, ich find nur das alte C-Buch nimmer...

tatsache ist, computergesteuerter Zufall ist kein zufall.

es kommt drauf an, die algos richtig zu beherrschen...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Sir0Kuhl
Beiträge: 47
Registriert: 04.09.2006 01:12

Beitrag von Sir0Kuhl »

damit man keine festen berechnungen und zahlen hat, kann man zb die systemuhrzeit verwenden und damit die nötige berechnung durchführen um einen zufall zu erzeugen
AMD Sempron 2800+ 1,6 ghz | 768 MB RAM | Radeon X1600PRO | PureBasic 4.0 | Blitz3D
Benutzeravatar
PureBaser
Beiträge: 180
Registriert: 08.09.2004 21:20
Wohnort: Berlin
Kontaktdaten:

Beitrag von PureBaser »

Aha. Thx
PB4 & WinXP_SP2
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

Alle reinen Software-Zufallsgeneratoren liefern Pseudozufallsnummern.
Es gibt aber echte zufälligkeit in form von Hardwarezufallsgeneratoren... ein System das ich mal gesehen hatte benutzte zb eine Webcam in verbindung mit einer Lavalampe :D
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ahja... is ja interessant... o_O"



also, die hardware-mäßigen zufallsgeneratoren, von denen ich weiß, benutzen den frequenzausgang eines synthesizers, der auf "weißes rauschen" steht. das ist die technische lösung, die einem "zufall" am nächsten kommt.

natürlich ist es extremer aufwand, etwas zu programmieren, was nur eine "idee" ist, und in der realität nicht existiert.

tatsächlich ist aber programmtechnisch eine saubere wiederholbare reihe vorzuziehen, bzw. eine gruppe von unabhängigen reihen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Habt ihr schonmal von dem Psychischen Computer Netzwerk gehört, welches echte Zufallszahlen durch Münzwürfe(Oder eben eine ähnliche Methode) in mehreren kleinen Kästen auf der ganzen Welt aufzeichnet? Da schlug der Zufall immer dann so sehr aus(Es war deutlich zu erkennen), wenn etwas schreckliches auf der Welt passiert ist. Z.B. 11. September 2001 um die selbe Uhrzeit, ... .

Echter Zufall ist machbar, allerdings nur wenn man eine neue Peripherie-Hardware bastelt, in der sich viel Bewegt und auch Umwelteinwirkungen platz haben.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
#NULL
Beiträge: 2237
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

ein paar links..

http://www.random.org/files/
http://www.lavarnd.org/
http://www.fourmilab.ch/hotbits/
http://www.puran2.ch/index.html
http://www.fourmilab.ch/rpkp/experiments/pendulum/

der Pentium III soll einen rauschgenerator integriert gehabt haben.
solche rauschgeneratoren kann man für pc's auch so kaufen (weiß jemand ob es da auch pci varianten gibt?). solches 'rauschen' ermöglicht einem computer eine gewisse 'freiheit' in seinen entscheidungen, die mit pseudo-ZZ nicht möglich sind:
http://www.global-scaling-verein.de/doc ... GS-Com.pdf

<eddi :>
bezüglich darkdragon..
>Synchronizität


pseudozufallszahlen haben die eigenschaft, und werden auch danach in ihrer qualität bewertet, dass sie möglichst gleich verteilt sind.
echte zufallszahlen, verhalten sich wesentlich weniger chaotisch. es können sich bestimmte zahlen sehr häufig wiederholen.
gewonnen werden sie von außerhalb des systems, durch die analyse von strahlung, lärm, licht, ...


lottozahlen auf der ganzen welt, sind - wenn sie z.b. mechanisch gewonnen werden - eher echte ZZ. es wurde beobachtet, dass zeitgleiche lotto-ziehungen auf der ganzen welt ähnliche muster aufweisen.
my pb stuff..
Bild..jedenfalls war das mal so.
Antworten