יצירת מספרים אקראיים ב- Java

מפיק סדרה של מספרים אקראיים היא אחת המשימות הנפוצות שמתעוררות מדי פעם. בתוך ג'אווה, ניתן להשיג זאת פשוט באמצעות java.util. שיעור אקראי.

השלב הראשון, כמו השימוש בכל ממשק API מעמד, הוא לשים את הצהרת הייבוא ​​לפני תחילת כיתת התוכנית שלך:

בשלב הבא, צור אובייקט אקראי:

האובייקט אקראי מספק לך מחולל מספרים אקראיים פשוט. השיטות של האובייקט נותנות את היכולת לבחור מספרים אקראיים. לדוגמה, השיטות nextInt () ו- nextLong () יחזירו מספר שנמצא בטווח הערכים (שלילי וחיובי) של סוגי הנתונים int ו- long בהתאמה:

המספרים שהוחזרו ייבחרו באופן אקראי בערכים אינט וארוכים:

בחירת מספרים אקראיים מטווח מסוים

בדרך כלל המספרים האקראיים שיווצרו צריכים להיות בטווח מסוים (למשל, בין 1 ל- 40 באופן כולל). למטרה זו, השיטה nextInt () יכולה גם לקבל פרמטר int. זה מציין את הגבול העליון לטווח המספרים. עם זאת, מספר הגבול העליון אינו נכלל כאחד מהמספרים שניתן לבחור. זה אולי נשמע מבלבל אבל השיטה nextInt () עובדת מאפס ומעלה. לדוגמה:

יבחר רק מספר אקראי מ- 0 ל- 39 באופן כוללני. לבחירה מטווח שמתחיל ב- 1, פשוט הוסף 1 לתוצאה של שיטת nextInt (). לדוגמה, כדי לבחור מספר בין 1 ל- 40 הוסף באופן בלעדי מספר אחד לתוצאה:

instagram viewer

אם הטווח מתחיל ממספר גבוה יותר מזה שתצטרך:

  • מינוס המספר ההתחלתי ממספר הגבול העליון ואז הוסף מספר.
  • הוסף את המספר ההתחלתי לתוצאה של שיטת nextInt ().

לדוגמה, כדי לבחור מספר בין 5 ל -35 באופן כולל, מספר הגבול העליון יהיה 35-5 + 1 = 31 ויש להוסיף 5 לתוצאה:

כמה עד כמה אקראית הכיתה אקראית?

אני צריך לציין שהכיתה אקראית מייצרת מספרים אקראיים בצורה דטרמיניסטית. האלגוריתם המייצר את האקראיות מבוסס על מספר הנקרא זרע. אם מספר הזרע ידוע, ניתן להבין את המספרים שעומדים להפיק מהאלגוריתם. כדי להוכיח זאת אשתמש במספרים מהתאריך זה ניל ארמסטרונג דרכתי לראשונה על הירח כמספר הזרעים שלי (20 ביולי 1969):

לא משנה מי מפעיל קוד זה רצף המספרים "האקראיים" שיוצר יהיה:

כברירת מחדל מספר הזרע המשמש את:

זה הזמן הנוכחי באלפיות השנייה מאז ה -1 בינואר 1970. בדרך כלל זה יפיק מספרים אקראיים מספיק לרוב המטרות. עם זאת, שימו לב ששני מחוללי מספרים אקראיים שנוצרו באותה אלפית השנייה ייצרו את אותם מספרים אקראיים.

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

instagram story viewer