פורסם 2008 בדצמבר 816 שנים שלוםקיבלנו שאלה ברקורסיה:נתונה מטריצה בגודל M על N בה שמורים כל המספרים מ-1 עד M*N, כך שכל שורה תהיה ממויינת בסדר עולה משמאל לימין, וכל עמודה תהיה ממויינת בסדר עולה מלמעלה למטהא. כתוב אלגוריתם רקורסיבי המחשב בכמה אפשרויות ניתן למלא מטריצה בגודל M*N באופן שהוסברב. כתוב אלגוריתם רקורסיבי המדפיס את כל האפשרויות למילוי מטריצה בגודל M*N באופן שהוסבראם זה משנה בעקרון את התרגילים אנחנו מגישים בשפת Cניסיתי כל מיני כיוונים ולא הלך כל כךאם מישהו יוכל לכוון אותי אני אודה לו מאוד
פורסם 2008 בדצמבר 916 שנים האלגוריתם מקבל בתור קלט מטריצה m*n, וקטור v בגודל n (מספר העמודות) שמאותחל לאפס, וקטור u עם המספרים שעדיין לא השתמשנו בהם, ואת גודל המטריצה.במטריצה במקום השמאלי למעלה צריך להיות המספר הקטן ביותר שעדיין לא השתמשנו בו.עכשיו בלולאה על כל הסידורים האפשריים: בשורה הראשונה תבחר סידור של המספרים ב- u בסדר עולה (משמאל לימין), כך שבעמודה ה- k כשמתחילים לספור מ-0, המספר יהיה לכל היותר ((M*N-m*(N-k) ועוד 1, וגם שהערך יהיה גדול מהערך המתאים בוקטור v (כדי שכל עמודה תהיה ממוינת).לאחר מכן שנה את ערכי הוקטור v לערכי השורה הראשונה, הורד מהוקטור u את הערכים שב- v ותן אותם לאלגוריתם עם המטריצה בלי השורה הראשונה, ועם הגודל m-1*n.אם האלגוריתם מקבל שורה אחת (m=1) שיסדר, ידפיס את המטריצה ויגדיל counter.מצד אחד כל אפשרות סידור כזאת תהיה טובה כי סידרנו את העמודות בסדר עולה, וגם את השורות בכל שלב.מצד שני אם יש סידור טוב של המטריצה, בשלב כלשהו נקבל אותו.אפשר לעשות את זה יותר יעיל. מה דרישות הסיבוכיות? זמן? מקום?
פורסם 2008 בדצמבר 1116 שנים מחבר כעקרון אין דרישות ספציפיות, כמובן שכמה שיעיל יותר טוב בכל אופן תודה סיימתי עם זה
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.