הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

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

   
|!|

 
 
כלים לאשכול תצורת הצגה
Prev הודעה קודמת   הודעה הבאה Next
ישן 06-03-10, 21:56   # 1
Daniel
אחראי פורום
 
מיני פרופיל
תאריך הצטרפות: Mar 2007
הודעות: 2,875

Daniel לא מחובר  

אלגוריתמיקה - מציאת סכום האיברים הנותן תוצאה הכי קרובה למספר?

נניח שיש לי רשימת איברים שהם מספרים:
קוד:
10,40,70
אני רוצה לראות איך אני יכול לחבר/לחסר ביניהם כדי לקבל את התוצאה הכי קרובה למספר כלשהו - אפשר להשתמש בכל מספר פעם אחת ולא חייבים להשתמש בכולם (אגב - כל המספרים תמיד חיוביים וגדולים מ-0 וכך גם התוצאה הכי קרובה).

נניח שבדוגמא למעלה אני צריך לקבל את המספר הכי קרוב ל-58,

אני אעשה
קוד:
70 - 10
(שזוהי יוצא 60, שזה הכי קרוב ל-58).

הסכום תמיד נמוך מהאיבר הכי גבוה.

כמובן שיכול להיות אפילו רק 2 איברים ויכול להיות 10.
במידה ויש כמה תוצאות אני מעדיף לקבל את כולם אבל אפשר גם רק אחת.


מה שעלה בדעתי זאת שיטה שלוקחת הרבה מאוד משאבים יחסית.
נניח שיש 4 מספרים והמטרה היא X,
לכל מספר יש 3 מצבים - מופיע בחיבור, מופיע בחיסור, לא מופיע.
לא יכול להיות שכל המספרים מופיעים בחיסור כמובן (כי אז יוצאת תוצאה שלילית).
לכן יש (4 ^ 3 פחות 4 שזה בעצם 60) אפשרויות ראשוניות (פחות 4 כי יש 4 מצבים שבהם הכל מינוסים. עם איבר 1, עם 2 איברים, עם 3 ועם 4) ואז צריך לעבור אפשרות אפשרות ולחשב. בסופו של דבר זה יוצא כמות דיי גדולה של חישובים, השוואות, ואני צריך להריץ את הדבר הזה כמות גדולה של פעמים במהירות גבוהה.


תהיתי אם למישהו יש הצעות לדרך יעילה יותר.

מקווה שהבנתם את השאלה.
  Reply With Quote
 

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


כל הזמנים הם GMT +2. הזמן כעת הוא 21:41.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ