נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: בעיה ב C

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
אורח
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 04 October 2007 בשעה 09:59 | IP רשוּם
ציטוט אורח

נתקעתי בתרגיל הבא:

נתונים שני מערכים weight וvalue מסוג int גודל שניהם הוא n.

האיבר הראשון במערך value ובמערך weight מייצג את אותו מוצר.

דוגמא: איבר 0 שוקל 10 ק"ג וערכו 2 שקלים.

נתון תיק שיכול להכיל בו עד 15 ק"ג.

כתבו תוכנית שתמצא את הערך הגדול ביותר שנכנס לתיק.

 

 

----

עשיתי בהתחלה 3 לולאות בשביל לנסות לסרוק כל אפשרות.

אבל בסוף זה היה טעות כי זה לא סרק כל אפשרות..

אשמח אם מישהו יוכל לעזור לי לפתור את התרגיל או להראות לי דרך, כי ממש נתקעתי פה.

חזרה לתחילת העמוד הצג את כרטיס החבר של אורח חפש הודעות אחרות של אורח בקר בדף הבית של אורח
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 04 October 2007 בשעה 14:07 | IP רשוּם
ציטוט shoshan

העדיפות להכנסה לתיק היא שהיחס בין הערך למשקל יהיה גבוה ככל היותר,
אתה יכול כל פעם למצוא את האינדקס שיחס הזה אצלו הכי גבוה, אבל שמשקלו לא
עובד את המשקל שנותר, להוסיף את משקלו למשקל עד כה ולהוסיף את ערכו לערך עד
כה, ולשים בערכו 0 ובמשקלו 35 כדי שתתעלם ממנו בפעם הבאה.

ברגע שלא מצאת איבר מתאים להוסיף לתיק צא מהלולאה.

וזהו.

__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
אורח
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 04 October 2007 בשעה 20:20 | IP רשוּם
ציטוט אורח

אם אני יבדוק את מה שאמרת

אז מה יקרה במצב הבא?

value[n] = { 8, 8, 2
weight[n] =  { 14, 9, 6

זה יקבל את האיבר 0 בשניהם ולא יוסיף כלום וזה לא יהיה הערך הכי גבוה

שהוא למעשה 10 ולא 8 בשילוב של 9+6. 

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


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 04 October 2007 בשעה 23:39 | IP רשוּם
ציטוט לוק

הבעיה היא בעיית מקסימום בתיכנון לינארי.

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

ישנם אלגוריתמים יעילים רבים ומסובכים לפתרון של בעיות מסוג זה, הייתי ממליץ לך לבדוק
את שיטת הסימפלקס שהיא הפשוטה מבינהם.

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

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

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

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