עבור לתוכן
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

פורסם

נתונים לנו המיספרים 1 2 3 4

צריך למצוא כמה אפשרויות יש בסה"כ אם נשתמש רק במספרים אלו כדי לקבל סכום כולל של 10

מותר רק חיבור

כלומר:

442=10

2222=10

1234=10

1243=10

1111111111=10

1333=10

2222=10

3334=10

השאלה היא

כמה אפשרויות כאלו יש לנו בסה"כ ?

פורסם

רקרוסיה למדתם?

פורסם

זה אכן רקורסיה, תבנה איזה פונקציה שתחשב לך את זה..

פורסם

נראה לי שהוא מתכוון לפתור את השאלה ללא שימוש בתכנית מחשב. (השאלה הופיעה באולימפיאדת מדעי המחשב)

פורסם

סתם שאלה, למה הצעת רקורסיה ולא לולאה?

פורסם

כי אתה יכול להסתכל על זה כעץ עם מקסימום של 4 עלים בכל שלב ועל מבנה כזה יותר קל לעבור ברקורסיה.

פורסם

f calculates possibilities for sum of n using 1,2,3,4:

f(n) = f(n-1) + 1*(n mod 4 == 0) + 1*(n mod 3 == 0) + 1*(n mod 2 == 0) + 1*(10 mod 1 == 0)

base: f(1) = 1

then run f(10)

הכוונה ב-n mod x == 0, זה תוסיף עוד 1 אם n modulo x שווה לאפס.

בטח יש דרך יותר פשוטה לפתור את זה, אבל מהכפאת לי.

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

פורסם

זה לא רקורסיה רגילה, לדעתי אפילו מדובר על backtracking.

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

פורסם

מה backtracking?? למה זה נחוץ? הפתרון למעלה הוא ב-O(n^2), למה צריך יותר?

אלא אם אתה מוצא איזה חור שאני מפספס.

פורסם

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

f(5)= f(4)+1+0+0+0 = 9

f(4)= f(3)+1+1+0+1 = 8

f(3)= f(2)+1+0+1+0 = 5

f(2)= f(1)+1+1+0+0 = 3

f(1)= 1

לעומת זאת הסכומים של הצירופים הבאים הבאים שווים 5:

14

41

23

32

113

131

311

221

212

122

1112

1121

1211

2111

11111

קצת יותר מ-9...

הדרך הנכונה לפתור את זה היא


f(int n)
{
int sum = 0;
for (int i=1;(i<=4)&&(n>i);i++)
sum+=f(n-i);
return sum+1;
}

פורסם

אף אחד לא הגדיר שיש חשיבות לסדר :P

פורסם

גם בלי חשיבות הקוד שלך לא נכון. עבור 2 יש 2 צירופים 11 ו-2 ולפי הקוד שלך יש 3 צירופים.

ארכיון

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

דיונים חדשים

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.