
arc4random. השיעור מראה איך להגביל את המספר לטווח מסוים ואיך לארוז את ההגרלה בפונקציה שימושית.arc4random מחזירה מספר רנדומלי. לפי התיעוד של אפל, המספר תמיד חיובי.%) במספר נותנת תוצאה בין 0 למספר פחות אחד. למשל, שארית החלוקה של 101 ב-100 היא 1.Int.getRandom מקבלת מספר מקסימלי ומחזירה מספר רנדומלי בטווח, כולל הקצה. בזכות זה אפשר להשתמש בה בכל מקום בתוכנית.הטקסט המלא של הדקות הראשונות בהרצאה «הגרלת מספרים אקראיים - Arc4Random» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום וברוכים הבאים לפני שנמשיך אנחנו רוצים ללמוד איך להגריל מספר רנדומלי בסוויף וכדי לעשות את זה אנחנו נשתמש בפעולה ארק פור רנדום ארק פור רנדום כשמה כן היא מגרילה עבורנו מספר רנדומלי וכדי לראות את זה אנחנו יכולים להדפיס את מה שמחזירה הפעולה אז אני אעריץ ובוא נראה מה היא מחזירה לי
נראה הנה איזשהו מספר רנדומלי די גדול אני יודע כעיקרון מקריאה של התיעוד של המתודה הזאת באתר של אפל שהמתודה תמיד מחזירה מספר חיובי אבל ומספר חיובי הכוונה גדול מאפס בסדר אבל אתם רואים זה מספר חיובי בין אפס לאינסוף למעשה וזה מספר תמיד גדול אני יכול לבדוק את זה אם אני אריץ את הדבר הזה הרבה פעמים איך נריץ את זה הרבה פעמים בוא נאמר אני אריץ
את זה 10 פעמים בלולא עד 4 כפי שאתם רואים כאן אז מה אני עושה 10 פעמים מגריל מספר אנדומלי ומדפיס אותו בסדר בוא נראה הקומפיילר פה מתלונן שאנחנו לא צריכים להגדיר את i בסדר רגע קודם כל הנה מספרים רנדומליים הקומפיילר פה מתלונן שאנחנו לא צריכים להגדיר את i בוא נרשום במקום i נרשום סימן של
underscore כלומר לא אכפת לי מ-i אני רק רוצה לעשות את הקוד הזה 10 פעמים בסדר עכשיו הוגרלו עבורי פה 10 מספרים רנדומליים אבל הם מספרים די גדולים איך אני יכול לתחום את המספר הרנדומלי להיות בין 0 ל-100 כדי לתחום את המספר הנדומה ללהיות בין 0 ל-100 אני משתמש פה בטריק שאתם חייבים להכיר אותו ועכשיו אני מראה לכם של אופרטור השארית.
שארית חלוקה של מספר ב-100 תמיד תהיה בין 0 ל-100. למשל אם אני לוקח את המספר 101 ומוצא את שארית החלוקה ב-100, שארית תהיה 1. 102 שארית החלוקה ב-100 תהיה 2 וכן הלאה.
אתם מוזמנים לעצור את הסרטון, להריץ פה סדרה של מספרים שאתם מכירים ולמצוא את שארית החלוקה שלהם כדי ללמוד יותר על שארית החלוקה. בסדר? כלומר, 101, 102, מזמין אתכם ללמוד קצת יותר על האופרטור הזה, חשוב להכיר.
הוא מוצא לי פשוט את השארית של החלוקה. עכשיו, אחרי שהשתמשנו פה בטריק, אני מצפה לקבל מספרים רנדומליים בין 0 ל-100, לא כולל 100, אוקיי? הדבר הזה, אני כבר אומר לכם, נותן לי מספרים בין 0 ל-99, שזה נהדר.
אם אני רוצה עד 100 כולל, אני אשים פה עד 101 עכשיו אני מקבל מספרים רנדומליים בין 0 ל-100 בוא נריץ בוא נראה בין המספרים שהוגרלו אני יכול לראות כל מיני מספרים כולל 0 ואפילו כולל את 100 בסדר אז ככה בעצם אנחנו יכולים להגריל מספר בסוויפט וגם להגביל אותו להיות בין 0 ל-בדיוק בדיוק 100 עכשיו
דבר אחרון שאני רוצה להגיד, המספר הזה הוא מסיפוס של שלם, מספר שלם וחיובי. לפעמים אנחנו רוצים מספר שלם אבל לאו דווקא חיובי, ואז אנחנו נרצה להמיר את המספר שלנו להיות אינטג'ר בצורה הבאה. דרך אגב, בוא ניפטר פה שנייה מילולת אפור, הבנו את הרעיון.
כדי להמיר את המספר השלם והחיובי לפשוט מספר שלם, פשוט נמיר אותו ל-int, כמו שאתם כבר יודעים לעשות. נעטוף את זה במספר שלם והנה אינט דבר אחרון אנחנו רוצים לעשות אנקפסולציה של כל הדבר הזה למתודה שימושית עבורנו אז אנחנו יכולים להגדיר לנו פונקציה גלובלית שתקרא get random שהיא תקבל מספר מקסימלי ומה
שהפעולה הזאת תרצה להחזיר לנו זה מספר שלם שהוא רנדומלי get random כדי לעשות את זה אנחנו פשוט נגריל מספר בין 0 במקום 101 נגריל מספר עד max+1 שזה יצא בדיוק עד ה-101 ולא עד ה-100 ואז נוכל להחזיר את המספר שלנו בסדר זה בדיוק מה שאנחנו רוצים לעשות בוא נראה איך הדבר הזה
עובד במקום הקוד שרשמתי כאן אני אשים אותו רגע בהערה אני עכשיו במקום להשתמש בארק פור רנדום שקצת מעצבנת עם המספר שלם וגם הרצון הזה לעשות את המודול ואת החלוקה אנחנו עכשיו יכולים ישר להגריל מספר על ידי get random לתת לה נניח מספר רנדומלי בין 0 ל-100 והיא תגריל ישר בין
0 ל-101 למה כי אמרתי לה max 100 והיא הלכה אמרה עד 101 אני אעשה את השארית חלוקה מצוין אז המתודה הזאת תוכל לעזור לנו בהמשך להגריל מספרים רנדומליים