25 תשובות
איכס פייתון
^ איכס פייתון

בברכה, לחם פיט.
לחם פיט אמאמאמאמא
שניה כותב את הסקריפט ושולח
לא נראה לי
num = 5

def test():
numbers = []
result = 0
for i in range(1,num + 1):
numbers.append(i)
result += i
print(i)
print(result)

test()
לגבי הלהוסיף את הפעולות חשבוניות בשביל הדפסה אני מאמין שאת כבר יודעת איך, חסכתי לעצמי שורות קוד פשוט
^ למה עשית list? סתם תופס סיבוכיות מקום של o(n) במקוםo(1 ואני לא חושב שביקשו
מה זאת אומרת סיבוכיות? ^
אני לא למדתי במגמת מדעי המחשב וזה ידע מהבית, אם אתה רוצה אתה מוזמן לפרט פה או בפרטי וכשאבין בדיוק מה השאלה אני אסביר.
למה עשית append לnumbers חח
אה כן אל תתייחס לזה כתבתי 2 גרסאות של סקריפט כי יצרתי עוד גרסא שעשיתי בה בדיקה מסויימת, בכל מקרה שכחתי למחוק את השורה הזאת חחח
איפה אתה רואה append בresult?
חח סבבה יפה
numbers, טעות שלי
אה זה בגלל שרציתי לעשות אחסון למספרים שיצאו כדי לעשות אחרי זה הדפסה שלהם אבל כשראיתי שהגעתי לעיקר ואני הבנתי שהיא לא תזדקק לזה כנראה אז וויתרתי על לכתוב את זה
דרך אגב באמת בסקריפט השני היה append למשהו דומה לresult בגלל זה לא הבנתי איפה ראית את זה
הבנתי, כן התבלבלתי במשתנה
questionable
איך תהיה סיבוכיות של o 1 ?
מה זאת אומרת סיבוכיות o1? אף פעם לא שמעתי על המושג הזה
סיבוכיות זה מדד יעילות לקוד, ככל שהיא יותר נמוכה זה יותר טוב..
o1 זה אומר שזו בדיוק שורה אחת הקוד או שזה לא תלוי באורך הקלט (לא סגור על זה) וזה הכי יעיל
בכל מקרה הlist שימושי לפלט שאחרי זה פשוט לא עשיתי את הפלט עד הסוף כי לא היה לי סבלנות לזה
אני לא מכיר את פייתון אבל אפשר להשתמש בסכום סדרה ותהיה סיבוכיות (o(1
(num/2*(num+1
אנונימי
dancer_bear
בפתרון שלו עם ה-append
הסיבוכיות זמן ריצה היא o(n)
אבל הסיבוכיות מקום היא גם תהיה o(n)

בלי ה-append והליסט נקבל סיבוכיות מקום של o(1), שזה כמובן יותר יעיל (תופס פחות מקום בזיכרון) (אבל לא ביקשו ליסט ברשימה אז כמובן שצריך למחוק את זה בפתרון).
כן אבל אתה צריך לעבור על כל המספרים מ1 עד num בכל מקרה כדי לקבל את סכום המספרים ככה שבכל מקרה תהיה לך סיבוכית o n (נראה לי)
נכון, בגלל זה הסיבוכיות זמן ריצה היא o(n)
אבל הסיבוכיות מקום הוא o1