حالت آفلاین — محتوا از حافظهٔ کش نمایش داده می‌شود
آموزش الگوریتم و حل مسئله با پایتون؛ تمرین عملی

ساخت Prefix Sum در پایتون؛ صفر ابتدایی و مجموع تجمعی

جمع پیشوندی در پایتون؛ پرس‌وجوی بازه بدون دوباره‌کاری · 0٪

✍️ جمع پیشوندی برای وقتی مفید است که از یک فهرست ثابت، بارها جمع بخش‌های مختلف را می‌خواهیم. یک بار اطلاعات کمکی می‌سازیم و بعد هر بازه را با دو مقدار پاسخ می‌دهیم. تعریف دقیق این دوره اینه: prefix[i] جمع اولین i عضو است. پس prefix[0] صفر است و طول جدول یک واحد از ورودی بیشتر می‌شود.

nums = [3, -1, 5]
prefix = [0]
for number in nums:
    prefix.append(prefix[-1] + number)
print(prefix)  # [0, 3, 2, 7]

عدد منفی مشکلی ایجاد نمی‌کند؛ فقط جمع تجمعی را کاهش می‌دهد. برای جمع خانه‌های یک تا دو، جمع سه عضو اول را می‌گیریم و سهم اولین عضو را کم می‌کنیم: prefix[3] - prefix[1] یعنی هفت منهای سه، برابر چهار.

این جدول نسخه مرتب‌شده یا فهرست جواب همه بازه‌ها نیست. اگر ورودی بعداً عوض شود، جدول قبلی دیگر معتبر نخواهد بود؛ این بخش ورودی ثابت دارد. خطای رایج، حذف صفر ابتدایی و بعد استفاده از همان فرمول قبلی است. تعریف شاخص را روی یک مثال کوتاه بنویس؛ با همین کار بیشتر خطاهای یک‌خانه‌ای قبل از اجرا دیده می‌شوند.

فعالیت شما

تعریف prefix[i] به‌عنوان جمع i عضو اول را بخوان؛ برای [3,-1,5] جدول [0,3,2,7] و برای خالی [0] است. این گام خواندنی است.

مطالعهٔ این گام برای همه آزاد است

برای پاسخ‌دادن، بررسی پاسخ، ثبت پیشرفت و استفاده از دستیار باید شرایط شرکت در فعالیت‌ها را داشته باشید.

برای انجام فعالیت وارد شوید

برای انجام فعالیت‌ها ابتدا این دوره‌های پیش‌نیاز را تکمیل کنید: