/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
Bech_bb 500
kyllekylle 500
jdjespers.. 500
gibson 300
scootergr.. 300
molokyle 287
10  strarup 270
Tilfældige tal
Fra : rasmusrst@gmail.com


Dato : 27-03-07 18:17

Hej

Jeg prøver, med bds2006, at lave et program som udregner intergraler
på en lidt alternativ måde, vhja. noget sandsynligherdssregning,
skoleprojekt. Til det skal jeg bruge en masse tilfældige tal. Jeg har
set på routinen rand() men den giver mig ikke nok decimaler. Vil
faktisk gerne have n antal decimaler. Men kan ikke få rand til at give
mig tal større end ~100000, hvilket ikke er nok hvis beregningerne
skal blive præcise. Er der en måde at modificere rand() funktionen,
eller findes der en anden måde?

På forhånd tak!

Mvh. Rasmus S.


 
 
Bertel Lund Hansen (27-03-2007)
Kommentar
Fra : Bertel Lund Hansen


Dato : 27-03-07 18:47

rasmusrst@gmail.com skrev:

> faktisk gerne have n antal decimaler. Men kan ikke få rand til at give
> mig tal større end ~100000

Du kan jo gange to af tallene med hinanden. Så kan du komme op på
10^10 osv.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Thormod Johansen (28-03-2007)
Kommentar
Fra : Thormod Johansen


Dato : 28-03-07 14:51

"Bertel Lund Hansen" <unospamo@lundhansen.dk> wrote in message
news:1bfr3mbemh87v.1xwyhp3bt1hvx$.dlg@40tude.net...
> rasmusrst@gmail.com skrev:
>
>> faktisk gerne have n antal decimaler. Men kan ikke få rand til at give
>> mig tal større end ~100000
>
> Du kan jo gange to af tallene med hinanden. Så kan du komme op på
> 10^10 osv.

Og hvordan bliver sandsynlighedsfordelingen af tal så, Bertel?



rasmusrst@gmail.com (27-03-2007)
Kommentar
Fra : rasmusrst@gmail.com


Dato : 27-03-07 19:11

Hej

Ja, det kan man, men så bliver fordelingen af de tilfældige tal ikke
jævn mellem det givne interval, men tættere mod de højere værdier,
eller lavere hvis de er under en.

Mvh. Rasmus S.


Bertel Brander (27-03-2007)
Kommentar
Fra : Bertel Brander


Dato : 27-03-07 19:33

rasmusrst@gmail.com skrev:
> Hej
>
> Ja, det kan man, men så bliver fordelingen af de tilfældige tal ikke
> jævn mellem det givne interval, men tættere mod de højere værdier,
> eller lavere hvis de er under en.

google har 2370000 hits på random number generator, de fleste
er sandsynligvis bedre end den der følger med compileren.

--
Just another homepage:
http://damb.dk
But it's mine - Bertel

Mogens Hansen (28-03-2007)
Kommentar
Fra : Mogens Hansen


Dato : 28-03-07 17:47


<rasmusrst@gmail.com> wrote in message
news:1175015791.422165.321770@b75g2000hsg.googlegroups.com...

[8<8<8<]
> Er der en måde at modificere rand() funktionen,

Det tror jeg ikke.

> eller findes der en anden måde?

Kig på Boost::random
http://www.boost.org/libs/random/index.html
som udgør grundlaget for det random number system der er i C++ Standarden
TR1 - altså noget der kommer til en compiler i nærheden af dig snart.

--
Venlig hilsen

Mogens Hansen



Anders Mølbjerg Lund (02-04-2007)
Kommentar
Fra : Anders Mølbjerg Lund


Dato : 02-04-07 17:38

<rasmusrst@gmail.com> skrev i en meddelelse
news:1175015791.422165.321770@b75g2000hsg.googlegroups.com...
>Hej
>Jeg prøver, med bds2006, at lave et program som udregner intergraler
>på en lidt alternativ måde, vhja. noget sandsynligherdssregning,
>skoleprojekt.
Monte carlo?

> Til det skal jeg bruge en masse tilfældige tal. Jeg har
>set på routinen rand() men den giver mig ikke nok decimaler. Vil
>faktisk gerne have n antal decimaler.

Hvad med
r0*10^0+r1*10^1+r2*10^2 +...+ rn*10^n
hvor r0...rn er tilfældige tal mellem 0 og 9. Måske ikke det mest effiktive,
dog.

Mvh
Anders Lund



Thormod Johansen (07-04-2007)
Kommentar
Fra : Thormod Johansen


Dato : 07-04-07 20:54

"Anders Mølbjerg Lund" <06amlSLETDETTE@nanostud.aau.dk> wrote in message
news:4611314a$0$90276$14726298@news.sunsite.dk...
> <rasmusrst@gmail.com> skrev i en meddelelse
> news:1175015791.422165.321770@b75g2000hsg.googlegroups.com...
>>Hej
>>Jeg prøver, med bds2006, at lave et program som udregner intergraler
>>på en lidt alternativ måde, vhja. noget sandsynligherdssregning,
>>skoleprojekt.
> Monte carlo?
>
>> Til det skal jeg bruge en masse tilfældige tal. Jeg har
>>set på routinen rand() men den giver mig ikke nok decimaler. Vil
>>faktisk gerne have n antal decimaler.
>
> Hvad med
> r0*10^0+r1*10^1+r2*10^2 +...+ rn*10^n
> hvor r0...rn er tilfældige tal mellem 0 og 9. Måske ikke det mest
> effiktive, dog.

Det bliver vel heller ikke uniformt.



Anders Mølbjerg Lund (10-04-2007)
Kommentar
Fra : Anders Mølbjerg Lund


Dato : 10-04-07 21:49

"Thormod Johansen" <test@invalid.invalid> skrev i en meddelelse
news:ev8se8$v9n$1@news.net.uni-c.dk...
>> Hvad med
>> r0*10^0+r1*10^1+r2*10^2 +...+ rn*10^n
>> hvor r0...rn er tilfældige tal mellem 0 og 9.
> Det bliver vel heller ikke uniformt.


Hvorfor skulle den metode farvorisere nogle tal frem for andre?
Mvh
Anders Lund



Thormod Johansen (10-04-2007)
Kommentar
Fra : Thormod Johansen


Dato : 10-04-07 22:19

"Anders Mølbjerg Lund" <06amlSLETDETTE@nanostud.aau.dk> wrote in message
news:461bf84e$0$90273$14726298@news.sunsite.dk...
> "Thormod Johansen" <test@invalid.invalid> skrev i en meddelelse
> news:ev8se8$v9n$1@news.net.uni-c.dk...
> >> Hvad med
>>> r0*10^0+r1*10^1+r2*10^2 +...+ rn*10^n
>>> hvor r0...rn er tilfældige tal mellem 0 og 9.
>> Det bliver vel heller ikke uniformt.
>
>
> Hvorfor skulle den metode farvorisere nogle tal frem for andre?

Jeg havde læst det som om, det var kontinuert uniformt fordelte tal mellem 0
og 1. Hvis det er en sampling med lige stor sandsynlighed fra mængden
{0,...,9}, er det rigtigt nok, som du skrev, en brugbar løsning.



Anders Mølbjerg Lund (15-04-2007)
Kommentar
Fra : Anders Mølbjerg Lund


Dato : 15-04-07 15:33

"Thormod Johansen" <test@invalid.invalid> skrev i en meddelelse
news:evguh7$8j5$1@news.net.uni-c.dk...

>> Hvorfor skulle den metode farvorisere nogle tal frem for andre?
>
> Jeg havde læst det som om, det var kontinuert uniformt fordelte tal mellem
> 0 og 1. Hvis det er en sampling med lige stor sandsynlighed fra mængden
> {0,...,9}, er det rigtigt nok, som du skrev, en brugbar løsning.

Det er jo ingenting der er kontinuert når det er numerisk. Kontinuitet
kræver jo uendelig præcision.


Mvh
Anders Lund



Thormod Johansen (15-04-2007)
Kommentar
Fra : Thormod Johansen


Dato : 15-04-07 19:36

"Anders Mølbjerg Lund" <06amlSLETDETTE@nanostud.aau.dk> wrote in message
news:46223787$0$90273$14726298@news.sunsite.dk...
> "Thormod Johansen" <test@invalid.invalid> skrev i en meddelelse
> news:evguh7$8j5$1@news.net.uni-c.dk...
>
>>> Hvorfor skulle den metode farvorisere nogle tal frem for andre?
>>
>> Jeg havde læst det som om, det var kontinuert uniformt fordelte tal
>> mellem 0 og 1. Hvis det er en sampling med lige stor sandsynlighed fra
>> mængden {0,...,9}, er det rigtigt nok, som du skrev, en brugbar løsning.
>
> Det er jo ingenting der er kontinuert når det er numerisk. Kontinuitet
> kræver jo uendelig præcision.

Så du mener, at man aldrig kan simulere en kontinuert fordeling på en
computer?



Martin M. Pedersen (05-04-2007)
Kommentar
Fra : Martin M. Pedersen


Dato : 05-04-07 21:41

rasmusrst@gmail.com wrote:
> Hej
>
> Jeg prøver, med bds2006, at lave et program som udregner intergraler
> på en lidt alternativ måde, vhja. noget sandsynligherdssregning,
> skoleprojekt. Til det skal jeg bruge en masse tilfældige tal. Jeg har
> set på routinen rand() men den giver mig ikke nok decimaler.

bds2006 ?

Anyway, prøv at se på:
http://www.lns.cornell.edu/spr/1999-01/msg0014148.html

Mvh
Martin

Arne Vajhøj (06-04-2007)
Kommentar
Fra : Arne Vajhøj


Dato : 06-04-07 02:27

Martin M. Pedersen wrote:
> rasmusrst@gmail.com wrote:
>> Jeg prøver, med bds2006, at lave et program som udregner intergraler
>> på en lidt alternativ måde, vhja. noget sandsynligherdssregning,
>> skoleprojekt. Til det skal jeg bruge en masse tilfældige tal. Jeg har
>> set på routinen rand() men den giver mig ikke nok decimaler.
>
> bds2006 ?

Borland Developer Studio 2006

> Anyway, prøv at se på:
> http://www.lns.cornell.edu/spr/1999-01/msg0014148.html

Generelt skal man nok holde sig til de mest kendte algoritmer
uden at forsøge at forbedre dem (medmindre man tilfældigvis er
PhD i matematik med special i tal teori).

Arne

Martin M. Pedersen (07-04-2007)
Kommentar
Fra : Martin M. Pedersen


Dato : 07-04-07 16:18

Arne Vajhøj wrote:
> Martin M. Pedersen wrote:

>> Anyway, prøv at se på:
>> http://www.lns.cornell.edu/spr/1999-01/msg0014148.html
>
> Generelt skal man nok holde sig til de mest kendte algoritmer
> uden at forsøge at forbedre dem (medmindre man tilfældigvis er
> PhD i matematik med special i tal teori).
>

vel, en PhD er ikke nødvendig. Anyway alle funktioner i URL'en som jeg
gav klarer sig ret godt i DieHard-testene, så de er gode.

/Martin

Søg
Reklame
Statistik
Spørgsmål : 177416
Tips : 31962
Nyheder : 719565
Indlæg : 6407858
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste