IOPanel

חזור   IOPanel > דבר חופשי > תוכנה ומערכות הפעלה > תיכנות
עמוד ראשי הירשם חיפוש הודעות מהיום סמן פורומים כנקראו

תיכנות פורום בנושאי תיכנות , פיתוח אתרים , שפות תיכנות , אפליקציות סלולר וטאבלטים.

תוכנה ומערכות הפעלה : תיכנות

צריך להבין קטע קוד

תראו יש לי איזה תרגיל שצריך לכתוב תוכנית שמוצאת את המספר הנפוץ ביותר במערך, הוא מופיע הכי הרבה פעמים. לא ...
תגובה
 
קישור חוזר הגדרות אשכול אפשרויות הצגת נושא
ישן 28-12-09, 17:57   #1 (קישור ישיר)
IO Addict
 
סמל האישי של ZipoX
 
תאריך הצטרפות: Sep 2007
הודעות: 3,046
שלח הודעה דרך MSN אל ZipoX
ברירת מחדל צריך להבין קטע קוד

תראו יש לי איזה תרגיל שצריך לכתוב תוכנית שמוצאת את המספר הנפוץ ביותר במערך, הוא מופיע הכי הרבה פעמים. לא ידעתי איך, לכן ה' המציא לי את גוגל, חיפשתי ומצאתי קטע תוכנית, לא משנה שהייתה שם שגיאה, תיקנתי אותה, והינה הקטע הנכון. עכשיו אני צריך הסבר איך זה בדיוק פועל, ממש הסבר שאבין את התוכנית ואיך לבנות דברים דומים או את זה בדיוק, בעתיד
קוד:
public static int mostCommon(int [] arr)
    {
    int count = 1;
    int currentIndex = 0;
    for(int i = 1 ; i < arr.length; i ++)
    {
        if (arr[i] == arr[currentIndex])
            count++;
        else
            count--;
        if (count == 0 && arr[i]!=arr[arr.length-1])
        {
            currentIndex = i;
            count = 1;
        }

    }
    return arr[currentIndex];
    }
__________________
MAIN : E5200 | MUGEN II | DFI P35 T2L | OCZ Platimum 2X2G 800MHZ CL4 | CLUB3D HD4850 | ENERMAX LIBERTY 400W
HTPC : AMD Sampron 140 2.7GHZ@AMD ATHLON II 440X2 | GA MA785GM-US2H | Wintec AMPX 2G 800MHZ | O\B HD4200
ציטוט:
פורסם במקור על ידי raziel1981 צפה בהודעה
העולם הוא בית משוגעים, ואנחנו המחלקה שהכי טוב להיות בה בנסיבות הקיימות
ZipoX לא מחובר   הגב עם ציטוט
ישן 28-12-09, 20:17   #2 (קישור ישיר)
IO Member
 
תאריך הצטרפות: Dec 2008
הודעות: 290
ברירת מחדל

אני לא יודע C או מה שהשפה הזאת לא תהיה, אבל אני הצלחתי להבין:
הוא עובר דרך כל מספר במערך ע"י המשתנה I.
באותו הזמן הוא שומר על המיקום של המספר האחרון במערך במשתנה currentindex.

ככה שהוא בודק, אם i = currentindex, הוא מוסיף אחד ל-Count.
אחרת, הוא מחסיר.

ה-If השני זה רק להתחלה ולמצב שבcount יש 0 והבדיקה ב-I לא שווה למספר הרוצים לבדוק במערך.

זה מה שהצלחתי להבין.
לא הצלחתי להבין איך הוא שומר על כל המספרים ומשווה איזה מהם יש הכי הרבה פעמים. ( כנראה משהוא שלא רואים כאן בקוד, משהוא בשפה הזאת שאני לא יודע, או שאני לא מבין את הקטע עם המשתנה count )
__________________
gaming-pc לא מחובר   הגב עם ציטוט
ישן 28-12-09, 20:34   #3 (קישור ישיר)
IO Addict
 
סמל האישי של ZipoX
 
תאריך הצטרפות: Sep 2007
הודעות: 3,046
שלח הודעה דרך MSN אל ZipoX
ברירת מחדל

אחי אתה אמרת רק מה הפעולה עושה, תרתי משמע, אני מדבר על הבנה, אני לא מבין את הפואנטה של זה, מה הכוונה של התוכנית וכו'....ד"א זה ג'אווה
__________________
MAIN : E5200 | MUGEN II | DFI P35 T2L | OCZ Platimum 2X2G 800MHZ CL4 | CLUB3D HD4850 | ENERMAX LIBERTY 400W
HTPC : AMD Sampron 140 2.7GHZ@AMD ATHLON II 440X2 | GA MA785GM-US2H | Wintec AMPX 2G 800MHZ | O\B HD4200
ציטוט:
פורסם במקור על ידי raziel1981 צפה בהודעה
העולם הוא בית משוגעים, ואנחנו המחלקה שהכי טוב להיות בה בנסיבות הקיימות
ZipoX לא מחובר   הגב עם ציטוט
ישן 29-12-09, 9:20   #4 (קישור ישיר)
IO Folding Team
 
סמל האישי של static
 
תאריך הצטרפות: Dec 2007
הודעות: 2,111
ברירת מחדל

שלחת מערך לפונקציה הזאת וראית שהיא באמת עובדת ?

בעיקרון יש דרך פשוטה מאוד אם אתה יודע מראש את טווח המספרים במערך (נגיד 1-100 או 0-999 וכו')
__________________
cpu: i7 920 D0| mobo: Gigabyte Ga-EX58-UD4P | mem: Mushkin Black Line 12GB 1600MHz 9-9-9-24 | gpu: PNY 670GTX | case: Antec P190 | psu: Antec neo-link 1200w |
hd: 1TB Samsung F1 + Intel SSD 120Gb 330 , 320GB WD AAKS | display: Samsung T240 24" | keyboard: Logitech Wave | mouse: Logitech MX Revolotion + G700 | Speakers: Logitech Z-5500
static לא מחובר   הגב עם ציטוט
ישן 29-12-09, 21:08   #5 (קישור ישיר)
IO Addict
 
סמל האישי של ZipoX
 
תאריך הצטרפות: Sep 2007
הודעות: 3,046
שלח הודעה דרך MSN אל ZipoX
ברירת מחדל

כה שלחתי וזה עובד, ואני מדבר על בלי טווח, אני יודע שאפשר לעשות מערך מונים, אבל אני בכוונה הולך על זאתי שאני לא יודע... תוכל להסביר לי את הפעולה?
__________________
MAIN : E5200 | MUGEN II | DFI P35 T2L | OCZ Platimum 2X2G 800MHZ CL4 | CLUB3D HD4850 | ENERMAX LIBERTY 400W
HTPC : AMD Sampron 140 2.7GHZ@AMD ATHLON II 440X2 | GA MA785GM-US2H | Wintec AMPX 2G 800MHZ | O\B HD4200
ציטוט:
פורסם במקור על ידי raziel1981 צפה בהודעה
העולם הוא בית משוגעים, ואנחנו המחלקה שהכי טוב להיות בה בנסיבות הקיימות
ZipoX לא מחובר   הגב עם ציטוט
ישן 29-12-09, 22:46   #6 (קישור ישיר)
IO Folding Team
 
סמל האישי של static
 
תאריך הצטרפות: Dec 2007
הודעות: 2,111
ברירת מחדל

אני חושב שיש פה כח עליון.. חחח עברתי על הפונקציה הזאת עם כמה מערכי דוגמה (עשיתי מעקב על דף) אין מצב שהיא עובדת... (יכול להיות שטעיתי במעקב)

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

בעיקרון אני חושב שהדרך הכי נוחה היא לעבוד עם 2 מצביעים אחד מצביע על האיבר הראשון ונשאר במקום בזמן שהמצביע השני עובר על האיבר השני והלאה, כל פעם שהוא מוצא שיוויון לאיבר הראשון הוא יגדיל 1COUNT ברגע שהמצביע השני יגיע לסוף הוא המצביע הראשון יזוז צעד לאיבר השני במערך והמצביע השני יזוז לאיבר השלישי במערך ויתחיל להתקדם כמו קודם תוך כדי שהוא מגדיל COUNT2 אם הוא מוצא התאמות. בסוף הריצה משווים בין הקאונטרים ושומרים את הגבוה מבינהם וממשיכים בסריקות.
__________________
cpu: i7 920 D0| mobo: Gigabyte Ga-EX58-UD4P | mem: Mushkin Black Line 12GB 1600MHz 9-9-9-24 | gpu: PNY 670GTX | case: Antec P190 | psu: Antec neo-link 1200w |
hd: 1TB Samsung F1 + Intel SSD 120Gb 330 , 320GB WD AAKS | display: Samsung T240 24" | keyboard: Logitech Wave | mouse: Logitech MX Revolotion + G700 | Speakers: Logitech Z-5500
static לא מחובר   הגב עם ציטוט
קישור פירסומי
ישן 29-12-09, 23:21   #7 (קישור ישיר)
IO Addict
 
סמל האישי של ZipoX
 
תאריך הצטרפות: Sep 2007
הודעות: 3,046
שלח הודעה דרך MSN אל ZipoX
ברירת מחדל

להגיד לך תאמת? כנראה כוח עליון, כי בnetBeans זה פועל...חחחחח בכל מקרה אם אפשר בכל זאת, אשמח אם תסביר לי את האלגוריתם
__________________
MAIN : E5200 | MUGEN II | DFI P35 T2L | OCZ Platimum 2X2G 800MHZ CL4 | CLUB3D HD4850 | ENERMAX LIBERTY 400W
HTPC : AMD Sampron 140 2.7GHZ@AMD ATHLON II 440X2 | GA MA785GM-US2H | Wintec AMPX 2G 800MHZ | O\B HD4200
ציטוט:
פורסם במקור על ידי raziel1981 צפה בהודעה
העולם הוא בית משוגעים, ואנחנו המחלקה שהכי טוב להיות בה בנסיבות הקיימות
ZipoX לא מחובר   הגב עם ציטוט
ישן 30-12-09, 0:48   #8 (קישור ישיר)
IO Folding Team
 
סמל האישי של static
 
תאריך הצטרפות: Dec 2007
הודעות: 2,111
ברירת מחדל

כמו שכתבתי, אני לא מבין את האלגוריתם שהם השתמשו בו...
אולי מחר אני אנסה לדבג את זה ולראות אם פיספסתי משהו במעקב שעשיתי על הדף
__________________
cpu: i7 920 D0| mobo: Gigabyte Ga-EX58-UD4P | mem: Mushkin Black Line 12GB 1600MHz 9-9-9-24 | gpu: PNY 670GTX | case: Antec P190 | psu: Antec neo-link 1200w |
hd: 1TB Samsung F1 + Intel SSD 120Gb 330 , 320GB WD AAKS | display: Samsung T240 24" | keyboard: Logitech Wave | mouse: Logitech MX Revolotion + G700 | Speakers: Logitech Z-5500
static לא מחובר   הגב עם ציטוט
ישן 15-01-10, 0:07   #9 (קישור ישיר)
IO Rookie
 
תאריך הצטרפות: Jan 2010
הודעות: 14
ברירת מחדל

אתה בטוח שלא חסר פה איזה שורות קוד?
אני אגיד לך מה אני חושב עד עכשיו.
בעיקרון הלכתי מהסוף להתחלה כי נראה לי מוזר שמחזירים את תוכן המערך..
בכל מקרה הסתכלתי על המקרה בו מתי הוא לא משתנה - מתי שהאיבר הראשון שווה לאיבר האחרון. במקרה הזה לא משנה מה יהיה הcounter הפלט תמיד יהיה התוכן של האיבר הראשון ששווה לתוכן האיבר האחרון (מפה אני חושב לכיוון מרחק בין מספרים דומים במערך..)

במקרה אחר - (תוכן האיבר הראשון שונה מתוכן מהאיבר השני) - הסיכוי שהוא ישתנה תלוי בכמות מספר האיברים (התוכן שלהם) של אותו איבר שאתה עכשיו נמצא בו לבין הבאים אחריו...
אני חושב אולי משהו הסתברותי?

מקווה שכיוונתי למקום מסויים..
אגב, הסינטקס של C וJAVA הוא קצת דומה והקוד שהבאת יעבור קומפילציה גם בקומפיילר של .C נראה לי בגלל זה חשבו שהקוד הוא של C..
mush לא מחובר   הגב עם ציטוט
תגובה


הגדרות אשכול
אפשרויות הצגת נושא

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

vB code הינו פועל
סמיילים הינו פועל
קוד [IMG] הינו פועל
קוד HTML הינו כבוי
Trackbacksהינו פועל
Pingbacks הינו פועל
Refbacks הינו פועל

נושאים דומים
אשכול מפרסם האשכול פורום תגובות הודעה אחרונה
לא מצליח להבין למה צריך 3 או 4 כרטיסי מסך zztop כרטיסי מסך 10 02-05-09 14:34
חייב להבין את זה... Shayx מסכים ותצוגה 4 10-04-09 2:14
לא מצליך להבין את הupdate של הביוס? gizmolo מעבדי INTEL ולוחות אם 4 21-02-09 13:24
אני רוצה להבין משהו... tsrm כרטיסי מסך 5 06-07-07 15:28
חייב עזרה להבין משהו dan999 כרטיסי מסך 15 12-05-07 22:38


כל הזמנים הם GMT +3. השעה כרגע היא 12:51.





מופעל על ידי: vBulletin
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO
IOPanel.net © כל הזכויות שמורות