Du arbetar offline, väntar på att återansluta till Internet

Beskrivning av SLUMP-funktionen i Excel 2003

Supporten för Office 2003 har upphört

Microsoft upphörde med supporten för Office 2003 den 8 april 2014. Denna ändring påverkar dina programuppdateringar och säkerhetsalternativ. Läs om vad detta innebär för dig och hur du behåller skyddet.

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:
  • 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 INMATNINGENIX = 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 03/02/2006 12:44:00 – revision: 3.0

Microsoft Office Excel 2003

  • kbinfo kbfunctions kbfuncstat KB828795
Feedback