PracticU

Random Numbers

בלי כתוביותעם כתוביות
PracticU › קורס יסודות התכנות - שפת JAVA - קורס ג'אווה למתחילים › Random Numbers
Random Numbers
השיעור מראה איך מגרילים מספרים אקראיים ב-Java בעזרת Math.random(). יש לזה הרבה שימושים, למשל סימולטורים של לוטו או בינגו, ומשחקים שבהם הופעות של אובייקטים צריכות להיות אקראיות לגמרי.
השלבים העיקריים
1. Math.random(): מחזיר מספר עשרוני אקראי. הערך 0 יכול להופיע, והערך 1 לא.
2. טווח 0 עד 5: מכפילים את התוצאה ב-5, ולכן מתקבל מספר בין 0 ל-5, בלי לכלול את 5.
3. מספר שלם: Math.floor מעגל כלפי מטה. העיגול כלפי מטה נותן התפלגות סימטרית לכל הערכים בטווח, ולכן הוא הדרך הנכונה.
4. טווח כולל: למשל בין 30 ל-40 כולל את שני הקצוות. מכפילים את Math.random() ב-(מקסימום מינוס מינימום ועוד 1), מעגלים כלפי מטה, ומוסיפים את המינימום.
5. פיצול הנוסחה: אפשר לפצל את הנוסחה למשתנים, למשל טווח וערך זמני, כדי לקבל קוד קריא יותר.
שימו לב
Math.random() מחזיר double. כשרוצים מספר שלם, צריך להמיר אותו בעזרת casting או לדאוג שהטיפוס יתאים.
עכשיו אפשר להגריל מספרים שלמים או עשרוניים בכל טווח שרוצים.
השיעור הבא בקורס: תרגול לפרק על Operators
מילון מושגים:
Java – שפת תכנות עילית ומונחית עצמים, הרצה על מכונה וירטואלית (JVM) ומשמשת לפיתוח מגוון יישומים.
אובייקט – יחידה בתכנות מונחה עצמים שמאגדת נתונים (תכונות) ופעולות (מתודות). נוצר בדרך כלל ממחלקה המשמשת כתבנית.
משתנה – שם שמפנה למקום בזיכרון שבו נשמר ערך שיכול להשתנות במהלך ריצת התוכנית, כמו מספר, טקסט או אובייקט.

פרקי ההרצאה: Random Numbers

  1. 00:00

    שימושים במספרים אקראיים בתוכנה

  2. 00:56

    הפונקציה random במחלקה Math

  3. 01:56

    טווח התוצאות של random

  4. 02:56

    טווח 0 כולל ו-1 לא כולל

  5. 03:31

    הגרלה בין 0 ל-5 בהכפלה

  6. 04:33

    עיגול למטה למספר שלם בעזרת floor

  7. 06:26

    הזזת הטווח על ידי הוספת ערך

  8. 07:44

    נוסחה להגרלה בין מינימום למקסימום

תמלול ההרצאה: Random Numbers

הטקסט המלא של הדקות הראשונות בהרצאה «Random Numbers» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

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

  2. 00:16

    יש לזה המון שימושים. לדוגמה, אם אנחנו עושים כל מיני סימולטורים מסוימים ואנחנו רוצים להגריל כל מיני דברים, סימולטור לוטו, סימולטור טוטו, סימולטור של בינגו.

  3. 00:30

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

  4. 00:47

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

  5. 01:04

    אז בואו נגדיר כאן איזשהו משתנה a האמת הוא צריך להיות דאבל ואנחנו רוצים להכניס לתוכו איזשהו ערך רנדומלי לחלוטין שאני רוצה שהמחשב יגריל עבורי.

  6. 01:17

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

  7. 01:48

    אחת מהן זה פעולה שנקראת random, בוא תייצר לי מספר רנדומלי. אם אנחנו כרגע נריץ את a, שימו לב שrandom מגיע פה עם סוגריים, אנחנו נקבל איזשהו מספר על המסך, 0.7 3.0 בלה בלה בואו נריץ עוד פעם קיבלנו מספר אחר בואו נריץ עוד פעם קיבלנו מספר אחר לא ניתן לחזות ולא ניתן לשער איזה מספר מחשב הולך להגריל כי הוא משתמש במעין אלגוריתם שגם

  8. 02:21

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

  9. 02:40

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

  10. 03:08

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

  11. 03:31

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

  12. 03:54

    עכשיו, למה הולך לצאת לי כאן מספר בין 0 ל-5? כי a מכיל מספר בין 0 ל-1, כל מה שעשינו זה הכפלנו אותו ב-5. בואו נריץ עכשיו ונקבל גם את b, ונראה שכל פעם שאנחנו מריצים את זה אנחנו אנחנו רואים ש-B עדיין הוא מספר עשרוני אבל הוא בין 0 ל-5 יוצא.

  13. 04:22

    אוקיי, האם יכול לצאת 5? תשובה לא, כי אף פעם A לא יהיה 1. האם יכול לצאת 0? כן, כי A כן יכול להיות 0. קצת חשבון יש לנו פה.

  14. 04:40

    אוקיי, עכשיו אנחנו רוצים בכלל מספר שלם. בואו ניקח c, ולצורך עיגול המספר נשתמש ב-Math נקודה ויש לנו או סילינג תעגל אותו לתקרה למעלה או פלור תעגל אותו לרצפה למטה.

  15. 05:02

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

  16. 05:22

    אז תמיד תמיד עדיף לעגל אותו במקרה הזה למטה, ובואו ניקח את b, אותו אנחנו בעצם רוצים לעגל, ונפיס גם את c.

  17. 05:35

    נרווח פה טיפה, נריץ, ונראה הפעם שקיבלנו מספר שלם שהוא יכול להיות אפס, הוא יכול להיות 3, 2, ארבע הוא יכול להיות, חמש הוא לא יכול להיות.

  18. 05:54

    אוקיי, מגניב. הצלחנו להגריל מספר אנדומלי בין אפס לחמש, כולל אפס, לא כולל חמש. בואו נרשום כאן: אפס אינקלודינג, חמש אקסקלודינג, וכמובן גם כאן אפס אינקלודינג, חמש אקסקלודינג, לא כולל.

  19. 06:16

    אבל רגע, מה קורה אם אני בכלל רוצה לקבל מספר בין 5 ל-10 כולל 5, לא כולל 10. מה אנחנו צריכים לעשות? או בואו ניקח מקרה קצת יותר ספציפי. אנחנו רוצים בין 5 ל-7, כולל 5, לא כולל 7.

  20. 06:36

    אז כל מה שאנחנו צריכים לעשות זה להוסיף אליו, בואו ניקח את הדאבל d וניקח את c ופשוט נוסיף אליו, נניח 3. למעשה הפעולה הזאת תביא הוא מספר לא בין 5 ל-7 כמו שאמרתי מקודם, אלא בין 3 ל-7.

  21. 07:00

    למה? כי c יכול להיות 0, זה המינימום שהוא יכול להיות, ולכן אנחנו נקבל 3 ב-d, והמקסימום של c זה 4, כי 5 הוא לא יגיע, ולכן אנחנו נקבל 7, ולמעשה התכוונתי לפלוס ולא לכפול.

  22. 07:17

    בואו נשים פה את d, ו-D בכל הרצאה אנחנו נוכל לראות שהוא יכול להיות בין 3, הנה קיבלנו D3 אם C היה 0, אפשר לראות כאן ש-C הוא 0 ואנחנו יכולים לראות שאם C לדוגמה הוא 1, D יהיה 4 והנה המקסימום ש-C יכול להגיע, 4 ואז D יהיה 7. זאת אומרת שאנחנו יכולים בצורה כזאת לקבל כל מיני מספרים

  23. 07:52

    רנדומליים בכל מיני טווחים אז מה הנוסחה אם אנחנו רוצים שיהיה לנו מספר רנדומלי בוא נניח בין מינימום למקסימום כלשהו ניקח איזשהו מינימום נניח שהמינימום שאנחנו רוצים הוא בואו נניח שאנחנו רוצים 30 והמקסימום שאנחנו רוצים זה 40 איזשהו סימולטור שאנחנו צריכים להגריל מספר בין 30

לקורס המלא: קורס ג'אווה למתחילים אונליין

ההרצאה הקודמת: Comparison Operators

ההרצאה הבאה: תרגול לפרק על Operators

קורסים נוספים במסלול

  • קורס מבוא ל-QA - מידע חשוב לבודק תוכנה
  • קורס פוסטמן - Postman - בדיקות לאתרי אינטרנט - API
  • קורס Robot Framework - בדיקות QA ממשק גרפי
  • קורס סלניום בסיסי - בדיקות אוטומטיות - Selenium
  • קורס סלניום מתקדם - CI/CD - Continues Integration
  • קורס מייבן - Maven