יצירת מספרים אקראיים

Google Apps Script:
יצירת מספרים אקראיים

איך לעשות:

ב-Google Apps Script, ניתן ליצור מספרים אקראיים באמצעות הפונקציה Math.random(), בדומה ל-JavaScript. הפונקציה הזו מחזירה מספר צף, אקראי פסבדו, בטווח של 0 (כולל) עד 1 (לא כולל). להתאמת המספרים הללו לשימושים שונים, כגון יצירת מספרים שלמים בתוך טווח ספציפי, ייתכן שתצטרך לבצע חישובים נוספים.

יצירת מספר אקראי בסיסי

כדי ליצור מספר אקראי פשוט ולהדפיסו לקונסול:

function generateRandomNumber() {
  var randomNumber = Math.random();
  Logger.log(randomNumber);
}

פלט לדוגמא: 0.1234567890123456

יצירת מספר שלם בטווח ספציפי

כדי ליצור מספר שלם אקראי בין שני ערכים (min ו-max), כולל הערכים הללו:

function getRandomInt(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  var randomNumber = Math.floor(Math.random() * (max - min + 1)) + min;
  Logger.log(randomNumber);
  return randomNumber;
}

// לדוגמא:
getRandomInt(1, 10);

פלט לדוגמא: 7

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

דיוקן עמוק

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

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

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