/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
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



Søg
Reklame
Statistik
Spørgsmål : 177554
Tips : 31968
Nyheder : 719565
Indlæg : 6408851
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste