לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 24-02-2008, 13:12
  Dark Knight Dark Knight אינו מחובר  
 
חבר מתאריך: 30.07.05
הודעות: 949
שלח הודעה דרך ICQ אל Dark Knight
חידה - מערך

מי שמכיר את הטריק - שלא יקפוץ בבקשה ויתן לאחרים לשבור קצת את הראש.
מי שרוצה שישלח לי הודעה פרטית עם פתרונות\שאלות וכו' ואני אשתדל לענות.


הבעיה:
כולנו יודעים שכשיוצרים מערך צריך לעבור על כל אחד מהאיברים שלו ולאפס אותו (אחרת מופיע שם זבל לא מוגדר).
פעולה כזו - מעבר בלולאה על כל אחד מאברי המערך - היא פעולה התלוייה בגודל המערך.

המטרה:
ליצור טיפוס מערך שיאותחל בזמן קבוע - שאינו תלוי בגודל המערך, תוך שימוש בתוספת זיכרון אפשרית שלא תעלה על יחס לינארי בגודל המערך (כלומר אם יש מערך בגודל 1000 אזי פתרון שישתמש ב-1000000 זיכרון לא מתקבל על הדעת, אבל 5000 כן.)

למי שקצת מכיר את המושגים:
סיבוכיות זמן: (O(1 לכל הפעולות של המערך - כולל איתחול.
סיבוכיות מקום: (O(n.

בהצלחה
_____________________________________
חתימתכם הוסרה כיוון שלא עמדה בחוקי האתר. לפרטים נוספים לחצו כאן. תוכלו לקבל עזרה להתאמת החתימה לחוקים בפורום חתימות וצלמיות.

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #5  
ישן 29-02-2008, 14:22
צלמית המשתמש של maxim k
  maxim k maxim k אינו מחובר  
 
חבר מתאריך: 05.08.06
הודעות: 2,860
שלח הודעה דרך MSN אל maxim k
פסאודו קוד...
בתגובה להודעה מספר 4 שנכתבה על ידי Dark Knight שמתחילה ב "טוב... עקב מחסור חמור בעונים,..."

תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה

השתמשתי בסימון A.member ולא בסימון הרגיל member[A] zz כדי שלא יהיה בלבול..
בכמה מילים:
המערך H2 ממען את האינדקס המבוקש לתא בו הוא באמת נשמר
המערך H1 מאמת את זה (כי יכול להיות מספרים כלשהם בH2)
המערך V מכיל את הערכים האמיתיים
c מאחסן את הערך שעד אליו מולאו H1 ו V
שאר המשתנים די ברורים

כשעושים set לתא i, אם הוא עוד לא נוצר אז יוצרים אותו בתא הפנוי הראשון (שנשמר בc) ואז מקדמים את c, ואחרת מציבים בתא הקיים.
כשעושים get בודקים אם תא i קיים ואם כן מחזירים את ערכו, אם לא מחזירים את הערך שאיתו איתחלו את המערך.

קל לראות שזה אכן O(1) עבור כל הפעולות, ו 3n+3 = O(n) zz מקום.

זה הפיתרון הראשון שקפץ לי לראש, יכול להיות שיש פיתרון טוב יותר (אתה מוזמן לשתף, אם אתה מכיר כזה).

*זה בתמונה כי משום מה FF קורס אצלי כל פעם שאני עושה תצוגה מקדימה לתגובה :O

נערך לאחרונה ע"י maxim k בתאריך 29-02-2008 בשעה 14:24.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 01:05

הדף נוצר ב 0.04 שניות עם 11 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2025 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר