Random niet Random???

Pagina: 1
Acties:
  • 222 views sinds 30-01-2008
  • Reageer

  • Hu9o
  • Registratie: Mei 2001
  • Laatst online: 14:55

Hu9o

Schokkend

Topicstarter
Hallo lezers,

Ik ben bezig met een programmatje maken VBA. Daar gebruik ik de random functie in om een getal te genereren. Maar nu kom ik er achter dat als ik het programma weer opnieuw start, er weer hetzelfde random getal gegenereerd word.

ik gebruik deze generator:
Int((100 * Rnd) + 1)
Resultaat is:
1e keer ALTIJD 71
2e keer ALTIJD 54
.....

Ik snap hier dus ff niks van, want volgends mij is random toch willekeurig. En dus niet getallen altijd uit dezelfde tabel halen??


Iemand die weet hoe ik de random waarde toch echt random kan krijgen??

>>>>>>>>>>>>>>>>>>>>>>>>>Vertel Microsoft over dit probleem <<<<<<<<<<<<<<<<<<<<<<<<<


  • djexplo
  • Registratie: Oktober 2000
  • Laatst online: 21-12-2025
In qbasic dus waarschijnlijk ook in VB moet je eerst
de code RANDOMIZE of RANDOMIZE TIMER uitvoeren
je kan natuurlijk ook een loepje maken afhankelijk van de tijd en daar dan rnd in oproepen. ;)

'if it looks like a duck, walks like a duck and quacks like a duck it's probably a duck'


  • Buzzman
  • Registratie: Juni 2000
  • Niet online
kicked.to/P&W

Kijk eens naar de functie "randomize()", in delphi husselt die dan de random(X) getallen, ik neem aan dat dat daar dan ook moet :)

  • Hu9o
  • Registratie: Mei 2001
  • Laatst online: 14:55

Hu9o

Schokkend

Topicstarter
Op maandag 17 september 2001 19:59 schreef djexplo het volgende:
In qbasic dus waarschijnlijk ook in VB moet je eerst
de code RANDOMIZE of RANDOMIZE TIMER uitvoeren
je kan natuurlijk ook een loepje maken afhankelijk van de tijd en daar dan rnd in oproepen. ;)
Inderdaad, als ik er RANDOMIZE TIMER voorzet, dan is hij wel echt random.


Bedankt

>>>>>>>>>>>>>>>>>>>>>>>>>Vertel Microsoft over dit probleem <<<<<<<<<<<<<<<<<<<<<<<<<


Verwijderd

hehe bij Pascal is random ook niet random :)

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Voor een computer is een random getal moeilijk te maken, maar met behulp van de tijd lukt het aardig. :)

"The shell stopped unexpectedly and Explorer.exe was restarted."


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 16:25

curry684

left part of the evil twins

Op maandag 17 september 2001 20:06 schreef Hu9o het volgende:
Inderdaad, als ik er RANDOMIZE TIMER voorzet, dan is hij wel echt random.
Nee hoor.

Minder voorspelbaar 8-)

Professionele website nodig?


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 09-01 11:25

D2k

Op maandag 17 september 2001 20:52 schreef curry684 het volgende:

[..]

Nee hoor.

Minder voorspelbaar 8-)
purist :)

Doet iets met Cloud (MS/IBM)


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 08:14

Janoz

Moderator Devschuur®

!litemod

Op maandag 17 september 2001 20:45 schreef jelmervos het volgende:
Voor een computer is een random getal moeilijk te maken, maar met behulp van de tijd lukt het aardig. :)
Nou, zeg maar gerust bijna onmogelijk :)..

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • tomato
  • Registratie: November 1999
  • Niet online
Op maandag 17 september 2001 21:03 schreef Janoz het volgende:
Nou, zeg maar gerust bijna onmogelijk :)..
Nou, zeg maar gerust onmogelijk :)

Of je mag mij gelijk uitleggen hoe een hedendaagse computer echt random kan genereren.

  • WoutF
  • Registratie: Maart 2000
  • Laatst online: 16:21

WoutF

Hoofdredacteur
Op maandag 17 september 2001 21:10 schreef tomato het volgende:

[..]

Nou, zeg maar gerust onmogelijk :)

Of je mag mij gelijk uitleggen hoe een hedendaagse computer echt random kan genereren.
Niet :)

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 16:25

curry684

left part of the evil twins

Op maandag 17 september 2001 21:10 schreef tomato het volgende:
Of je mag mij gelijk uitleggen hoe een hedendaagse computer echt random kan genereren.
De waardes achter de komma van de realtime netspanning opmeten.

;)

Professionele website nodig?


  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Op maandag 17 september 2001 21:52 schreef curry684 het volgende:

[..]

De waardes achter de komma van de realtime netspanning opmeten.

;)
Dat is meten niet genereren!

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 09-01 11:25

D2k

Op dinsdag 18 september 2001 14:29 schreef wasigh het volgende:

[..]

Dat is meten niet genereren!
<elektro wijsheid>
meten is weten
</elektro wijsheid>

Doet iets met Cloud (MS/IBM)


  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Op dinsdag 18 september 2001 14:30 schreef D2k het volgende:

[..]

<elektro wijsheid>
meten is weten
</elektro wijsheid>
<it-wijsheid>
vertrouw nooit apparaten ;)
</it-wijsheid>

Verwijderd

De randomizer zoals gebruikt in java.util.Random:
code:
1
this.seed = (seed ^ 0x5DEECE66DL) & ((1L << 48) - 1);

uitleg: this.seed is je "random" getal. seed is je vorige random getal. Deze word vermenigvuldigd met een bepaald getal, en daarvan worden de laatste 48 bits gepakt. Dat is dus je nieuwe getal. Als je eerste seed altijd gelijk is, worden de volgende getallen ook altijd gelijk.

Veel randomizers werken op deze manier, maar ik heb ook projecten gezien waarbij iets een echt random getal werd aangemaakt. Bijvoorbeeld een computer met een webcam die gericht is op een stel lavalampen. Iedere keer als er een random getal nodig is, maakt die computer een foto waaruit een getal berekend word.

Verwijderd

Er zijn tabellen met Random nummers. Deze zijn niet met een logaritme te voorspellen. Geloof niet dat deze in een chip worden ingebakken. De rnd nr.s worden dan wel met een logaritme bepaald?

  • Grum
  • Registratie: Juni 2001
  • Niet online
het enige wat echt random is, is het verval van kernen bij atomen radioactiviteit :)

[edit]» ff iets netter geformuleerd

Verwijderd

Op maandag 17 september 2001 21:10 schreef tomato het volgende:
Nou, zeg maar gerust onmogelijk :)

Of je mag mij gelijk uitleggen hoe een hedendaagse computer echt random kan genereren.
Kijk eens naar linux, en dan met name naar /dev/random. Dit is een pseudo-rng, maar er worden allerlei metingen in verwerkt zoals muisbewegingen, toetsaanslagen, disk seek times, enz. Het is nog steeds niet echt random, maar het is iig. een stuk onvoorspelbaarder dan een gewone pseudo-rng met een non-volatile seed.

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

voor de meeste toepassingen is pseudo random goed genoeg.
Waarom zou je dan extreem moeilijk doen en resourcegebruikende methoden gebruiken?

  • Morphs
  • Registratie: Augustus 2000
  • Laatst online: 21-05-2025
Op dinsdag 18 september 2001 14:44 schreef J.A.M.F. het volgende:
Er zijn tabellen met Random nummers. Deze zijn niet met een logaritme te voorspellen. Geloof niet dat deze in een chip worden ingebakken. De rnd nr.s worden dan wel met een logaritme bepaald?
Niet met moeilijke woorden strooien als je ze niet kent :) Wat jij bedoelt is een algoritme :)

Verwijderd

Op dinsdag 18 september 2001 15:34 schreef wasigh het volgende:
voor de meeste toepassingen is pseudo random goed genoeg.
Waarom zou je dan extreem moeilijk doen en resourcegebruikende methoden gebruiken?
Voor die toepassingen waarvoor pseudo-random niet goed genoeg is? :) (Dus toepassingen waarin miljoenen random-getallen nodig zijn, zonder dat er patronen in die getallen herkenbaar mogen zijn.) Overigens valt het resource gebruik wel mee, er wordt gebruik gemaakt van data die sowieso al in de kernel is opgeslagen.

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Op maandag 17 september 2001 21:10 schreef tomato het volgende:

[..]

Nou, zeg maar gerust onmogelijk :)

Of je mag mij gelijk uitleggen hoe een hedendaagse computer echt random kan genereren.
Je hebt iets nodig vanaf 'buiten af'. Zoals hier al stond, een webcam+lavalamp. Is een optie, maar je kunt ook de gebruiker even de muis laten bewegen, of iets laten intypen. En hieruit een getal berekenen. Dan ben je aardig random, omdat je iets vanaf 'buiten af' gebruikt. Een mens is nou eenmaal beter in het bedenken van iets willekeurigs. :)

De (volledige) tijd kun je ook gebruiken. Deze komt immers maar 1x voor. :)

"The shell stopped unexpectedly and Explorer.exe was restarted."


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 08:14

Janoz

Moderator Devschuur®

!litemod

Op maandag 17 september 2001 21:10 schreef tomato het volgende:

[..]

Nou, zeg maar gerust onmogelijk :)

Of je mag mij gelijk uitleggen hoe een hedendaagse computer echt random kan genereren.
Had ik er eerst ook staan, maar ik wist het maar voor 99% zeker... Wat ik wel zeker weet is dat de getallen van de staatsloterij niet met een computer getrokken worden :)..

In principe zou je een stukje radio actief materiaal incl geigerteller kunnen 'bakken' in een chip.. Gaat dan wel niet eeuwig mee, maar wel redelijk random :)

Trouwens.. Over die webcam+javalamp.. Hoe kun je daarbij bewijzen of je een uniform verdeelde random generator hebt?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 28-04 14:41

.oisyn

Moderator Devschuur®

Demotivational Speaker

Op dinsdag 18 september 2001 17:35 schreef jelmervos het volgende:

[..]

Je hebt iets nodig vanaf 'buiten af'. Zoals hier al stond, een webcam+lavalamp. Is een optie, maar je kunt ook de gebruiker even de muis laten bewegen, of iets laten intypen. En hieruit een getal berekenen. Dan ben je aardig random, omdat je iets vanaf 'buiten af' gebruikt. Een mens is nou eenmaal beter in het bedenken van iets willekeurigs. :)
Een mens is alles behalve willekeurig en dus heel erg voorspelbaar. Dan heb ik het natuurlijk niet over het bewegen van een muis, maar meer keuzes enzo die die maakt. Als je heel veel mensen een getal tussen de 1 en de 10 laat noemen dan zal je zien dat 7 of 8 het meest genoemd worden :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 28-04 14:41

.oisyn

Moderator Devschuur®

Demotivational Speaker

Op dinsdag 18 september 2001 17:44 schreef Janoz het volgende:

[..]

Trouwens.. Over die webcam+javalamp.. Hoe kun je daarbij bewijzen of je een uniform verdeelde random generator hebt?
je kunt natuurlijk wel 10000000 keer een random waarde op deze manier berekenen, en dan kijken hoe het verdeeld is, en daaruit een soort van opzoektabelletje/formule genereren die het wel goed verdeelt, en klaar is kees :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Normale randomgetallen worden uit ruisbronnen gehaald. Een goede is de spanning die een weerstand genereerd... Daarnaast worden ook zulke complexe systemen gemaakt dat het nauwelijks meer is uit te rekenen (lottoballetjes, one way hashes etc).

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 08:14

Janoz

Moderator Devschuur®

!litemod

Op dinsdag 18 september 2001 17:51 schreef OiSyN het volgende:

[..]

je kunt natuurlijk wel 10000000 keer een random waarde op deze manier berekenen, en dan kijken hoe het verdeeld is, en daaruit een soort van opzoektabelletje/formule genereren die het wel goed verdeelt, en klaar is kees :)
Da's geen bewijs :).. Als je 10000000x geprobeert hebt om een groter priemgetal te vinden dan de grootste die nu bekend is mag je ook niet zeggen dat er geen grotere zijn :).

Ik klink mischien miereneukerig, maar als je al vanalles gaat omzeilen om niet met pseudorandom te werken, dan lijkt me een bewijs van wat voor verdeling (uniform of normaal of wat dan ook) je creeerd niet minder dan logisch :)

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

In de wiskunde is een bitstring random, als er geen kortere manier is om de string te genereren dan de string zelf. Dit klinkt warrig, maar het komt er op neer dat een echt random getal niet comprimeerbaar is (maximale entropie).

Om te testen of je een goede rng hebt geschreven, voldoet het dus een groot bestand vol met (binaire) random getallen te schrijven, en dit bestand vervolgens lossless (met winzip of zo) te comprimeren. Als het winzip bestand kleiner is dan het random bestand, is je rng niet erg random ;)

Verder zijn er wiskundige mogelijkheden om de randomness van een bitstream te bepalen, bv. met de chi-kwadraat test. Zie http://random.mat.sbg.ac.at/

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 16:25

curry684

left part of the evil twins

Op dinsdag 18 september 2001 17:57 schreef CBravo het volgende:
Normale randomgetallen worden uit ruisbronnen gehaald. Een goede is de spanning die een weerstand genereerd... Daarnaast worden ook zulke complexe systemen gemaakt dat het nauwelijks meer is uit te rekenen (lottoballetjes, one way hashes etc).
Zoals ik al zei: het gedeelte van de netspanning op je voeding achter de komma. Zodra je de weers- en overige natuuromstandigheden kunt voorspellen tussen de centrale en je computer is dat niet meer random, maar vraag maar aan het KNMI hoe waarschijnlijk dat is :)

(iemand een vlindertheorietje? :) )

Professionele website nodig?


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 16:25

curry684

left part of the evil twins

Op dinsdag 18 september 2001 17:35 schreef jelmervos het volgende:
De (volledige) tijd kun je ook gebruiken. Deze komt immers maar 1x voor. :)
Daarom wordt ie ook gebruikt bij het creeren van Globally Unique IDentifiers, omdat ie zo random is... 8-)

Professionele website nodig?


Verwijderd

curry684:
Zoals ik al zei: het gedeelte van de netspanning op je voeding achter de komma. Zodra je de weers- en overige natuuromstandigheden kunt voorspellen tussen de centrale en je computer is dat niet meer random,
Ja, jij programmeert zeker in windows... :r

De spanning op een weerstand is fundamenteel van aard. Deze is _echt_ random.

De spanning op je stekker is niet fundamenteel random. Als je buurman een boormachine gebruikt kan je hele randomgenerator worden verandert... Oops, de wasmachine gaat aan...

Gebruik toch gewoon normale manieren om een random getal te krijgen. Is dat niet goed genoeg, verdiep je er dan in en koop iets goeds. Zoveel kan een weerstand+AD converter niet kosten.

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 16:25

curry684

left part of the evil twins

Op dinsdag 18 september 2001 19:56 schreef CBravo het volgende:
Ja, jij programmeert zeker in windows... :r
Waar slaat dat nu weer op? :?
De spanning op een weerstand is fundamenteel van aard. Deze is _echt_ random.

De spanning op je stekker is niet fundamenteel random. Als je buurman een boormachine gebruikt kan je hele randomgenerator worden verandert... Oops, de wasmachine gaat aan...
Mag jij mij even uitleggen wat de enorme stroomleiding tussen energiecentrale en computer anders is dan een enorm lange licht variabele weerstand... supergeleiding bestaat nog niet voor thuisgebruik fyi.

* curry684 heeft geen idee waar deze jongen zo opgewonden over raakt... :Z

Professionele website nodig?


Verwijderd

Op dinsdag 18 september 2001 16:38 schreef Morphs het volgende:
[..]
Niet met moeilijke woorden strooien als je ze niet kent :) Wat jij bedoelt is een algoritme :)
:) Klopt, was een beetje aan koffie toe, en als je het tussen de werkzaamheden door doet, gaat het wel eens fout. Vermensen is gisselijk, zeg ik vaker! *D

  • Orphix
  • Registratie: Februari 2000
  • Niet online
Op dinsdag 18 september 2001 18:13 schreef mietje het volgende:
wiskunde opvatting van random....
Maar wie zegt dat een random nummer niet herhaald mag worden (dus niet maximale 'entropie' -> compressie kan). Dus dat een getal meerdere keren achter elkaar voormomt...of mis ik nu iets?

  • Hu9o
  • Registratie: Mei 2001
  • Laatst online: 14:55

Hu9o

Schokkend

Topicstarter
Tjonge jonge zeg, wat mijn simpele vraag toch wel allemaal teweeg kan brengen.

Als ik deze reply nu op een random draadje had gedaan, hoe groot is dan de kans dat hij bij de goede terecht is gekomen?? Valt dit te berekenen met de random functie's die tot nu toe genoemd zijn?? :)

>>>>>>>>>>>>>>>>>>>>>>>>>Vertel Microsoft over dit probleem <<<<<<<<<<<<<<<<<<<<<<<<<


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 09-01 11:25

D2k

Op dinsdag 18 september 2001 21:12 schreef Hu9o het volgende:
Tjonge jonge zeg, wat mijn simpele vraag toch wel allemaal teweeg kan brengen.

Als ik deze reply nu op een random draadje had gedaan, hoe groot is dan de kans dat hij bij de goede terecht is gekomen?? Valt dit te berekenen met de random functie's die tot nu toe genoemd zijn?? :)
neu das weer gewoon statistiek :)

Doet iets met Cloud (MS/IBM)


Verwijderd

In de Windows media player van Windows XP zit ook zo'n random bug.
Stel je hebt een playlist: als hij 3 random nummers afspeelt, en dan klik je er zelf een aan omdat het random gekozen nummer je niet bevalt.
Als vervolgens dat nummer is afgelopen, dan begint hij weer met die 3 zogenaamd "random" nummers.

Verwijderd

Op vrijdag 18 januari 2002 11:02 schreef nerd-o-matic het volgende:
In de Windows media player van Windows XP zit ook zo'n random bug.
Stel je hebt een playlist: als hij 3 random nummers afspeelt, en dan klik je er zelf een aan omdat het random gekozen nummer je niet bevalt.
Als vervolgens dat nummer is afgelopen, dan begint hij weer met die 3 zogenaamd "random" nummers.
Is idd. een bagger ding die WMP. Neem bijv. 4 nummers, zet dat ding in random en skip na een paar sec. het nummer. Blijf skippen, en jawel, zo random is dat ding niet: je krijgt bijv:
code:
1
1-3-2-4-2-4-1-3-1-3-2-4-2-4-1-3-1-3-2-4-2-4-1-3-1-3-2-4-2-4-1-3

See the pattern?

Overigens heb ik dit wel iets simplistisch en overtrokken voorgesteld maar er zit echt gewoon een patroon in.

Conclusie: baggerding (kwa randomizing dan)
Pagina: 1