
מישהי יכולה לעזור לי? (java script)
קדם ‹ Forums ‹ הייטק ‹ Web Development ‹ מישהי יכולה לעזור לי? (java script)
מישהי יכולה לעזור לי? (java script)
פורסם ע"י אפרת ב כללי on 19/12/2022 ב9:25 amיש לי מערך רנדומלי של 10 מקומות.
איך אני עושה שלא יהיו בו כפילויות של מספרים?
כלומר- כל מספר יכול להיות בו רק פעם אחת, ואם מוגרל אותו מספר פעם שניה אז הוא לא מכניס אותו ומגריל מיד מספר חדש?
אם מישהי יודעת- זה ממש ממש יעזור לי.
תודה מראש!!
יוכי הגיבה לפני 3 שנים, 3 חודשים 5 חברות · 10 תגובות- 10 תגובות
חברה רשומה
אולי כל פעם שהוא מגריל, לפני שהוא נכנס למערך, תשלחי לפונקציה שבודקת האם המספר נמצא במערך.
חברה רשומה
תודה!
יש מצב שאת מפרטת יותר או שיש לך קישור שיסביר לי?
אני פשוט לא כ"כ בעניין….
חברה רשומה
פונקציה כזאת(בערך, תלוי בעוד נתונים):
function checkNumber(arr, num) {
for (let i = 0; i < 10; i++) {
if (arr[i] == num)
return false;
}
return false;
}
פעילה בקהילה
הפתרון של רחל הוא בסבוכיות זמן גבוהה
אפשר גם לשמור טבלת גיבוב, ובכל פעם שרוצים להכניס מספר חדש –
לשלוח לפונקציה שבודקת האם המספר קיים בטבלת הגיבוב
אבל- כך תעלה סיבוכיות המקום.
תלוי מה הדרישה שלך בתרגיל
חברה רשומה
הנה הדרישה, אולי יהיה יותר ברור:
הגדירי מערך של 10 מקומות.
הגרילי לתוכו מספרים מ1-30
יש לשים לב שלא להגריל מספר אחד פעמיים.
ולכן במקרה והמספר החדש הוגרל כבר במערך צריך להגריל לו מספר חדש.
אני ממש לא מונחת בחומר- ולכן אשמח לתשובה מפורטת.
תודה רבה!! אין על הפורום הזה!!
חברה רשומה
אפשר להגדיר בהתחלה מערך עזר בגודל 30 שמכיל את המספרים 1-30
ואז להתחיל לרוץ בלולאה של 10:
לרנדם כל פעם מספר בטווח של 0 עד (29 פחות i) -הגודל של מערך העזר
לקחת מהמערך עזר את המספר שממוקם באינדקס שהתרנדם
ולמחוק את האיבר הזה ממערך העזר(יש כזה דבר בגאוהסקריפט?)
כך נוצר מצב שבמערך העזר יש לך את המספרים שעוד לא השתמשת
חברה רשומה
Log in to reply.
