עבור לתוכן
View in the app

A better way to browse. Learn more.

HWzone

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

שאלה ברקורסיה(אולי טיפה קומבינטוריקה, לא בטוח לגבי זה)

Featured Replies

פורסם

שלום

קיבלנו שאלה ברקורסיה:

נתונה מטריצה בגודל M על N בה שמורים כל המספרים מ-1 עד M*N, כך שכל שורה תהיה ממויינת בסדר עולה משמאל לימין, וכל עמודה תהיה ממויינת בסדר עולה מלמעלה למטה

א. כתוב אלגוריתם רקורסיבי המחשב בכמה אפשרויות ניתן למלא מטריצה בגודל M*N באופן שהוסבר

ב. כתוב אלגוריתם רקורסיבי המדפיס את כל האפשרויות למילוי מטריצה בגודל M*N באופן שהוסבר

אם זה משנה בעקרון את התרגילים אנחנו מגישים בשפת C

ניסיתי כל מיני כיוונים ולא הלך כל כך

אם מישהו יוכל לכוון אותי אני אודה לו מאוד

פורסם

האלגוריתם מקבל בתור קלט מטריצה m*n, וקטור v בגודל n (מספר העמודות) שמאותחל לאפס, וקטור u עם המספרים שעדיין לא השתמשנו בהם, ואת גודל המטריצה.

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

עכשיו בלולאה על כל הסידורים האפשריים: בשורה הראשונה תבחר סידור של המספרים ב- u בסדר עולה (משמאל לימין), כך שבעמודה ה- k כשמתחילים לספור מ-0, המספר יהיה לכל היותר ((M*N-m*(N-k) ועוד 1, וגם שהערך יהיה גדול מהערך המתאים בוקטור v (כדי שכל עמודה תהיה ממוינת).

לאחר מכן שנה את ערכי הוקטור v לערכי השורה הראשונה, הורד מהוקטור u את הערכים שב- v ותן אותם לאלגוריתם עם המטריצה בלי השורה הראשונה, ועם הגודל m-1*n.

אם האלגוריתם מקבל שורה אחת (m=1) שיסדר, ידפיס את המטריצה ויגדיל counter.

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

מצד שני אם יש סידור טוב של המטריצה, בשלב כלשהו נקבל אותו.

אפשר לעשות את זה יותר יעיל. מה דרישות הסיבוכיות? זמן? מקום?

פורסם
  • מחבר

כעקרון אין דרישות ספציפיות, כמובן שכמה שיעיל יותר טוב

בכל אופן תודה סיימתי עם זה :)

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.