|
| RND hvor "random" er den? Fra : Anders Jacobsen |
Dato : 02-12-00 22:30 |
|
Hej,
Jeg har lavet lidt kode:
For i = 0 To ArrayCount
Igen:
Tmp2 = Int((MaxTal * Rnd) + 1)
' MsgBox tmp2
For j = 0 To ArrayCount
If Tmp2 <> intArr(j) Then
tmp3 = Tmp2
Else
GoTo Igen
End If
Next
intArr(i) = Tmp3
oriArr(i) = Tmp3
Next
Deværre ser det ud som om random funktionen er meget lidt random, eller
rettere den har det med at spytte de samme tal ud flere gang (der er i
hvertfald hvad jeg observerer) - har andre set ligende resultater - eller er
der en bedre måde at lave random tal på?
Anders
| |
Bjørn Jeberg (02-12-2000)
| Kommentar Fra : Bjørn Jeberg |
Dato : 02-12-00 22:41 |
|
Anders Jacobsen <aj@mailme.dk> wrote in message
news:90bpd9$lvs$1@news.inet.tele.dk...
>
> Deværre ser det ud som om random funktionen er meget lidt random, eller
> rettere den har det med at spytte de samme tal ud flere gang (der er i
> hvertfald hvad jeg observerer) - har andre set ligende resultater - eller
er
> der en bedre måde at lave random tal på?
>
Start med at give kommandoen Randomize.
--
Bjørn
| |
Anders Jacobsen (03-12-2000)
| Kommentar Fra : Anders Jacobsen |
Dato : 03-12-00 08:15 |
|
Hej Bjørn
> Start med at give kommandoen Randomize.
Ikke helt forstået? er der forskel på ran og randomize? og hvad mener du med
start med randomize?
Anders
| |
Anders Jacobsen (03-12-2000)
| Kommentar Fra : Anders Jacobsen |
Dato : 03-12-00 08:27 |
|
Hej Bjørn
> > Start med at give kommandoen Randomize.
Så er den i vinkel, selvom jeg syntes det er en lidt sjov måde at lave det
på....
Tak for hjælpen
Anders
| |
CHRistian (03-12-2000)
| Kommentar Fra : CHRistian |
Dato : 03-12-00 15:34 |
|
"Anders Jacobsen" <aj@mailme.dk> wrote:
>> Start med at give kommandoen Randomize.
>
>Ikke helt forstået? er der forskel på ran og randomize? og hvad mener du med
>start med randomize?
Hmm, da det indlæg, jeg sendte allerede ved 23tiden i går ikke er kommet
frem, vil jeg sende det igen:
---start----
Følgende er gældende for BASIC i almen, ca.
Du har kun brugt RND.
RND /giver/ en værdi af en, der /laver/ tilfældige tal. Denne 'laver' er
RANDOMIZE. RANDOMIZE har brug for et tal til at danne de tilfældige tal.
Hvis dette tal er det samme hvergang, så bliver de tilfældige tal de
samme for hvert start. Tricket er så at have et nyt tal hele tiden til
bruge for RANDIMIZE; dette kunne fx være værdien af TIMER
EKS PÅ RANDOM-heltal:
RANDOMIZE TIMER
PRINT (10 * RND) \ 1
---slut---
Jeg kan så se, at der i VB åbenbart ikke behøves at blive angivet en
talværdi til RANDOMIZER, hmm.
--
{PS: Indlæg med OE5-fejlen i subject ('Sv' og ikke 'Re') --> killfilter}
OE5-Sv-info + Usenet-test + FreeAgent-newbie-hjælp = www.whitehat.dk/cbh
Rapid-Q BASIC:Console,GUI,Freeware: http://www.basicguru.com/abc/rapidq/
Mvh., Chr. | NB: epost-adr. virker | http://thecola.homepage.com/ -syret
| |
Peter Knutsen (03-02-2001)
| Kommentar Fra : Peter Knutsen |
Dato : 03-02-01 21:12 |
|
CHRistian wrote:
> Jeg kan så se, at der i VB åbenbart ikke behøves at blive angivet en
> talværdi til RANDOMIZER, hmm.
Fra en help-fil
---
Remarks
Randomize uses number to initialize the Rnd function's random-number
generator, giving it a new seed value. If you omit number, the value
returned by the system timer is used as the new seed value.
---
Det overrasker mig egentlig ikke, Randomize Timer er såvidt jeg
ved en udmærket metode. Det gør VB så automatisk hvis man ikke
angiver et seed-number.
Jeg har dog et problem med et program jeg selv har komponeret,
fordi outputtet stadigvæk har et tydeligt mønster, selv om jeg
indleder med Randomize Timer. Hvis man trækker tilpas mange
tilfældige tal (og mit program konsumerer bogstaveligt talt
milliarder af tilfældige tal) så holder de åbenbart op med at
være tilfældige.
--
Peter Knutsen
| |
Tomas Christiansen (04-02-2001)
| Kommentar Fra : Tomas Christiansen |
Dato : 04-02-01 00:12 |
|
Peter Knutsen skrev:
> Hvis man trækker tilpas mange
> tilfældige tal (og mit program konsumerer bogstaveligt talt
> milliarder af tilfældige tal) så holder de åbenbart op med at
> være tilfældige.
Der har tidligere været én, som har nævnt antallet af "tilfældige" tal, som
man kan trække ud af VB inden de begynder at gentage sig selv. Jeg mener at
det var ca. 16,7 millioner tal, hvilket så er for lidt til dig.
En metode til at råde lidt bod på det, kunne være at du "en gang imellem"
udfører en Randomize. Det skal helst ske så tilfældigt som muligt.
Det hjælper selvfølgelig ikke på at der kun er (så vidt jeg husker) 16,7
millioner tilfældige tal, men det hjælper formentlig på "tilfældiggøre"
rækkefølgen hvormed du får dem.
-------
Tomas
| |
Niels (04-02-2001)
| Kommentar Fra : Niels |
Dato : 04-02-01 17:57 |
|
"Tomas Christiansen" <toc@blikroer.removethis.dk> wrote in message
news:de0f6.460$qv4.7853@news.get2net.dk...
> Peter Knutsen skrev:
> > Hvis man trækker tilpas mange
> > tilfældige tal (og mit program konsumerer bogstaveligt talt
> > milliarder af tilfældige tal) så holder de åbenbart op med at
> > være tilfældige.
>
> Der har tidligere været én, som har nævnt antallet af "tilfældige" tal,
som
> man kan trække ud af VB inden de begynder at gentage sig selv. Jeg mener
at
> det var ca. 16,7 millioner tal, hvilket så er for lidt til dig.
>
> En metode til at råde lidt bod på det, kunne være at du "en gang imellem"
> udfører en Randomize. Det skal helst ske så tilfældigt som muligt.
> Det hjælper selvfølgelig ikke på at der kun er (så vidt jeg husker) 16,7
> millioner tilfældige tal, men det hjælper formentlig på "tilfældiggøre"
> rækkefølgen hvormed du får dem.
>
> -------
> Tomas
Det er korrekt der er 16,7 millioner tilfældige tal (eller retter 2^24).
Men disse tal er faktisk ikke tilfældige, de ser tilfældige ud. Og den
måde de bliver tilfældig er ved brug af Randomize som får RND til
at starte et nyt sted inde række af "tilfældige" tal.
Med andre ord man kan ikke bruge Rnd og Randomize til at generere
statistiske undersøgelser der skal bruge mere end 16,7 millioner
tilfældige tal. Jeg vil gå så vidt at sige højst 1 million tilfældige tal.
Mvh
Niels G
| |
Keld Sørensen (04-12-2000)
| Kommentar Fra : Keld Sørensen |
Dato : 04-12-00 08:19 |
|
Der er noget, der hedder HELP, læs dog
vejledningen !
Det kan du ligeså godt vende dig til, hvis du vil
programmere.
mvh Keld Sørensen
"Anders Jacobsen" <aj@mailme.dk> skrev i en
meddelelse news:90crm1$cgh$1@news.inet.tele.dk...
> Hej Bjørn
>
> > Start med at give kommandoen Randomize.
>
> Ikke helt forstået? er der forskel på ran og
randomize? og hvad mener du med
> start med randomize?
>
> Anders
>
>
| |
Anders Jacobsen (04-12-2000)
| Kommentar Fra : Anders Jacobsen |
Dato : 04-12-00 18:17 |
|
> Der er noget, der hedder HELP, læs dog
> vejledningen !
Er du syg i bøtten (i givet fald er du jo så lovligt undskyldt!) - du kan da
bare lade være med at svare - der skal være plads til alle her, det er
ligesom konceptet!
| |
Niels G (06-12-2000)
| Kommentar Fra : Niels G |
Dato : 06-12-00 09:49 |
|
<PLONK>
"Anders Jacobsen" <aj@mailme.dk> wrote in message
news:90gjbf$sdt$1@news.inet.tele.dk...
> > Der er noget, der hedder HELP, læs dog
> > vejledningen !
>
> Er du syg i bøtten (i givet fald er du jo så lovligt undskyldt!) - du kan
da
> bare lade være med at svare - der skal være plads til alle her, det er
> ligesom konceptet!
>
>
>
>
| |
Anders Jacobsen (02-12-2000)
| Kommentar Fra : Anders Jacobsen |
Dato : 02-12-00 22:35 |
|
Jeg kan lige tilføje at jeg har lavet lidt mere research, det viser sig at
kører du programmet 10 gange, lukker det ned starter det igen, kører det 10
gange, er det nøjagtig de samme tal der kommer ud - strange eller hvad?
Anders
| |
|
|