הגעת למגבלת הצפייה למשתמשים שאינם רשומים באתר
  • נשמח אם תצטרפו לקהילה שלנו. הרשמה לאתר תקנה לכם את האפשרות לשאול שאלות ולהגיב לשרשורים באתר ללא כל עלות
  • טופס ההרשמה לאתר נמצא כאן למטה ולוקח פחות מ-30 שניות למלא אותו (כן, בדקנו עם סטופר 🤓)

חידות מתמטיות

  • פותח/ת השרשור
  • #61
לא צריך לרוץ על כל המספרים (גם לא בקפיצות) ועל כל אחד להפעיל פונקציה מסוימת (אפילו אם היא מאוד יעילה) כדי להשיג מהם רק את הראשוניים
אפשר לעשות פעולה מסוימת על כל הרשימה ולסנן מתוכה את הראשוניים (זה לא קשה במיוחד אבל משפר את הזמן ריצה בהרבה)
אפשר בצורה נאיבית לחלק ב2 את כל המספרים ברשימה - כל מי שמתחלק להעיף. אחרי זה לחלק ב3 ולהעיף את כל מי שמתחלק. וכו' עד 1000 (שורש מליון). זה עדיין בסיבוכיות יותר גבוהה ממה שהצעתי.
 
אפשר בצורה נאיבית לחלק ב2 את כל המספרים ברשימה - כל מי שמתחלק להעיף. אחרי זה לחלק ב3 ולהעיף את כל מי שמתחלק. וכו' עד 1000 (שורש מליון). זה עדיין בסיבוכיות יותר גבוהה ממה שהצעתי.


מה שאפשר זה לעשות לקחת רשימה של בוליאנים ולרוץ עליה בקפיצות של 2 כשמתחילים ב3
אם אנחנו במקום עם אמת, להפוך לשקר את כל הכפולות של האינדקס של התא

זה רץ הכי מהר
 
  • פותח/ת השרשור
  • #68
האמת שאני לומד על מלגה אז אני בכל מקרה לא צריך לשלם שכר לימוד. המיסים שלכם הולכים דווקא על בשר ובירה.
 
בוגר תואר כפול בפיזיקה והנדסת חשמל, עכשיו עושה תואר שני במדמ"ח.
וואו 😃

בכל מקרה אשמח לייעוץ קטן, אני עובד על אפליקציה שיש בה מסד נתונים נגיד A,B,C,D שהם מסודרים A->B->C->D
כלומר זה סוג של MAP, כאשר אני מקבל ערך של A אני מוצא את כל הערכים שלו ב B ואז לכל עיבר ב B אני מוצא את כל הערכים שלו ב C וכו'

בכללי בתחילת התוכנית אני טוען את הנתונים ל DATABASE שהוא תאכלס בערך MAP של MAP של ..

ועכשיו לשאלה שלי, באפליקציה רוב השינויים יתבצעו ברמה של D או C, כלומר יתווסף איבר חדש או יהיה EDIT לאיבר קיים.

איך אני משאיר את ה DATA שלי קונסינסטתי בין מה שאני מחזיץ בזיכרון לבין המסד נתונים בצורה יעילה ונוחה.

חשבתי על כמה אפשרויות.
1. כל שינוי כלומר הוספה/מחיקה/עדכון של איבר לשנות גם בזכרון וגם במסד נתונים.
2. לעדכן את השינויים בסוף התהליך (ביציאה מהאפליקציה) ופה יש בכללי 2 אפשרויות לכתוב הכל מחדש (לא בא בחשבון כי הנתונים לרוב רק יגדלו יעשו מעט מאוד עדכונים) או להחזיק משתנה BOOL ולכל אובייקט להגיד האם הוא VALID או לא ואז בסוף לכתוב רק את אלו שיש להם UNVALID.

מקווה שהכל ברור ושתוכל קצת לעזור לי.

פתרון 1 הוא יחסית פשוט אבל אני יודע שכל כתיבה למסד נתונים (במקרה שלי SQL) לוקח זמן, ורוב הזמן זה על פתיחת "ערוץ תקשורת וסגירה שלו"
אבל פתרון 2 ניראה לי יותר מידי מסורבל.
ניסיתי למצוא איזושהיא יוריסטיקה ב STACKOVERFLOW ללא הצלחה :(
 
בשאלה 5 השאלה אם הכלב יכול לא לנוע לצד בכלל בחלק מהצעדים ,אם כן זה מפשט בטירוף את הבעיה...
 
פתרון ל 8.
הנורה ה 1 תיהיה דלוקה כי רק חתול אחד עובר אליה ולגבי כל השאר
הנורות שישארו דלוקות הם כל אלו שיש להם שורש ריבועי , ואז מספר המחקלים יהיה איזוגי ולכן הנורה תיהיה דלוקה
הסבר:
לכל מספר X המחלק שלו בוודאות הוא 1 ו X, אם A מחלק את X אז X/A=B כאשר B שלם ולכן גם B מחלק אותו. ולכן עד עכשיו קיבלנו שיש סה"כ מחלקים זוגיים, אבל למספר שיש לו שורש ריבועי יוצא ש A=B ולכן זה אותו מספר ולכן יהיה לו מספר איזוגי של מחלקים.

פתרון ל 9.
זורקים את הכדור מהקומה ה 14 אם לא נשבר נזרוק מהקומה 14+13 ואם לא נשבר אז מהקומה ה 14+13+12 וכך הלאה כאשר כל פעם נוריד את הקפיצה ב 1. ברגע שהכדור נשבר נתחיל לזרוק את הכדור השני מהקומה האחרונה שהוא לא נשבר ונעלה למלעה בקומות בקפיצות של 1.
סה"כ יהיו מקסימום 14 זריקות
 
  • פותח/ת השרשור
  • #72
וואו 😃

בכל מקרה אשמח לייעוץ קטן, אני עובד על אפליקציה שיש בה מסד נתונים נגיד A,B,C,D שהם מסודרים A->B->C->D
כלומר זה סוג של MAP, כאשר אני מקבל ערך של A אני מוצא את כל הערכים שלו ב B ואז לכל עיבר ב B אני מוצא את כל הערכים שלו ב C וכו'

בכללי בתחילת התוכנית אני טוען את הנתונים ל DATABASE שהוא תאכלס בערך MAP של MAP של ..

ועכשיו לשאלה שלי, באפליקציה רוב השינויים יתבצעו ברמה של D או C, כלומר יתווסף איבר חדש או יהיה EDIT לאיבר קיים.

איך אני משאיר את ה DATA שלי קונסינסטתי בין מה שאני מחזיץ בזיכרון לבין המסד נתונים בצורה יעילה ונוחה.

חשבתי על כמה אפשרויות.
1. כל שינוי כלומר הוספה/מחיקה/עדכון של איבר לשנות גם בזכרון וגם במסד נתונים.
2. לעדכן את השינויים בסוף התהליך (ביציאה מהאפליקציה) ופה יש בכללי 2 אפשרויות לכתוב הכל מחדש (לא בא בחשבון כי הנתונים לרוב רק יגדלו יעשו מעט מאוד עדכונים) או להחזיק משתנה BOOL ולכל אובייקט להגיד האם הוא VALID או לא ואז בסוף לכתוב רק את אלו שיש להם UNVALID.

מקווה שהכל ברור ושתוכל קצת לעזור לי.

פתרון 1 הוא יחסית פשוט אבל אני יודע שכל כתיבה למסד נתונים (במקרה שלי SQL) לוקח זמן, ורוב הזמן זה על פתיחת "ערוץ תקשורת וסגירה שלו"
אבל פתרון 2 ניראה לי יותר מידי מסורבל.
ניסיתי למצוא איזושהיא יוריסטיקה ב STACKOVERFLOW ללא הצלחה 😭
הDB משותף לכל המשתמשים באפליקציה או שלכל אחד יש DB משלו? והניהול של הDB הוא בצד שרת?
בשאלה 5 השאלה אם הכלב יכול לא לנוע לצד בכלל בחלק מהצעדים ,אם כן זה מפשט בטירוף את הבעיה...
איך בדיוק זה מפשט? הפילוג של המיקום האופקי של הכלב יהיה התפלגות ידועה (סוג של Irwin-Hall), אבל עדיין החישוב לא מאוד פשוט.

פתרון ל 8.
הנורה ה 1 תיהיה דלוקה כי רק חתול אחד עובר אליה ולגבי כל השאר
הנורות שישארו דלוקות הם כל אלו שיש להם שורש ריבועי , ואז מספר המחקלים יהיה איזוגי ולכן הנורה תיהיה דלוקה
הסבר:
לכל מספר X המחלק שלו בוודאות הוא 1 ו X, אם A מחלק את X אז X/A=B כאשר B שלם ולכן גם B מחלק אותו. ולכן עד עכשיו קיבלנו שיש סה"כ מחלקים זוגיים, אבל למספר שיש לו שורש ריבועי יוצא ש A=B ולכן זה אותו מספר ולכן יהיה לו מספר איזוגי של מחלקים.
נכון מאוד.
 
  • פותח/ת השרשור
  • #74
פתרון ל 9.
זורקים את הכדור מהקומה ה 14 אם לא נשבר נזרוק מהקומה 14+13 ואם לא נשבר אז מהקומה ה 14+13+12 וכך הלאה כאשר כל פעם נוריד את הקפיצה ב 1. ברגע שהכדור נשבר נתחיל לזרוק את הכדור השני מהקומה האחרונה שהוא לא נשבר ונעלה למלעה בקומות בקפיצות של 1.
סה"כ יהיו מקסימום 14 זריקות
יפה, עכשיו תמצא את הפתרון במקרה שנתונים 3 כדורים 😃
 
אה והנה חידה מראיון עבודה. במיוחד בשבילכם בתור אנשי מתמתיקה @Balbazor @coldfire

בכפר יש N זוגות של גברים ונשים, כל הגברים מתמתיקאים 😃
ראש הכפר אוסף את כל הגברים ומספר להם שיש נשים בוגדות בכפר (בהכרח יש לפחות אחת), אבל לא ידוע כמה.
ראש הכפר אומר לכל גבר בנפרד על כל אישה האם היא בוגדת או לא פרט לאישתו (כלומר הגבר יודע הכל על שאר הנשים אבל על אישתו לא יודע כלום)

בתום השיחה כל הזוגות הולכים הביתה ואין שום תקשורות בין הזוגות.

בכל יום בשעה 12 כל הגברים שבטוחים כי אישתם בוגדת יורים בה(כל גבר יורה באישה שלו)

ידוע שביום ה 6 נשמעו יריות. (בשעה 12)

כמה יריות היו (שקול למספר הנשים הבוגדות) ? ואיך הגברים ידעו האם לירות באישה?
 
אני עוד יושב על הפשטה של העניין אבל אפשר להסתכל על הבעיה כ1000 הגרלות שבכל אחת ניתן לקבל מ10- ל10 .

בשביל להסביר את הכיוון שלי נסתכל על המצב בו היה מדובר רק בחיוביים מ0 עד 10 אז בשביל לסכום את כלל האופציות היה צריך לסכום את האפשרויות לחלק 10000 איברים ב1000 מקומות (כאשר מותר לשים עד 10 איברים בכל מקום) ועוד 9999 איברים ב1000 מקומות וכך הלאה עד ל0 איברים ב1000 מקומות ואז פשוט לקחת את סכום על האפשרויות שבהן חילקנו מספר איברים גדול מ30 ל1000 מקומות ולחלק בכלל האופציות ומצאנו את ההסתברות.

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

בשביל לקבל 9998- למשל צריך לחשב את האופציות לחלק 9998 איברים שליליים ב1000 מקומות כשמותר לשים עד 10 איברים בכל מקום אבל צריך להוסיף גם את האופציה לחלק 9999 ב999 מקומות כפול מספר האפשרויות לחלק 1 ב999 מקומות וכך הלאה. זה נראה לא פשוט לחישוב אבל יש לי תחושה שהסכומים איכשהו יפושטו ואני די בטוח שזה הכיוון.
 
אה והנה חידה מראיון עבודה. במיוחד בשבילכם בתור אנשי מתמתיקה @Balbazor @coldfire

בכפר יש N זוגות של גברים ונשים, כל הגברים מתמתיקאים 😃
ראש הכפר אוסף את כל הגברים ומספר להם שיש נשים בוגדות בכפר (בהכרח יש לפחות אחת), אבל לא ידוע כמה.
ראש הכפר אומר לכל גבר בנפרד על כל אישה האם היא בוגדת או לא פרט לאישתו (כלומר הגבר יודע הכל על שאר הנשים אבל על אישתו לא יודע כלום)

בתום השיחה כל הזוגות הולכים הביתה ואין שום תקשורות בין הזוגות.

בכל יום בשעה 12 כל הגברים שבטוחים כי אישתם בוגדת יורים בה(כל גבר יורה באישה שלו)

ידוע שביום ה 6 נשמעו יריות. (בשעה 12)

כמה יריות היו (שקול למספר הנשים הבוגדות) ? ואיך הגברים ידעו האם לירות באישה?
חחחחחחחחח התראיינת אצל אבא שלי! הוא המציא את החידה הזאת. פתרתי אותה לפני איזה 10 שנים בערך כשהוא סיפר לי אותה פעם ראשונה. עולם קטן.
התשובה היא 6. בהנחה שהייתה אישה אחת בוגדת בעלה היה חושב בלילה הראשון, רגע, יש נשים בוגדות ואני לא מכיר אף אחת מכאן זאת אישתי ויורה באשתו בלילה הראשון. זה לא קרה. נניח שהיו 2 נשים. כל אחד מהבעלים שלהן מכיר אישה אחת בוגדת לכן הבעל השני צריך להכיר 0 נשים ובלילה הראשון לירות בנשים שלהן. מאחר וזה לא קרה הם היו צריכים להבין שגם הגבר השני מכיר אישה שבוגדת ולכן זאת אשתם ואז בלילה השני היו נשמעות יריות. וכך זה ממשיך, אם היו 3 נשים אחרי הלילה השני הגברים היו מצפים לשמוע יריות ואז כשזה לא היה קורה בלילה השלישי היו נשמעות יריות, וככה עד ל6. לכן התשובה היא 6 נשים.

9. התשובה תהיה 14. מה שנעשה יהיה להתקדם תמיד בקפיצה של קומה אחת פחות כאשר אנחנו מתחילים ב14. אם ב14 לא נשבר נלך ל27, ואם לא ל39 וכך עד 100. אם נשבר לנו בשלב מסויים חוזרים לזריקה הקודמת ומתקמים אחד אחד. כלומר נניח שנשבר לי ב27 אני אזרוק 15-16-17-18 וכו'. ככה אני דואג תמיד להגיע מקסימום ל14 כי בכל זריקה שעשיתי על לבדוק איפה הוא לא נשבר אני מצמצם זריקה אחת במקרה שהוא כן נשבר. אז בעצם עושים 1+2+3+4+5+6+7+8+9+10+11+12+13+14 ו14 הוא הראשון שנותן מעל 100 לסכום הזה ולכן התשובה היא 11.

8. כל המספרים שהם מעלה 2 של מספר כלשהו כי אתה צריך שיקפצו מס' אי זוגי של חתולים וזה יקרה רק עם יש מכפלה של משהו בעצמו ואז ישארו דולקים 1,4,9,16,25,36,49,64,81,100. לגבי 1000 זה פשוט ממשיך באותה צורה עם 121,169,196,225,256,289,324,361,400,441,484,529,576,625,676,729,784,841,900,961
 
חחחחחחחחח התראיינת אצל אבא שלי! הוא המציא את החידה הזאת. פתרתי אותה לפני איזה 10 שנים בערך כשהוא סיפר לי אותה פעם ראשונה. עולם קטן.
התשובה היא 6. בהנחה שהייתה אישה אחת בוגדת בעלה היה חושב בלילה הראשון, רגע, יש נשים בוגדות ואני לא מכיר אף אחת מכאן זאת אישתי ויורה באשתו בלילה הראשון. זה לא קרה. נניח שהיו 2 נשים. כל אחד מהבעלים שלהן מכיר אישה אחת בוגדת לכן הבעל השני צריך להכיר 0 נשים ובלילה הראשון לירות בנשים שלהן. מאחר וזה לא קרה הם היו צריכים להבין שגם הגבר השני מכיר אישה שבוגדת ולכן זאת אשתם ואז בלילה השני היו נשמעות יריות. וכך זה ממשיך, אם היו 3 נשים אחרי הלילה השני הגברים היו מצפים לשמוע יריות ואז כשזה לא היה קורה בלילה השלישי היו נשמעות יריות, וככה עד ל6. לכן התשובה היא 6 נשים.
נכון.

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

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

תשובה ל4:
אני יורה יריה על הכסא השני משמאל (או מימין זה לא באמת משנה) ואח"כ יריה על הכסא אחד מימינו, אחד על זה שמימינו וככה עד הכסא הקיצוני הימני ואח"כ חוזר בכיוון ההפוך. מכאן שתוך 19 יריות פגעתי בקוף. אם צריך את ההסבר ללמה זה עובד בכל מצב אני גם ארשום פשוט אין לי כח להכניס את זה לפה זה דיי ארוך.
 
נערך לאחרונה:
שימו לב! השרשור ישן: לא היו תגובות בשרשור מעל 90 יום.

ייתכן שהתוכן בשרשור כבר אינו רלוונטי ולכן עדיף לפתוח שרשור חדש.

שרשורים דומים

Back
למעלה תחתית