פורסם 2012 בדצמבר 1312 שנים זקוק לעזרה בכתיבת פונקציה שמחשבת LOG כאשר היא מקבלת את הבסיס ואת המספר עצמו.עד עכשיו הצלחתי לבצע לוג עבור מספרים זוגיים אבל באי זוגיים הכל מתחרבש...
פורסם 2012 בדצמבר 1312 שנים זו לא פונקציה פשוטה לחישוב בכלל, אלא אם:1) עושים הנחות מקלות רבות - למשל - רק מספרים שלמים וכו'2) מותר להשתמש בפונקצייה מובנית שמחשבת לוגריתם בבסיס כלשהו - נגיד LN ואז - LOGAB = LNB/LNA. במקרה זה כמעט אין מה לעשות.
פורסם 2012 בדצמבר 1312 שנים מחבר הפונקציה אמורה להתייחס למספרים שלמים גדולים מ 2, התוצאות מעוגלות כלפי מטה, והיא משתמשת ב int בלבד...ואסור להשתמש באף פונקציה מובנית. מה שעשיתי זה חילוק המספר בבסיס עד מספר שווה ל 2 כך שהחילוק גם ככה מעוגל כלפי מטה, אבל כנראה שזו לא הדרך...
פורסם 2012 בדצמבר 1312 שנים מחבר int log( int base,int x){ int n; for (n=0; x>2; n++) x/=base; if (x>0 && x<2) return 2; return n;}
פורסם 2012 בדצמבר 1312 שנים ערוך את ההודעה ושים את הקוד בתוך טג קוד (כפתור עם ציור #) כדי שיהיה יותר קריא.
פורסם 2012 בדצמבר 1312 שנים א. מה הטעם בשורה הזו?if (x>0 && x<2) return 2;ב. למה אתה ממשיך כל עוד x>2?
פורסם 2012 בדצמבר 1312 שנים מחבר רק ככה זה לא היה מאפס לי התוצאה... ואני רץ עד המחלק האחרון .. כביכול.. לוקח מספר ורואה כמה פעמים הבסיס נכנס בו...
פורסם 2012 בדצמבר 1412 שנים זקוק לעזרה בכתיבת פונקציה שמחשבת LOG כאשר היא מקבלת את הבסיס ואת המספר עצמו.עד עכשיו הצלחתי לבצע לוג עבור מספרים זוגיים אבל באי זוגיים הכל מתחרבש...הרעיון של הקוד שלך בסדר (להגדרת התרגיל שלך, שלמים בלבד ותוצאה מעוגלת למטה בלבד) אבל זה לא עובד לך באי זוגיים בגלל שאתה נכנס לתוך התנאי עצירה שלך.קח למשל בסיס 2 וx=3, אחרי חלוקה אחת אתה תכנס לתוך התנאי (x שווה ל1 ולכן קטן מ2 וגדול מאפס) ולכן זה יחזיר לך 2 באופן קבוע (גם אם x היה 7 ואחרי 2 חלוקות הפך להיות 1).תחשוב איך לשנות את התנאי שלך כדי שזה לא יקרה.למי ששאל אם הוא אמור לעשות עם טיילור אז לא, פשוט הגדרת התרגיל עקומה, הוא צריך להגדיר ערך תחתון של לוג של המספר שלו (או מהי החזקה הכי גדולה של base שbase בחזקה הזאת עדיין קטן שווה מהמספר x)
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.