Beskrivning av SLUMP-funktionen i Excel 2003

Artikelöversättning Artikelöversättning
Artikel-id: 828795 - Visa produkter som artikeln gäller.
Visa alla | Dölj alla

På den här sidan

Sammanfattning

I artikeln beskrivs den ändrade algoritm som används i slumptalsgeneratorn i, SLUMP, i Microsoft Office Excel 2003.

Mer Information

I SLUMP-funktionen i tidigare versioner av Excel användes en pseudo-slumptalsfunktion, vars prestanda var otillräcklig för standardtest av slumpmässighet. Även om detta sannolikt endast påverkar de användare som använder många anrop till SLUMP, t ex en miljon eller fler, har algoritmen som beskrivs här implementerats i Excel 2003 och den klarar samma typer av standardtest.

Testsamlingen kallas Diehard (se not 1). Algoritmen som har implementerats i Excel 2003 har utvecklats av B.A. Wichman och I.D. Hill (se not 2 och 3). Denna slumptalsgenerator används även i programpaketet RAT-STATS som tillhandahålls av Office of the Inspector General, U.S. Department of Health and Human Services. Rotz et al har visat (se not 4) att algoritmen klarar DIEHARD-testerna och ytterligare tester som har utvecklats av National Institute of Standards and Technology (NIST, tidigare National Bureau of Standards).

Obs!

  • Testerna har utvecklats av professor George Marsaglia, Department of Statistics, Florida State University och finns tillgängliga på följande webbplats:
    http://www.csis.hku.hk/~diehard
  • Wichman, B.A. och I.D. Hill, Algorithm AS 183: An Efficient and Portable Pseudo-Random Number Generator, Applied Statistics, 31, 188-190, 1982.
  • Wichman, B.A. och I.D. Hill, Building a Random-Number Generator, BYTE, s. 127-128, mars 1987.
  • Rotz, W. och E. Falk, D. Wood, och J. Mulrow, A Comparison of Random Number Generators Used in Business, presenterad vid Joint Statistical Meetings, Atlanta, GA, 2001.
Den grundläggande tanken är att om du tar tre slumptal i [0,1] och summerar dem, blir decimaldelen av summan ett slumptal i [0,1]. Viktiga uttryck i Fortran-koden från den ursprungliga artikeln av Wichman och Hill är:
C	IX, IY, IZ SKALL ANGES TILL HELTALSVÄRDEN MELLAN 1 OCH 30 000 FÖRE FÖRSTA INMATNINGEN

IX = MOD(171 * IX, 30269)

IY = MOD(172 * IY, 30307)

IZ = MOD(170 * IZ, 30323)

RANDOM = AMOD(FLOAT(IX) / 30269.0 + FLOAT(IY) / 30307.0 + FLOAT(IZ) / 30323.0, 1.0)
Det innebär att heltal mellan 0 och 30 268, 0 och 30 3068 och 0 och 30322 skapas i IX, IY respektive IZ . Dessa kombineras i det sista uttrycket för implementering av den enkla princip som tidigare uttrycktes: Om du tar tre slumptal i [0,1] och summerar dem, blir decimaldelen av summan ett slumptal i [0,1].

Eftersom pseudo-slumptal skapas i SLUMP kan en long sekvens upprepas. Med kombination av slumptal enligt Wichman-Hill-proceduren skapas fler än 10^13 tal innan sekvensen upprepas. När tidigare versioner av SLUMP testades med Diehard-testerna blev resultatet underkänt, eftersom tiden innan upprepning var allt för kort.

Resultat i tidigare versioner av Excel

SLUMP-funktionen i tidigare versioner av Excel fungerade för användare som inte behövde långa sekvenser slumptal (t ex en miljon), men den klarade inte standardtesterna av slumpmässighet.

Resultat i Excel 2003

En enkel och effektiv algoritm har implementerats och den nya generatorn klarar alla standardtest.

Slutsatser

Den nya generatorn i SLUMP i Excel 2003 fungerar bättre för de användare som behöver långa sekvenser slumptal. För andra användare kan SLUMP i tidigare versioner av Excel fungera tillfredsställande.

Gör så här om du vill veta mer om SLUMP: Klicka på Hjälp om Microsoft ExcelHjälp-menyn, skriv slump i rutan Sök efter i hjälpfönstret och visa avsnittet genom att klicka på Starta sökning.

Referenser

Om du vill veta mer om ett dokumenterat problem i SLUMP klickar du på artikelnumret nedan och läser artikeln i Microsoft Knowledge Base:
834520 Funktionen SLUMP returnerar negativa tal i Excel 2003 (Länken kan leda till en webbplats som är helt eller delvis på engelska)

Egenskaper

Artikel-id: 828795 - Senaste granskning: den 2 mars 2006 - Revision: 3.0
Informationen i denna artikel gäller:
  • Microsoft Office Excel 2003
Nyckelord: 
kbinfo kbfunctions kbfuncstat KB828795

Ge feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com