כמה שאלות מהמבחן….

עמוד
מוצגות 11 תגובות – 1 עד 11 (מתוך 11 סה״כ)
  • מאת
    תגובות
  • #77444
    TheWizard
    משתתף

    – בשאלה 9 מוקצה מספיק זכרון או לא?

    – איך פתרתם את שאלה 20? (עקרון מתמטי, תוכנה, וכו´)

    – שאלה 22… מה הפתרון ולמה?

    – מישהו הבין מה זה ב-39?

    – מה זה ב-90?

    – מה זה ב-98?

    #79416
    MoD
    משתתף

    כותרת: המממ… תשובותי :) —>
    9. כתבתי שהמשתנה str לא מוגדר נכון.. לא טרחתי לבדוק :)
    20. ע"פ דרך השלילה (שוב יכול להיות שטעיתי) 1% ו 91% נראים לי מוגזמים, 49% – הטיעון שלי הוא שלא נראה לי שבערך חצי מהמספרים התלת סיפרתיים הם ראשוניים.. אז נשארתי עם 17% בתקווה לטוב :)
    22. אני לא זוכר אם שמתי 10 או 5, פה לא היה לי רעיון – אני אשמח לשמוע פתרונות שלכם !
    39. הימרתי על שני ביטים דלוקים ברצף, אבל זו השערה חסרת הוכחה או בדיקה …
    90. היתה שאלה דומה (ללא שניות) בשלב א´ – שאלה מס´ 19, הפתרון שלי היה (לשלב ב) 27.8, אבל לצערי אני לא זוכר למה… (או שזה היה 18.4… :)
    98… כדי לעבוד עם תוכנית שנכתבה ב .NET דרוש ה Framework, לא זכור לי אם דרוש Wizard או תוכנית התקנה מיוחדת אבל דרוש הפריים וורק והתשובה הראשונה היא היחידה שהכילה את המשפט הזה – אז בחרתי בה :)

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

    כותרת: שאלה 22
    לדעתי התשובה היא שיש רק אפשרות אחת לספרת העשרות והיא 7.

    17^7 mod 100 = 73
    17^10 mod 100 = 49

    M = 17^(10n+7) mod 100 = (17^10)^n * (17^7) mod 100 =
    49^n * 73 mod 100

    49^2 mod 100 = 1

    עבור n = 2k
    M = 49^(2k) * 73 mod 100 = (49^2)^k * 73 mod 100 = 1 * 73 = 73

    עבור n=2k+1
    M = 49^(2k+1) * 73 mod 100 = 49 * 73 mod 100 = 77

    בשני המקרים ספרת העשרות היא 7

    #79419
    Yoni
    משתתף

    כותרת: אורן טועה + הקוד שלי לשאלה 20
    1. אורן טועה:
    17 בחזקת 7 = 410338673

    יש 2 אפשרויות – או שהמספר נגמר ב-3 או שהוא נגמר ב-7, וכך גם בחרתי. כשהייתי שם בדקתי עבור n=7, n=17, n=27, n=37, n=47, כשחזרתי הביתה הוכחתי באופן כללי (אם יהיה ביקוש אכתוב את ההוכחה).

    2. הקוד שלי לשאלה 20: (יתכן שיש להעתיקו ל-notepad או משהו דומה כדי שיהיה קריא)

    int isprime(int x)
    {
    for(int i = 2; i < x; i++)
    if(!(x % i))
    return 0;

    return 1;
    }

    int main()
    {
    int total = 0, primes = 0;
    for(int x = 100; x < 1000; x++) {
    total++;
    if(isprime(x))
    primes++;
    }

    printf("%d,%dn", primes, total);
    return 0;
    }

    הפלט הוא: 143,900
    כלומר: 143 ראשוניים מתוך 900 מספרים, או כ-15.8 אחוז.
    הערה: הפונקציה isprime כאן לא יעילה משהו. לא נורא… זה רק עד 1000, התוכנית רצה בפחות משניה גם ככה.

    #79420
    Yoni
    משתתף

    כותרת: רשע…
    גיליתי עכשיו שטעיתי בשאלה 9…
    לא מוקצה מספיק זכרון. strlen("")==0.

    #79422
    Yoni
    משתתף

    כותרת: אופס… לא קראתי נכון את השאלה
    חשבתי שמדובר בספרת האחדות של 17 בחזקת n.

    =(

    #79423
    Tom Alsberg
    משתתף

    כותרת: חלק מהשאלות
    אני לא מצליח לפתוח את הדף עם השאלות (ש-Shai מסר קישור אליו – http://go.ariel.muni.il/noar/1.htm), אולי כשאצליח יהיה לי עוד מה להגיב.

    לגבי השאלה על יוצאת הדופן בין ההוראות ב-Assembly, עניתי שזוהי JMP, מכיוון שזו לא משנה את המחסנית או את אוגר המחסנית (ESP/SP). לא חשבתי על האפשרות של RET כי היא לא יכולה לקבל אוגר כ-Operand, אבל גם עכשיו אני מאמין יותר בתשובה שלי – JMP. זה נכון שחלק מהשאלות לא היו ברורות לגמרי, או שיכלה ליהיות יותר מתשובה אחת נכונה.

    לגבי השאלה על יוצא הדופן בין Pipe/Socket/CopyData/MailSlot, עניתי שזהו CopyData, פשוט כי לא היה לי יותר מדי זמן לבדוק, ו-Pipe, Socket, ו-MailSlot הן צורות של IPC (Inter-Process Communication – תקשורת בין תהליכים) שהכרתי, ואת CopyData לא הכרתי.

    עתה לגבי השאלה על אחוז המספרים הראשוניים בני 3 הספרות, אני השתמשתי בשורה ב-Bourne Shell של UNIX. (אמנם תלוי מעט בכלי של BSD, אך יעבוד על רוב המערכות – אצלי זה היה Linux). למי שהיה לו מזל של נגישות למערכת כזו בזמן הבחינה, זה פשוט יותר מתוכנית של עשרות שורות ב-C:

    i=100; while [ i -lt 1000 ]; do echo $i | factor; i=`expr $i + 1`; done | grep ´^([0-9]*): 1$´ | wc -l

    מזה קיבלתי תוך כמה שניות את כמות המספרים הראשוניים בין 100 ל-999 – 143. זה היה הכי קרוב ל-17% מבין התשובות האפשריות.

    #79425
    MoD
    משתתף

    כותרת: אני רואה שלגבי שאלת הראשוניים…
    השיטה שלי היתה הכי מהירה :)
    Nice to know :)
    ד"א יופי של שורה ביוניקס – מוכשר מצידך :)

    #79426
    TheWizard
    משתתף

    כותרת: אההמ… לגבי שאלה הראשוניים…
    אפשר גם לפי עקרון מתמטי

    כמות המספרים הראשוניים הקטנים מ-n תמיד קטנה מ- n / logn
    log(100)=2
    log(1000)=3
    1000 / 3 = 333
    100 / 2 = 50
    333 – 50 = 283
    כלומר פחות מ-28.3%
    וזה כל מה שצריך בשביל התשובה… :)

    #79429
    Tom Alsberg
    משתתף

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

    #79431
    Yoni
    משתתף

    כותרת: לא מדויק
    אמרת שכמות המספרים הראשוניים הקטנים מ-n תמיד קטנה מ-n/logn.

    הוכיחו שהכמות הזאת גדולה מ-n/logn אינסוף פעמים, אבל גם הוכיחו שה-n הראשון כך שהכמות גדולה מ-n/logn הוא (הכנס מספר ממש ממש ממש גדול כאן).

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

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