לקראת CodeGuru-4, חידה בשפת סף

עמוד

ברוכים הבאים לאתר תחרויות קודגורו! פורומים חידות לקראת CodeGuru-4, חידה בשפת סף

מוצגות 5 תגובות – 1 עד 5 (מתוך 5 סה״כ)
  • מאת
    תגובות
  • #77357
    CodeGuru
    מנהל בפורום

    אם האוגר AL מכיל מספר אי-זוגי,
    מה יהיה ערכו אחרי ביצוע הקטע הבא?
    MOV BL,AL
    ADD AL,02
    PUSH AX
    MUL BL
    ADD AL,02
    POP DX
    MUL DL
    PUSH AX
    MUL BL
    ADD AL,02
    POP DX
    MUL DL

    מדובר בשפת סף של 80×86, ובהמשך נפרסם רמזים.

    #79077
    אורן בקר
    משתתף

    כותרת: פתרון
    התוכנית מחשבת את הנגדי להופכי של AL באריתמטיקה מודלו 256 (שבה רק למספרים אי זוגיים קיים הופכי, כי הם זרים ל 256, בעוד שהזוגיים אינם זרים לו ולכן הם מחלקי אפס וחסרי הופכי).

    את התוכנית ניתן לתרגם לשפה עילית בצורה הבאה:

    a = x; x = a*(a+2)
    b = x; x = (a+2)*(b+2)
    c = x; x = a*c;
    d = x; x = c*(d+2)

    כאשר כל המשתנים הם בגודל 8 ביט

    קל להיוכח, על ידי הצבות, שהתוכנית בעצם מחשבת את הביטוי:
    (x+2)(x(x+2)+2)(x(x+2)(x(x+2)+2)+2)

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

    t = x;
    x = x+2;
    x = x*(t*x+2)
    x = x*(t*x+2)

    לאחר השורה השניה, השארית של הביטוי tx מחלוקה ב 4 היא 3
    כעת, אם tx=(2^n)a+(2^n-1), אז
    t*(x*(t*x+2)) = (t*x)(t*x+2) = (2^(2n))a + (2^(2n)-1)
    ולכן לאחר השורה הרביעית, השארית של הביטוי tx מחלוקה ב 256 היא 255, או במילים אחרות tx=-1.

    #79078
    CodeGuru
    מנהל בפורום

    כותרת: כל הכבוד, פתרון מושלם; איזה סוג חידות תרצו?
    חשבנו לפרסם בהדרגה רמזים לחידה, והנה פתרון מושלם תוך יומיים.
    כל הכבוד!

    נפרסם חידה חדשה; איזה סוג אתם מעדיפים:
    מתימטיקה, אסמבלי, C, …?

    #79079
    אורן בקר
    משתתף

    כותרת: הכי מעניין זה אתגרים של כתיבת קוד
    ולא של הבנת קוד כתוב.
    האתגר של לכתוב תוכנית קצרצרה שתדפיס "קודגורו" הוא דוגמא טובה.

    אוסיף חידה קטנה משל עצמי בפורום.

    #79080
    יואב
    משתתף

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

מוצגות 5 תגובות – 1 עד 5 (מתוך 5 סה״כ)
  • יש להתחבר למערכת על מנת להגיב.