16-01-2015, 15:00
|
|
|
חבר מתאריך: 13.06.06
הודעות: 4
|
|
backtracking בג'אווה
שלום חברים,
יש לי תרגיל בית שעליי לפתור בשיטת ה backtracking (רקורסיה)
הבנתי פחות או יותר איך הולך הרעיון רק שאני לא מבין איך ליישם את זה.
איך אני גורם לרקורסיה לבדוק צעד קדימה ואם הוא לא טוב אז שתחזור צעד אחורה ותנסה לעשות פעולה אחרת..
להלן התרגיל,
ישנה מערכת תאורה שמכילה n נורות שמסודרות בשורה אחת ליד השניה.
כל נורה יכולה להיות באחד משני מצבים – דולקת או כבויה.
הנורות מחוברות בניהן כך שאם משנים את המצב של נורה במקום ה-i אזי:
גם המצב בנורות במקומות i-1 ו- i+1 משתנה.
אני צריך לייצג את הנורות במערך של משתנים בוליאנים,
כאשר true מייצג נורה דולקת ו-false מייצג נורה כבויה.
השיטה הבאה מקבלת כפרמטרים שני מערכים בוליאנים באותו הגודל שמייצגים מצב של נורות כמתואר בתחילת השאלה.
השיטה צריכה להחזיר true אם ניתן ברצף פעולות כלשהו להעביר את הנורות מהמצב from למצב to. אם אין אפשרות כזאת, השיטה תחזיר false.
אשמח להכוונה ועצות שלכם בבקשה.
|