תיאור הפונקציה RAND ב- Excel 2007 וב- Excel 2003

תרגומי מאמרים תרגומי מאמרים
Article ID: 828795 - View products that this article applies to.
הרחב הכל | כווץ הכל

On This Page

תקציר

מאמר זה מתאר אלגוריתם שהשתנה, שבו נעשה שימוש בפונקציית מחולל מספרים אקראיים, RAND, ב- Excel 2007 וב- Excel 2003.

מידע נוסף

הפונקציה RAND בגירסאות מוקדמות יותר של Excel השתמש באלגוריתם ליצירת מספרים אקראיים מדומים שהביצועים שלו בבדיקות סטנדרטיות של אקראיות לא היו מספקים. על אף שסביר להניח ששינוי זה ישפיע רק על משתמשים המבצעים כמות גדולה של קריאות לפונקציה RAND, כגון מיליון או יותר ואינו נוגע כמעט לכל המשתמשים, האלגוריתם ליצירת מספרים אקראיים מדומים המתואר כאן יושם לראשונה עבור Excel 2003. הוא עבר את אותה סוללה של בדיקות סטנדרטיות.

סוללת הבדיקות נקראת Diehard (ראה הערה 1). האלגוריתם המיושם ב- Excel 2003 פותח על-ידי ב.א. ויצ'מן ו- י.ד. היל (ראה הערה 2 והערה 3). מחולל מספרים אקראיים זה נמצא גם בשימוש בחבילת התוכנה RAT-STATS המסופקת על-ידי מחלקת הבריאות ושירותי הרווחה, משרד המפקח הכללי האמריקני. הוא הוצג על-ידי רות ואח' (ראה הערה 4) כדי לעבור את בדיקות DIEHARD ובדיקות נוספות שפותחו על-ידי National Institute of Standards and Technology ?(NIST, בעבר National Bureau of Standards).

הערות

  • הבדיקות פותחו על-ידי פרופסור ג'ורג' מרסגליה, המחלקה לסטטיסטיקה, אוניברסיטת פלורידה והם זמינים באתר האינטרנט הבא:
    http://i.cs.hku.hk/~diehard
  • Wichman, B.A. and I.D. Hill, Algorithm AS 183: An Efficient and Portable Pseudo-Random Number Generator, Applied Statistics, 31, 188-190, 1982.
  • Wichman, B.A. and I.D. Hill, Building a Random-Number Generator, BYTE, pp. 127-128, March 1987.
  • Rotz, W. and E. Falk, D. Wood, and J. Mulrow, A Comparison of Random Number Generators Used in Business, presented at Joint Statistical Meetings, Atlanta, GA, 2001.
הרעיון הבסיסי הוא שאם תיקח שלושה מספרים אקראיים ב- [0,1] ותסכם אותם, חלק השבר של הסכום מהווה בעצמו מספר אקראי ב- [0,1]. המשפטים הקריטיים בקוד Fortran המצוטט מהמאמר המקורי של ויצ'מן והיל הם:
C	IX, IY, IZ SHOULD BE SET TO INTEGER VALUES BETWEEN 1 AND 30000 BEFORE FIRST ENTRY

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)?
לכן IX, IY, IZ יוצר מספרים שלמים בין 0 ל- 30268, 0 ל- 30306 ו- 0 ל- 30322 בהתאמה. מספרים אלה מצורפים במשפט האחרון כדי ליישם את העיקרון הפשוט שצוין מוקדם יותר: אם תיקח שלושה מספרים אקראיים ב- [0,1] ותסכם אותם, חלק השבר של הסכום מהווה בעצמו מספר אקראי ב- [0,1].

מאחר שהפונקציה RAND מייצרת מספרים אקראיים מדומים, אם יופק רצף ארוך של מספרים אלה, בסופו של דבר רצף זה יחזור על עצמו. צירוף מספרים אקראיים כמו בפרוצדורה של ויצ'מן-היל מבטיחה שיותר מ- 10^13 מספרים ייווצרו לפני שהם יתחילו לחזור על עצמם. חלק מבדיקות Diehard הניבו תוצאות לא מספקות עם גירסאות מוקדמות יותר של RAND מאחר שהמחזור שבו מספרים התחילו לחזור על עצמם היה קצר מדי באופן בלתי קביל.

התוצאות בגירסאות מוקדמות יותר של Excel

הפונקציה RAND בגירסאות מוקדמות יותר של Excel היתה מצוינת עבור משתמשים שלא דרשו רצף ארוך של מספרים אקראיים (כגון מיליון). הפונקציה נכשלה בבדיקות סטנדרטיות של אקראיות, כשהביצועים היו בעייתיים כאשר נדרשו רצפים ארוכים של מספרים אקראיים.

התוצאות ב- Excel 2003

אלגוריתם פשוט ואפקטיבי יושם. המחולל החדש עובר את כל הבדיקות הסטנדרטיות של אקראיות.

מסקנות

משתמשים העושים שימוש רב בפונקציה RAND, הדורשים רצפים ארוכים של מספרים אקראיים מקבלים תוצאות טובות יותר מהמחולל החדש של Excel 2003. משתמשים אחרים אינם צריכים להירתע מלהשתמש בפונקציה RAND הכלולה בגירסאות מוקדמות יותר של Excel.

מידע נוסף

לקבלת מידע נוסף אודות בעיה שתועדה בפונקציה RAND, לחץ על מספר המאמר שלהלן כדי להציגו מתוך מאגר הידע Microsoft Knowledge Base:
834520 הפונקציה RAND מחזירה מספרים שליליים ב- Excel 2003 (ייתכן שקישור זה מפנה לתוכן שחלק ממנו או כולו מופיע באנגלית)

מאפיינים

Article ID: 828795 - Last Review: יום שלישי 29 אפריל 2008 - Revision: 5.3
המידע במאמר זה חל על:
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
מילות מפתח 
kbfuncstat kbfunctions kbinfo KB828795

ספק משוב

 

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