חישוב צאצאים אחרי 100 שנה
-
@מעלה-ומוריד
מבקש את סליחתך..
לא אמרתי שהחישוב שלך לא נכון.
רק אמרתי שמשהו בבסיס לא נכון.
התכוונתי לבסיס הנתונים, כפי שכתבת שנתים אלו משנות את כל התמונה.
בכל אופן סליחה אם היה משמע זלזול מדברי.
ממש לא התכוונתי. -
אפשר לחשב שהבן הראשון נולד בגיל 20 והאחרון בגיל 38. אבל חישבתי לפי בן ראשון בגיל 22 ובן אחרון בגיל 40. במצב הזה כשהאב בן 100 יהיו כמובן 10 בנים ו-100 נכדים אבל רק 780 נינים (הנכד הקטן ביותר הוא בן 20, מה לעשות), מתוכם 63 נולדו השנה! מזל טוב! ורק 84 נינים מתוך ה-730 הם בגיל 22 ומעלה ויש להם בכלל ילדים, שהם בני-נינים. וכמה בני-נינים? 210. וזהו. אז סה"כ 10+100+780+210=1100.
במציאות יש משפחות של הרבה יותר מ-10 ילדים, וגם אפשר בגיל 18 כבר להיות אבא. אבל זו לא תחרות!
מצרף את קובץ האקסל המוכיח את החישוב. A הוא האב, B הם הבנים, C הם הנכדים. B0 הוא הבכור והוא בן 78. הנכדים הבכורים מודגשים. C0056 - שתי הספרות הראשונות של הנכד זה היחוס שלו, C32 הוא הבן השלישי של B3 שהוא הבן הרביעי (מתחילים מ-0). ושתי הספרות האחרונות הן הגיל שלו. D הם הנינים, ואצלם שלוש הספרות הראשונות הן היחוס ושתי הספרות האחרונות הן הגיל.
בצבע ירוק צבוע נין שיש לו בנים. בצד יש את E - מספר הנינים מבן זה.
הבנים והנכדים מסודרים אנכית, הנינים אופקית אחרי אביהם.
צאצאים.xlsx -
@חגי-פאהן כתב בחישוב צאצאים אחרי 100 שנה:
צאצאים.xlsx
זה מה שאני מקבל:
זה בעיה אצלי?
עריכה: הבנתי עכשיו שהבעיה היא בהבנת הנקרא שלי... צריך השקעה להבין מה עשית... אבל נראה שאתה בדרך לתשובה הנכונה...
מחפש דרך להמיר את זה לצורה יותר מובנית עבורי....
תודה רבה!
אגב, איך עשית את זה?! מאמין שלא ידני... מה הדרך?
-
קצת טרחה, אבל ברגע שכתבתי 2 נינים ומשכתי, האקסל יודע לחשב את הבאים בתור.
במבט ראשון זה נראה פלט של וירוס, השתדלתי להסביר איך לקרוא את זה. כל C הוא נכד, ומשמאלו מסודרים בשורה בניו שהם הנינים והם D. וD שהוא ירוק, יש לו בנים משלו (בני נינים) שלא מופיעים באקסל, כי לא היתה לי דרך נורמלית להציג אותם, אבל יש סיכום בצד שמאל של מספר בני הנינים מבן זה (אז יש 10 סיכומים).
-
@חגי-פאהן כתב בחישוב צאצאים אחרי 100 שנה:
אפשר לחשב שהבן הראשון נולד בגיל 20 והאחרון בגיל 38
וזאת תהיה התוצאה:
צאצאים: 2024
מתוכם...
ילדים: 10 (20-38)
נכדים: 100 (40-76)
נינים: 916 (60-100+)
בני נינים: 997 (80-100+)
מצו'
נ.ב. (לא לשכוח להוריד בסוף1 - האבא)
תהליך הבדיקה:var year = 2000; var nextChildId = 1; var children = []; function addChild(nowYaer, father, generation) { children.push({ id: nextChildId, age: 0, father, generation, birth: nowYaer }); nextChildId++ } function runYear() { for(let i=0;i<=100;i++){ if ((i/2-i%2)===i/2) { if (children.length === 0) { addChild(year, 0, 0); } else { children.filter((child) => child.age >= 20 && child.age < 40).forEach((iChild) => { addChild(year, iChild.id ,iChild.generation+1); }) } children.forEach((child) => { child.age = child.age+2 }) year = year+2; } } } runYear();
ובשביל לשנות לידה הראשונה ב 22 והאחרונה ב 40 ניתן לשנות בשורה 22 ל:
children.filter((child) => child.age > 20 && child.age <= 40).forEach((iChild) => {
-
@dovid כתב בחישוב צאצאים אחרי 100 שנה:
מהזוית של קוד מחשב, כתבתי איך שאני חושב, יצא לי 1705
בעצם גם לי יצא אותו דבר בהתחלה, רק ניסיתי לראות איפה הטעות שלי (בעצם לא בדיוק טעות כי אין פה כללים מאוד ברורים כל אחד מניח הנחות אבל כוונתי לדעת הקהל)
בעצם השאלה היא: כמה שנים יש בין 1 ל 100? > לכאו' 100,
אבל בקוד למעשה אנו מתחילים משנה עגולה כלומר 1900 שזה בעצם כמו אפס, ובאמת לא מחשיבים את שנת המאה - (2000),
אבל אם נחשב גם את שנת המאה (האלפיים), (בקוד שלי עשיתי נמוך שווה לשנת המאה) ובקוד של @dovid המצו' נוסיף לEND_YEAR עוד שנה ככה:const END_YEAR = 2001;
נגיע לאותה תוצאה, 2024.
-
@one1010 כתב בחישוב צאצאים אחרי 100 שנה:
@חגי-פאהן כתב בחישוב צאצאים אחרי 100 שנה:
קצת טרחה, אבל ברגע שכתבתי 2 נינים ומשכתי, האקסל יודע לחשב את הבאים בתור.
נכדים עשית 100? או שגם בזה משכת?
כתבתי 20 (או קצת יותר) וכל 2 נכדים ראשונים של בן משכתי.
-
@חגי-פאהן כתב בחישוב צאצאים אחרי 100 שנה:
@one1010 כתב בחישוב צאצאים אחרי 100 שנה:
@חגי-פאהן כתב בחישוב צאצאים אחרי 100 שנה:
קצת טרחה, אבל ברגע שכתבתי 2 נינים ומשכתי, האקסל יודע לחשב את הבאים בתור.
נכדים עשית 100? או שגם בזה משכת?
כתבתי 20 (או קצת יותר) וכל 2 נכדים ראשונים של בן משכתי.
התחלתי להתבלבל... כולכם כ"כ משכנעים...
בהתחלה שזה אחז ב11,000 צאצאים הבנתי שזאת טעות, עכשיו יש 3 טוענים בתוקף, אתה טוען 1,100 @dovid טוען 1,700 ו @avi-rz טוען 2000 ואיך זה שאין דרך יותר פשוטה?!
-
@one1010 כתב בחישוב צאצאים אחרי 100 שנה:
התחלתי להתבלבל... כולכם כ"כ משכנעים...
בהתחלה שזה אחז ב11,000 צאצאים הבנתי שזאת טעות, עכשיו יש 3 טוענים בתוקף, אתה טוען 1,100 @dovid טוען 1,700 ו @avi-rz טוען 2000 וכולם עושים את אותו חישוב ואותם מסקנות!
אתה צריך להיות ברור בכללים ולפי זה תוכל לקבל תשובה בפה אחד מכלם,
שלושת האפשרויות תלויות בשלושת השאלות הבאות:-
האם הלידה הראשונה היא ב 20 והאחרונה ב 38 או הראשונה ב 22 והאחרונה ב 40?
תשובה: אם הלידות הן בין 20-38 = 2,024 ואם הלידות הן בין 22-40 = 1,100 -
האם המספר שאתה רוצה לקבל כולל את הלידות בשנת המאה או לא כולל?
תשובה: אם הספירה כוללת את הלידות בשנת המאה, ולפי ההנחה שהלידות הן בין 20-38 = 2,024, ואם הספירה אינה כוללת את הלידות בשנת המאה, ולפי ההנחה שהלידות הן בין 20-38 כנ"ל = 1,705
ואידך זיל גמור...
נ.ב. אם אתה רוצה לראות את השתלשלות השנים בכל שנה כמה נולדו ולאיזה דור תוכל להתשמש בקובץ שהבאתי למעלה ולבדוק בקונסול (F5)
בהצלחה.
-
-
מעניין.
עשיתי עכשיו אקסל (מאד ברור ומסודר) לפי 10 לידות החל מגיל 22, כולל לידות בשנת ה100ויצא לי: 10-100-781 וזהו
מצ"ב האקסל
היכן טעיתי?
על כל ילוד מופיעה שנת הלידה. הסבא - 1900 והילודים האחרונים 2000.
זה בנוי כך שהבנים יש להם אות אחת ושנת לידה, הנכדים שתי אותיות (אות ירושה ואות חדשה) הנכדים 3 אותיות (2 ירושה ואחת חדשה) והנינים 4 אותיות (כנ"ל+).
העליתי לדוקס
https://docs.google.com/spreadsheets/d/1bY5Tuu39yma3wdn3oPzxdtOheTRznCjv/edit#gid=1764765896
-
@מעלה-ומוריד טעית בנוסחה של הבני נינים, כתבת שם חמש סימני שאלה במקום ארבע.
וזה יוצא ביחד 1101, ועוד טעות שזה שיש אצלך נכד שנולד ב2002, אז הגענו ל1100.
הקוד שלי ייתן אותה תוצאה אם תשנה:
א. גיל ההתחלה 22 במקום 20
ב. שנת 40 עולה מן החשבון, כלומר MAX_AGE = 41
ג. שנת ה100 עולה מן החשבון, כלומר END_YEAR = 2001@one1010 באמת השאלה שלך ממחישה משהו מאוד יפה, שלדעתי הוא יסוד גדול בכלל השטחים והחיים.
שאלת איך יכול להיות כ"כ הרבה תשובות סותרות לשאלה כה פשוטה,
והנה רואים שהתשובה היא שהפרמטרים הם קריטיים. -
@dovid כתב בחישוב צאצאים אחרי 100 שנה:
@מעלה-ומוריד טעית בנוסחה של הבני נינים, כתבת שם חמש סימני שאלה במקום ארבע.
וזה יוצא ביחד 1101, ועוד טעות שזה שיש אצלך נכד שנולד ב2002, אז הגענו ל1100.ההבחנה שלך בפרטים הקטנים...