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