Sign in Join
Wiki copytemporary

Generating Random Numbers/fi: what changed

Revision 3 to 4. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
1-## Contents
2-
3- * 1 Satunnaisluvut
4- * 1.1 Tasainen jakauma
5- * 1.2 Normaali (Gaussian) jakauma
6- * 1.3 Eksponentiaalinen jakauma
7- * 1.4 Gamma jakauma
8- * 1.5 Erlang jakauma
9- * 1.6 Poissonin jakauma
10- * 1.7 Studentin t-jakauma
11- * 1.8 Khii toiseen -jakauma
12- * 1.9 F-jakauma
13- * 1.10 Katso myös
14- * 1.11 Viitteet
15-
161# Satunnaisluvut
172
18-[![fpc source logo.png](/wiki-images/e/e1/fpc_source_logo.png)](</File:fpc_source_logo.png>)
3+![](/wiki-images/8/84/Fpc_source_logo.png)
194
20-**Satunnaisluvut** ovat tärkeitä resursseja tieteellisiin sovelluksiin, koulutuksessa, pelien kehityksessä ja visualisoinnissa. Niillä on myös keskeinen rooli numeerisessa simuloinnissa.
5+**Satunnaisluvut** ovat tärkeitä resursseja tieteellisiin sovelluksiin, koulutuksessa, pelien kehityksessä ja visualisoinnissa. Niillä on myös keskeinen rooli numeerisessa simuloinnissa.
216
22-Algoritmilla luodut satunnaisluvut ovat pseudo-satunnaisia lukuja. Ne kuuluvat (suureen) joukkoon toistuvia numeroita, jonka sekvenssi on mahdotonta tai ainakin vaikeaa ennustaa. Toisin Delphi, joka käyttää lineaarista congruential generaattoria niin Free Pascal käyttää [[A simple implementation of the Mersenne twister|MersenneTwister]] algoritmia sen vakio `[random](<http://lazarus-ccr.sourceforge.net/docs/rtl/system/random.html> "doc:rtl/system/random.html")` toimintaan joka on määritelty [[RTL]]:ssä. Ennen ensimmäistä käyttöä, FPC: n satunnaislukugeneraattori on alustettava yhdellä `[randomize](<http://lazarus-ccr.sourceforge.net/docs/rtl/system/randomize.html> "doc:rtl/system/randomize.html")` funktiokutsulla, joka asettaa siemengeneraattorin. Tämä tehdään ohjelman käynnistysvaiheessa.
7+Algoritmilla luodut satunnaisluvut ovat pseudo-satunnaisia lukuja. Ne kuuluvat (suureen) joukkoon toistuvia numeroita, jonka sekvenssi on mahdotonta tai ainakin vaikeaa ennustaa. Toisin Delphi, joka käyttää lineaarista congruential generaattoria niin Free Pascal käyttää [[A simple implementation of the Mersenne twister|MersenneTwister]] algoritmia sen vakio [[doc:rtl/system/random.html|random]] toimintaan joka on määritelty [[RTL]]:ssä. Ennen ensimmäistä käyttöä, FPC: n satunnaislukugeneraattori on alustettava yhdellä [[doc:rtl/system/randomize.html|randomize]] funktiokutsulla, joka asettaa siemengeneraattorin. Tämä tehdään ohjelman käynnistysvaiheessa.
238
24-Vaihtoehtoisesti Unix- ja Linux-pohjaisissa järjestelmissä on virtuaaliset laitteet `[[Dev random|/dev/random]]` ja `/dev/urandom` ovat käytettävissä. Ne tuottavat (pseudo) satunnaislukuja perustuen laitteistoon.
9+Vaihtoehtoisesti Unix- ja Linux-pohjaisissa järjestelmissä on virtuaaliset laitteet [[Dev random|/dev/random]] ja `/dev/urandom` ovat käytettävissä. Ne tuottavat (pseudo) satunnaislukuja perustuen laitteistoon.
2510
26-Kolmas vaihtoehto on käyttää satunnaislukuja ulkoisista lähteistä, joko siihen erikoistuneista laitteista tai julkisista lähteistä, esimerkiksi perustuen radioaktiivisen hajoamisen tietoihin.
11+Kolmas vaihtoehto on käyttää satunnaislukuja ulkoisista lähteistä, joko siihen erikoistuneista laitteista tai julkisista lähteistä, esimerkiksi perustuen radioaktiivisen hajoamisen tietoihin.
2712
2813## Tasainen jakauma
2914
30-Jatkuvan tasaisen jakauman satunnaisluvut(kutsutaan myös uniform distribution ja rectangular distribution) edustaa symmetrisen jakauman perhettä. Tässä jokaisen satunnaisluvun esiintyminen on koko alueella ovat yhtä todennäköisiä kuin jonkun muun.
15+Jatkuvan tasaisen jakauman satunnaisluvut(kutsutaan myös uniform distribution ja rectangular distribution) edustaa symmetrisen jakauman perhettä. Tässä jokaisen satunnaisluvun esiintyminen on koko alueella ovat yhtä todennäköisiä kuin jonkun muun.
3116
32-Vakio [[RTL]]:n funktio `[random](<http://lazarus-ccr.sourceforge.net/docs/rtl/system/random.html> "doc:rtl/system/random.html")` generoi satunnaislukuja, jotka täyttävät tasaisen satunnaislukujen jakautumisen. Jos sitä on kutsuttu ilman parametria niin `random` tarjoaa pseudosatunnaisen liukuluvun väliltä 0..1, eli 0 <= result <1\. Jos `random` kutsutaan longint parametrillä L se antaa longint-tyyppisen satunnaisen kokonaisluvun välillä 0.. (L-1) .
17+Vakio [[RTL]]:n funktio [[doc:rtl/system/random.html|random]] generoi satunnaislukuja, jotka täyttävät tasaisen satunnaislukujen jakautumisen. Jos sitä on kutsuttu ilman parametria niin `random` tarjoaa pseudosatunnaisen liukuluvun väliltä 0..1, eli 0 \<= result \<1. Jos `random` kutsutaan longint parametrillä L se antaa longint-tyyppisen satunnaisen kokonaisluvun välillä 0.. (L-1) .
3318
34-Tasaisesti jakautunut satunnaisluvut eivät ole käyttökelpoisia kaikkiin käyttökohteisiin. Jotta saadaan satunnaislukuja muilla jakaumilla ovat erikoisalgoritmit ovat tarpeen:
19+Tasaisesti jakautunut satunnaisluvut eivät ole käyttökelpoisia kaikkiin käyttökohteisiin. Jotta saadaan satunnaislukuja muilla jakaumilla ovat erikoisalgoritmit ovat tarpeen:
3520
3621## Normaali (Gaussian) jakauma
3722
38-Yksi yleisempiä algoritmeja tuottaa normaali Gaussin jakauman satunnaislukuja, tasaisen jakautuman satunnaisluvuista on [Box-Müller lähestymistapa](<http://en.wikipedia.org/wiki/Box–Muller_transform>) . Seuraava funktio laskee normaalin Gauss-jakauman satunnaislukuja:
39-```
40-function rnorm (mean, sd: real): real;
41- {Laskee normaalin Gaussin satunnaislukuja Box-Müller lähestymistavan mukaisesti}
42- var
43- u1, u2: real;
44- begin
45- u1 := random;
46- u2 := random;
47- rnorm := mean * abs(1 + sqrt(-2 * (ln(u1))) * cos(2 * pi * u2) * sd);
48- end;
49-```
23+Yksi yleisempiä algoritmeja tuottaa normaali Gaussin jakauman satunnaislukuja, tasaisen jakautuman satunnaisluvuista on [Box-Müller lähestymistapa](http://en.wikipedia.org/wiki/Box–Muller_transform) . Seuraava funktio laskee normaalin Gauss-jakauman satunnaislukuja:
5024
51-Samaa algoritmia käyttää funktio [randg](<http://lazarus-ccr.sourceforge.net/docs/rtl/math/randg.html> "doc:rtl/math/randg.html") RTL:n [math](<http://lazarus-ccr.sourceforge.net/docs/rtl/math/index.html> "doc:rtl/math/index.html") käännösyksikössä:
25+``` pascal
26+ function rnorm (mean, sd: real): real;
27+ {Laskee normaalin Gaussin satunnaislukuja Box-Müller lähestymistavan mukaisesti}
28+ var
29+ u1, u2: real;
30+ begin
31+ u1 := random;
32+ u2 := random;
33+ rnorm := mean * abs(1 + sqrt(-2 * (ln(u1))) * cos(2 * pi * u2) * sd);
34+ end;
5235```
36+
37+Samaa algoritmia käyttää funktio [[doc:rtl/math/randg.html|randg]] RTL:n [[doc:rtl/math/index.html|math]] käännösyksikössä:
38+
39+``` pascal
5340function randg(mean,stddev: float): float;
5441```
5542
5643## Eksponentiaalinen jakauma
5744
58-Eksponentiaalinen jakauma esiintyy usein reaalimaailman ongelmissa. Klassinen esimerkki on jakauma odotusaikojen välillä riippumattomien Poisson-satunnaisia ​​tapahtumia, kuten radioaktiivinen ytimen hajoaminen [Press et al. 1989].
45+Eksponentiaalinen jakauma esiintyy usein reaalimaailman ongelmissa. Klassinen esimerkki on jakauma odotusaikojen välillä riippumattomien Poisson-satunnaisia ​​tapahtumia, kuten radioaktiivinen ytimen hajoaminen \[Press et al. 1989\].
5946
60-Seuraava toiminto tarjoaa yhden todellisen satunnaisluvun ulos eksponentiaalisen jakauman mukaisesti. _Rate_ on käänteinen keskiarvo ja vakio _RESOLUTION_ määrittää "karkeuuden" kun generoidaan satunnaisia numeroita.
61-```
47+Seuraava toiminto tarjoaa yhden todellisen satunnaisluvun ulos eksponentiaalisen jakauman mukaisesti. *Rate* on käänteinen keskiarvo ja vakio *RESOLUTION* määrittää "karkeuuden" kun generoidaan satunnaisia numeroita.
48+
49+``` pascal
6250function randomExp(a, rate: real): real;
63- const
64- RESOLUTION = 1000;
65- var
66- unif: real;
67- begin
68- if rate = 0 then
69- randomExp := NaN
70- else
71- begin
72- repeat
73- unif := random(RESOLUTION) / RESOLUTION;
74- until unif <> 0;
75- randomExp := a - rate * ln(unif);
76- end;
77- end;
51+const
52+ RESOLUTION = 1000;
53+var
54+ unif: real;
55+begin
56+ if rate = 0 then
57+ randomExp := NaN
58+ else
59+ begin
60+ repeat
61+ unif := random(RESOLUTION) / RESOLUTION;
62+ until unif <> 0;
63+ randomExp := a - rate * ln(unif);
64+ end;
65+end;
7866```
7967
8068## Gamma jakauma
8169
82-Gamma jakauma on kaksi parametrinen ja kuuluu jatkuvan satunnaisen jakauman ryhmään. Se on yleistys sekä eksponentiaalijakaumasta että Erlang jakaumasta. Mahdollisia gammajakauman sovelluksia ovat mallintaminen ja simulointi jonot tai jonot ja vakuutusmatematiikka.
83-
84-Seuraava funktio tarjoaa yhden todellisen gammajakauman satunnaisluvun. Jakauman muoto määritetään parametreillä _a_ , _b_ ja _c_. Funktio käyttää funktiota **randomExp** joka on edellä määritelty.
70+Gamma jakauma on kaksi parametrinen ja kuuluu jatkuvan satunnaisen jakauman ryhmään. Se on yleistys sekä eksponentiaalijakaumasta että Erlang jakaumasta. Mahdollisia gammajakauman sovelluksia ovat mallintaminen ja simulointi jonot tai jonot ja vakuutusmatematiikka.
8571
86-
72+Seuraava funktio tarjoaa yhden todellisen gammajakauman satunnaisluvun. Jakauman muoto määritetään parametreillä *a*, *b* ja *c*. Funktio käyttää funktiota **randomExp** joka on edellä määritelty.
8773
88-```
74+``` pascal
8975function randomGamma(a, b, c: real): real;
90- const
91- RESOLUTION = 1000;
92- T = 4.5;
93- D = 1 + ln(T);
94- var
95- unif: real;
96- A2, B2, C2, Q, p, y: real;
97- p1, p2, v, w, z: real;
98- found: boolean;
99- begin
100- A2 := 1 / sqrt(2 * c - 1);
101- B2 := c - ln(4);
102- Q := c + 1 / A2;
103- C2 := 1 + c / exp(1);
104- found := False;
105- if c < 1 then
76+const
77+ RESOLUTION = 1000;
78+ T = 4.5;
79+ D = 1 + ln(T);
80+var
81+ unif: real;
82+ A2, B2, C2, Q, p, y: real;
83+ p1, p2, v, w, z: real;
84+ found: boolean;
85+begin
86+ A2 := 1 / sqrt(2 * c - 1);
87+ B2 := c - ln(4);
88+ Q := c + 1 / A2;
89+ C2 := 1 + c / exp(1);
90+ found := False;
91+ if c < 1 then
92+ begin
93+ repeat
94+ repeat
95+ unif := random(RESOLUTION) / RESOLUTION;
96+ until unif > 0;
97+ p := C2 * unif;
98+ if p > 1 then
10699 begin
107100 repeat
108- repeat
109- unif := random(RESOLUTION) / RESOLUTION;
110- until unif > 0;
111- p := C2 * unif;
112- if p > 1 then
113- begin
114- repeat
115- unif := random(RESOLUTION) / RESOLUTION;
116- until unif > 0;
117- y := -ln((C2 - p) / c);
118- if unif <= power(y, c - 1) then
119- begin
120- randomGamma := a + b * y;
121- found := True;
122- end;
123- end
124- else
125- begin
126- y := power(p, 1 / c);
127- if unif <= exp(-y) then
128- begin
129- randomGamma := a + b * y;
130- found := True;
131- end;
132- end;
133- until found;
134- end
135- else if c = 1 then
136- { Gamma jakauma muuttuu eksponenttijakaumaksi, jos c = 1}
137- begin
138- randomGamma := randomExp(a, b);
101+ unif := random(RESOLUTION) / RESOLUTION;
102+ until unif > 0;
103+ y := -ln((C2 - p) / c);
104+ if unif <= power(y, c - 1) then
105+ begin
106+ randomGamma := a + b * y;
107+ found := True;
108+ end;
139109 end
140110 else
141111 begin
142- repeat
143- repeat
144- p1 := random(RESOLUTION) / RESOLUTION;
145- until p1 > 0;
146- repeat
147- p2 := random(RESOLUTION) / RESOLUTION;
148- until p2 > 0;
149- v := A2 * ln(p1 / (1 - p1));
150- y := c * exp(v);
151- z := p1 * p1 * p2;
152- w := B2 + Q * v - y;
153- if (w + D - T * z >= 0) or (w >= ln(z)) then
154- begin
155- randomGamma := a + b * y;
156- found := True;
157- end;
158- until found;
112+ y := power(p, 1 / c);
113+ if unif <= exp(-y) then
114+ begin
115+ randomGamma := a + b * y;
116+ found := True;
117+ end;
159118 end;
160- end;
119+ until found;
120+ end
121+ else if c = 1 then
122+ { Gamma jakauma muuttuu eksponenttijakaumaksi, jos c = 1}
123+ begin
124+ randomGamma := randomExp(a, b);
125+ end
126+ else
127+ begin
128+ repeat
129+ repeat
130+ p1 := random(RESOLUTION) / RESOLUTION;
131+ until p1 > 0;
132+ repeat
133+ p2 := random(RESOLUTION) / RESOLUTION;
134+ until p2 > 0;
135+ v := A2 * ln(p1 / (1 - p1));
136+ y := c * exp(v);
137+ z := p1 * p1 * p2;
138+ w := B2 + Q * v - y;
139+ if (w + D - T * z >= 0) or (w >= ln(z)) then
140+ begin
141+ randomGamma := a + b * y;
142+ found := True;
143+ end;
144+ until found;
145+ end;
146+end;
161147```
162148
163149## Erlang jakauma
164150
165-Erlang jakauma on kaksi parametrinen ja kuuluu jatkuvan satunnaisen jakauman ryhmään. Se on yleistys eksponentiaalijakaumasta ja erikoistapaus gammajakaumasta, missä _c_ on kokonaisluku. Erlang jakauman on ensin kuvannut Agner Krarup Erlang jolla mallintaa puhelimen soittojen välistä aikaa. Sitä käytetään jonoteoriassa ja simuloidaan jonoja.
166-```
167-function randomErlang(mean: real; k: integer): real;
168- const
169- RESOLUTION = 1000;
170- var
171- i: integer;
172- unif, prod: real;
151+Erlang jakauma on kaksi parametrinen ja kuuluu jatkuvan satunnaisen jakauman ryhmään. Se on yleistys eksponentiaalijakaumasta ja erikoistapaus gammajakaumasta, missä *c* on kokonaisluku. Erlang jakauman on ensin kuvannut Agner Krarup Erlang jolla mallintaa puhelimen soittojen välistä aikaa. Sitä käytetään jonoteoriassa ja simuloidaan jonoja.
152+
153+``` pascal
154+ function randomErlang(mean: real; k: integer): real;
155+ const
156+ RESOLUTION = 1000;
157+ var
158+ i: integer;
159+ unif, prod: real;
160+ begin
161+ if (mean <= 0) or (k < 1) then
162+ randomErlang := NaN
163+ else
164+ begin
165+ prod := 1;
166+ for i := 1 to k do
173167 begin
174- if (mean <= 0) or (k < 1) then
175- randomErlang := NaN
176- else
177- begin
178- prod := 1;
179- for i := 1 to k do
180- begin
181- repeat
182- unif := random(RESOLUTION) / RESOLUTION;
183- until unif <> 0;
184- prod := prod * unif;
185- end;
186- randomErlang := -mean * ln(prod);
187- end;
168+ repeat
169+ unif := random(RESOLUTION) / RESOLUTION;
170+ until unif <> 0;
171+ prod := prod * unif;
188172 end;
173+ randomErlang := -mean * ln(prod);
174+ end;
175+ end;
189176```
190177
191178## Poissonin jakauma
192179
193-Poissonin jakauman koskee kokonaislukuja. Se edustaa _k_ onnistumisen todennäköisyyttä, kun todennäköisyyden menestys kussakin kokeessa on pieni ja esiintymistiheys (keskiarvo) on vakio.
194-```
180+Poissonin jakauman koskee kokonaislukuja. Se edustaa *k* onnistumisen todennäköisyyttä, kun todennäköisyyden menestys kussakin kokeessa on pieni ja esiintymistiheys (keskiarvo) on vakio.
181+
182+``` pascal
195183function randomPoisson(mean: integer): integer;
196- { Generaatori Poissonin jakaumalle (Donald Knuth algoritmi) }
197- const
198- RESOLUTION = 1000;
199- var
200- k: integer;
201- b, l: real;
202- begin
203- assert(mean > 0, 'mean < 1');
204- k := 0;
205- b := 1;
206- l := exp(-mean);
207- while b > l do
208- begin
209- k := k + 1;
210- b := b * random(RESOLUTION) / RESOLUTION;
211- end;
212- randomPoisson := k - 1;
213- end;
184+{ Generaatori Poissonin jakaumalle (Donald Knuth algoritmi) }
185+const
186+ RESOLUTION = 1000;
187+var
188+ k: integer;
189+ b, l: real;
190+begin
191+ assert(mean > 0, 'mean < 1');
192+ k := 0;
193+ b := 1;
194+ l := exp(-mean);
195+ while b > l do
196+ begin
197+ k := k + 1;
198+ b := b * random(RESOLUTION) / RESOLUTION;
199+ end;
200+ randomPoisson := k - 1;
201+end;
214202```
215203
216204## Studentin t-jakauma
217205
218-T-jakauma jota kutsutaan myös Studentin t-jakaumaksi, koska se julkaisi William Sealy Gosset vuonna 1908 salanimellä _Student_ on jatkuva todennäköisyysjakauma. Sen muoto on määritelty yhdellä parametrilla, vapausasteella (_df_ , degrees of freedom ). Tilastoissa monet estimaattorit ovat t-jakaumassa. Siksi Studentin t-jakauma on merkittävä rooli useissa laajalti käytetyissä tilastolliseissa analyyseissä, kuten Studentin t-testissä jossa arvioidaan tilastollista merkitystä kahden näytteen eron avulla, rakentaminen luottamusväli ero kahden populaation keskiarvojen ja lineaarista regressioanalyysiä. T-jakauma syntyy myös Bayesin kaavan tietojen analysointi normaalista.
206+T-jakauma jota kutsutaan myös Studentin t-jakaumaksi, koska se julkaisi William Sealy Gosset vuonna 1908 salanimellä *Student* on jatkuva todennäköisyysjakauma. Sen muoto on määritelty yhdellä parametrilla, vapausasteella (*df*, degrees of freedom ). Tilastoissa monet estimaattorit ovat t-jakaumassa. Siksi Studentin t-jakauma on merkittävä rooli useissa laajalti käytetyissä tilastolliseissa analyyseissä, kuten Studentin t-testissä jossa arvioidaan tilastollista merkitystä kahden näytteen eron avulla, rakentaminen luottamusväli ero kahden populaation keskiarvojen ja lineaarista regressioanalyysiä. T-jakauma syntyy myös Bayesin kaavan tietojen analysointi normaalista.
219207
220-Seuraava algoritmi riippuu [[RTL]]:n funktiosta `[random](<http://lazarus-ccr.sourceforge.net/docs/rtl/system/random.html> "doc:rtl/system/random.html")` ja **randomChisq** funktiosta
221-```
208+Seuraava algoritmi riippuu [[RTL]]:n funktiosta [[doc:rtl/system/random.html|random]] ja **randomChisq** funktiosta
209+
210+``` pascal
222211function randomT(df: integer): real;
223- { Generaattori Student's t jakaumalle }
224- begin
225- if df < 1 then randomT := NaN
226- else
227- begin
228- randomT := randg(0, 1) / sqrt(randomChisq(df) / df);
229- end;
230- end;
212+{ Generaattori Student's t jakaumalle }
213+begin
214+ if df < 1 then randomT := NaN
215+ else
216+ begin
217+ randomT := randg(0, 1) / sqrt(randomChisq(df) / df);
218+ end;
219+end;
231220```
232221
233222## Khii toiseen -jakauma
234223
235-Khii toiseen -jakauma on jatkuva jakauma satunnaislukujen kanssa df vapausasteen. Se kuvaa riippumattomien normaalijakautuneiden muuttujien neliöiden summan käyttäytymistä Se on jakelu summa neliöiden DF riippumattoman standardin normaalia satunnaismuuttujia. is a continuous distribution of random numbers with _df_ degrees of freedom. It is the distribution of a sum of the squares of _df_ independent standard normal random variables. Khii toiseen -jakaumalla on lukuisia sovelluksia johdettu tilastoihin, esimerkiksi arvioitaessa varianssien ja khii toiseen testejä. Se on erikoistapaus Gamma jakaumasta jossa c = df / 2 ja b = 2. Siksi seuraava funktio riippuu funktiosta **randomGamma**.
236-```
224+Khii toiseen -jakauma on jatkuva jakauma satunnaislukujen kanssa df vapausasteen. Se kuvaa riippumattomien normaalijakautuneiden muuttujien neliöiden summan käyttäytymistä Se on jakelu summa neliöiden DF riippumattoman standardin normaalia satunnaismuuttujia. is a continuous distribution of random numbers with *df* degrees of freedom. It is the distribution of a sum of the squares of *df* independent standard normal random variables. Khii toiseen -jakaumalla on lukuisia sovelluksia johdettu tilastoihin, esimerkiksi arvioitaessa varianssien ja khii toiseen testejä. Se on erikoistapaus Gamma jakaumasta jossa c = df / 2 ja b = 2. Siksi seuraava funktio riippuu funktiosta **randomGamma**.
225+
226+``` pascal
237227function randomChisq(df: integer): real;
238- begin
239- if df < 1 then randomChisq := NaN
240- else
241- randomChisq := randomGamma(0, 2, 0.5 * df);
242- end;
228+begin
229+ if df < 1 then randomChisq := NaN
230+ else
231+ randomChisq := randomGamma(0, 2, 0.5 * df);
232+end;
243233```
244234
245235## F-jakauma
246236
247-F-jakauman, jota kutsutaan myös Fisher-Snedecor jakaumaksi, on jatkuva todennäköisyysjakauma. Sitä käytetään F-testissä ja ANOVA:ssa (Analysis of variance). Siinä on kaksi vapausastetta, jotka toimivat muotoparametreilla _v_ ja _w_ ja ne ovat positiivisia kokonaislukuja. Seuraava funktio **randomF** käyttää funktiota **randomChisq**.
248-```
237+F-jakauman, jota kutsutaan myös Fisher-Snedecor jakaumaksi, on jatkuva todennäköisyysjakauma. Sitä käytetään F-testissä ja ANOVA:ssa (Analysis of variance). Siinä on kaksi vapausastetta, jotka toimivat muotoparametreilla *v* ja *w* ja ne ovat positiivisia kokonaislukuja. Seuraava funktio **randomF** käyttää funktiota **randomChisq**.
238+
239+``` pascal
249240function randomF(v, w: integer): real;
250- begin
251- if (v < 1) or (w < 1) then
252- randomF := NaN
253- else
254- randomF := randomChisq(v) / v / (randomChisq(w) / w);
255- end;
241+begin
242+ if (v < 1) or (w < 1) then
243+ randomF := NaN
244+ else
245+ randomF := randomChisq(v) / v / (randomChisq(w) / w);
246+end;
256247```
257248
258249## Katso myös
259250
260- * [[Dev random]]
261- * [[Functions for descriptive statistics]]
262- * [[Marsaglia's pseudo random number generators]]
263- * [[Delphi compatible LCG Random]]
251+- [[Dev random]]
252+- [[Functions for descriptive statistics]]
253+- [[Marsaglia&|Marsaglia's pseudo random number generators]]
254+- [[Delphi compatible LCG Random]]
264255
265256## Viitteet
266257
267- 1. [G. E. P. Box and Mervin E. Muller, _A Note on the Generation of Random Normal Deviates_ , The Annals of Mathematical Statistics (1958), Vol. 29, No. 2 pp. 610–611](<http://projecteuclid.org/DPubS/Repository/1.0/Disseminate?view=body&id=pdf_1&handle=euclid.aoms/1177706645>)
268- 2. Dietrich, J. W. (2002). [Der Hypophysen-Schilddrüsen-Regelkreis](<http://openlibrary.org/books/OL24586469M/Der_Hypophysen-Schilddrüsen-Regelkreis>). Berlin, Germany: Logos-Verlag Berlin. ISBN 978-3-89722-850-4. OCLC 50451543.
269- 3. Press, W. H., B. P. Flannery, S. A. Teukolsky, W. T. Vetterling (1989). [Numerical Recipes in Pascal](<http://openlibrary.org/works/OL16807779W/>). The Art of Scientific Computing, Cambridge University Press, ISBN 0-521-37516-9.
270- 4. Richard Saucier, [Computer Generation of Statistical Distributions](<http://ftp.arl.mil/random/random.pdf>), ARL-TR-2168, US Army Research Laboratory, Aberdeen Proving Ground, MD, 21005-5068, March 2000.
271- 5. R.U. Seydel, Generating Random Numbers with Specified Distributions. In: Tools for Computational Finance, Universitext, [DOI 10.1007/978-1-4471-2993-6_2](<http://dx.doi.org/10.1007/978-1-4471-2993-6_2>), © Springer-Verlag London Limited 2012
272- 6. Christian Walck, Hand-book on STATISTICAL DISTRIBUTIONS for experimentalists, Internal Report SUF–PFY/96–01, University of Stockholm 2007
258+1. [G. E. P. Box and Mervin E. Muller, *A Note on the Generation of Random Normal Deviates*, The Annals of Mathematical Statistics (1958), Vol. 29, No. 2 pp. 610–611](http://projecteuclid.org/DPubS/Repository/1.0/Disseminate?view=body&id=pdf_1&handle=euclid.aoms/1177706645)
259+2. Dietrich, J. W. (2002). [Der Hypophysen-Schilddrüsen-Regelkreis](http://openlibrary.org/books/OL24586469M/Der_Hypophysen-Schilddrüsen-Regelkreis). Berlin, Germany: Logos-Verlag Berlin. ISBN 978-3-89722-850-4. OCLC 50451543.
260+3. Press, W. H., B. P. Flannery, S. A. Teukolsky, W. T. Vetterling (1989). [Numerical Recipes in Pascal](http://openlibrary.org/works/OL16807779W/). The Art of Scientific Computing, Cambridge University Press, ISBN 0-521-37516-9.
261+4. Richard Saucier, [Computer Generation of Statistical Distributions](http://ftp.arl.mil/random/random.pdf), ARL-TR-2168, US Army Research Laboratory, Aberdeen Proving Ground, MD, 21005-5068, March 2000.
262+5. R.U. Seydel, Generating Random Numbers with Specified Distributions. In: Tools for Computational Finance, Universitext, [DOI 10.1007/978-1-4471-2993-6_2](http://dx.doi.org/10.1007/978-1-4471-2993-6_2), © Springer-Verlag London Limited 2012
263+6. Christian Walck, Hand-book on STATISTICAL DISTRIBUTIONS for experimentalists, Internal Report SUF–PFY/96–01, University of Stockholm 2007
273264
274265---
275-*From the Free Pascal wiki, page "Generating Random Numbers/fi", as the Internet Archive kept it on 2022-08-09. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
266+*From the Free Pascal wiki, page "Generating Random Numbers/fi", as it stood on 2020-02-16 after a change by GAN, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history