קורס פיתוח מתקדם בפייתון
פרק
>
רמה
מודולי מתמטיקה
מודול אקראי
מטרה
הפעל סימולציות ובדיקות כדי להתכונן לכל שגיאות ועיכובים במהלך בניית האדמה באמצעות מודול random.
מעבר לתוספת, קיים משרד שמטפל במספר מטלות מנהליות, מטפל בניירת בנוגע למשלוחים, דיור ולוגיסטיקה עבור הבנייה. יהיה רעיון טוב להריץ תרחישים שונים באמצעות הנתונים הזמינים כדי לחשב עיכובים וכשלים בציוד. כדי לסייע בכך יש לנו את מודול random, שמופעל על ידי import random .
המודול משמש להפקת פלטים אקראיים במגוון דרגות, מה שמאפשר להריץ סימולציות או להוסיף אלמנטים אקראיים לחישובים/תרגולים שלך. למטרותינו נשתמש בפונקציות הבאות:
random.seed(): קובע את ה-seed להפקת אקראיות, ומקבל טיעון אחד שהוא מספר ה-seed שבו תרצה להשתמש. משמעות הדבר שכל פונקציה אקראית שתשתמש ב-seed נתון תחזיר את אותן התוצאות. זה משמש לשליטה מסוימת בהפקת אקראיות ולאפשר שחזור תוצאות מסוימות.random.random(): מחזיר מספר נקודת צף אקראי בין0ל-1.random.randint(): מקבל שני (2) טיעונים, ומייצר מספר בין שני הטיעונים, כולל את המספרים עצמם. התוצאה מוחזרת כמספר שלם.random.uniform(): זהה לפונקציה הקודמת אך מחזיר מספר נקודת צף אקראי במקום מספר שלם.random.triangular(): זהה לפונקציה הקודמת אך מקבל טיעון נוסף כמשנה בשם mode. ה-mode צריך להיות מספר בין שני המספרים שבטווח האקראי. המספר האקראי המופק יהיה סטטיסטית קרוב יותר ל-mode מאשר מספר אקראי טהור בין שני הטיעונים הראשונים.random.choice(): מקבל רשימה כטיעון ובוחר פריט אחד מהרשימה באקראי.random.choices(): מייצר רשימה אקראית הדגומה מרשימה אחרת, ומקבל שלושה (3) טיעונים: רשימה שברצונך לדגום ממנה, רשימה נוספת שבה תוכל לציין את המשקלים שמהם תרצה לדגום עבור כל פריט ברשימה, ולבסוף משתנה בשם k אשר מגדיר כמה דוגמאות ברצונך לקחת מהרשימה. מספר הדוגמאות יכול להיות גדול מאורכה של הרשימה עצמה, מכיוון שזה ייצר כפילויות בהתאם למשקלים שהגדרת.random.shuffle(): מקבל רשימה כטיעון ומערבב אותה באקראי.random.sample(): מקבל שני טיעונים, רשימה לדגימה ומספר הדוגמאות שברצונך לקחת. זו גרסה מופשטת שלrandom.choices().
כדי להתחיל, לך אל סימן ה-X הבהיר ופנה לשולחן, השתמש בפונקציה read() כדי לקרוא את הממו ולזהות את נקודות הנתונים הדרושות להרצת סימולציה עם וריאציות אקראיות. אנחנו הולכים להריץ סימולציה של כשל בציוד, והממו יידע אותך איזה seed להריץ עבור הפקת האקראיות וכן איזו רשימה לדגימה. השתמש בפונקציה random.seed() והכנס את הערך שסופק בממו.
לך אל סימן ה-X הכהה מעל השטיח הכחול ופנה לשולחן. יש לנו קבוע רשימה בשם sectors המכיל את אזורי האדמה כפי שצוינו בממו הקודם. צור משתנה בשם selection לאחסון הערך שיתקבל מ-random.choice(), והשתמש בקבוע הרשימה sectors כדי לקבל דוגמה מהרשימה, כך: selection = random.choice(sectors). לאחר מכן, צור משתנה נוסף בשם delay ואחסן בו את הערך המתקבל מ-random.random() כדי לדמות שולי טעויות הנגרמות מעיכובים.
צור משתנה נוסף בשם defect ואחסן בו את הערך מ-random.randint() כדי לייצר אחוז לכשלים אפשריים בציוד. הוסף כטיעונים את הערכים 0 ו-15 כדי לייצר אחוז בטווח שבין שני המספרים האלה. לאחר שהמשתנים selection, delay ו-defect הוגדרו, השתמש בפונקציה המוגדרת מראש write() עם שלושת המשתנים בסדר זה, כדי לרשום נקודות נתונים שניתן להשתמש בהן לבדיקת בעיות פוטנציאליות בבנייה.
לך אל סימן ה-X הזהוב והשתמש בפונקציה read() כדי להמשיך בהרצת תחזיות. הנתונים בממו יכילו חומרים, כמויות ונתוני דגימה. אנחנו הולכים להריץ סימולציה נרחבת יותר תוך שימוש בנתונים שבממו, כולל קבוע רשימה בשם materials המכיל את סוגי החומרים כפי שצוינו בממו.
לך אל סימן ה-X הכהה מעל השטיח האדום ופנה לשולחן. צור רשימה בשם weights ואחסן בה את ארבעת הערכים המספריים המופיעים בממו, המתאימים לחומרים בסדר הצגתם. לדוגמה: weights = [400, 600 , -insert value-, -insert value-]
צור משתנה בשם simulation ואחסן בו את הערך מ-random.choices(). עבור זאת, הוסף את קבוע הרשימה materials, את רשימת ה-weights שיצרת, וכן רשימה בשם k המכילה את יחידות הדגימה כפי שצוינו בממו, כך: simulation = random.choices(materials, weights , k = insert sampling units ). השתמש במשתנה simulation יחד עם הפונקציה המוגדרת מראש write() כדי לרשום את הנתונים.
לך אל סימן ה-X הכהה מעל השטיח הירוק ופנה לשולחן, השתמש בפונקציה random.shuffle() עם רשימת ה-simulation שיצרת כדי לערבב אותה, כך: random.shuffle(simulation). פעולה זו תערבב את הרשימה, ואין צורך לאחסן את הערך מאחר והפונקציה משנה את הרשימה ישירות. צור רשימה בשם sample כדי לאחסן את הערך מ-random.sample(). העבר את רשימת ה-simulation כטיעון הראשון ואת המספר 3 כטיעון שני, כדי לקחת שלושה פריטים אקראיים כמדגם, כך: sample = random.sample(simulation, k=3). השתמש ב-simulation וב-sample יחד עם הפונקציה write() כדי לרשום את הדוגמאות החדשות.
לבסוף, לך אל סימן ה-X הכהה מעל השטיח הסגול ופנה לשולחן. צור משתנה בשם defect ואחסן בו את התוצאה מ-random.uniform(), עם הוספת הטיעונים 3 ו-10. אלו הם ערכי הדגימה עבור הסימולציה המקורית והמדגם שנלקח ממנה, ונשתמש בהם כדי לייצר גבולות כשל אפשריים בציוד מהמדגם שהתקבל.
צור משתנה בשם losses ואחסן בו את הערך מ-random.triangular(), עם ההוספה של הערכים 200, 600 ו-400. אלו הם מספרי החומרים כפי שצוינו בממו הקודם – המחיר הנמוך ביותר, הגבוה ביותר והערך הקרוב לאמצע. כך נוכל לקבל ערך אקראי עם התפלגות משולשת בהתאם למספר החומרים שבהם השתמשה הסימולציה. השתמש בערכי defect ו-losses יחד עם הפונקציה write() כדי לקבל תוצאות ולהשלים את הרמה.