הבהרה לגבי תרגיל השלמה 1 - פילוגנטיקה

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

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

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

אתה מתייחס פה למקרה הספציפי שבדוגמא ועל כן אתה “מפעיל פה את הראש” יותר ממה שצריך.
אל תנסה להתחכם כי תבין את המצב - בהינתן ממסד נתונים כלשהו אינך יכול לדעת מהם הענפים המדוייקים של העץ.
תאמין לי שגם בלי ניסיון ההתניות שלך יהיו מספיק תנאים בקוד.

אני מבין את מה ששניכם אומרים ומסכים! נתתי תנאי כדי שיאפשר את הדוגמה או דומות לה וזה באמת יצר מצב שכאשר אין אב משותף ישיר, האב המשותף נספר וזה הופך את הספירה ללא קוהרנטית עבור כל המצבים.
בואו נחכה להתייחסות מהסגל כדי שנבהיר את הסוגיה.
וכמובן שרק טענתי ש״over-thinking” הוא חיובי למתכנתים מתחילים.

להלן התשובה של ים לנושא:

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

2 לייקים