هک‌ها و تشعشعات وجدان آزاد

نوشته‌های سیدمحمدمسعود صدرنژاد

ابزار کاربر

ابزار سایت


courseware:python_programming:resources:hw:6

تعادل اعداد

فرض کنید یک لیست دلخواه از اعداد integer به طول N داریم. این لیست را به ازای هر عدد P که P کوچکتر از N باشد می‌شود به دو قسمت تقسیم کرد. مثلاً لیست مقابل که به طول پنج هست را در نظر بگیرید:

[3, 1, 2, 4, 3]
  • اگر عدد P را یک در نظر بگیریم یک لیست [۳] و یک لیست [۱٬۲,۴٬۳] خواهیم داشت و اگر عدد P را دو در نظر بگیریم یک لیست [۳٬۱] و یک لیست [۲٬۴,۳] خواهیم داشت و به همین ترتیب عدد P را می‌توانیم برای مثال فوق ۳ یا ۴ هم در نظر بگیریم.

حال اگر عدد P را یک در نظر بگیریم مجموع اعداد داخل دو لیست جدیدی که ایجاد شده بود به ترتیب ۳ و ۱۰ می‌شود چون:

1 + 2 + 4 + 3 = 10

حال اگر دو عدد مجموع ارقام داخل لیست‌ها را یعنی عدد ۱۰ و ۳ را از هم کم کنیم و حاصل را قدرمطلق بگیریم به عدد ۷ می‌رسیم چون |۱۰–۳| = ۷

اگر P را برابر ۲ می‌گرفتیم این عدد برابر |۴ − ۹| = ۵ و اگر P را برابر ۳ می‌گرفتیم این عدد برابر |۶ − ۷| = ۱ و اگر این عدد را برابر ۴ می‌گرفتیم حاصل برابر |۱۰ − ۳| = ۷ می‌شد. پس به ازای اعداد P مختلف برای لیست مثال زده شده، حداقل این تفاضل برابر ۱ می‌شود و این یعنی به ازای P برابر ۳ بیشترین تعادل را می‌توانیم بین دو لیست ایجاد شده از لیست قبل داشته باشیم و در حالت تعادل قدرمطلق تفاضل 1 می‌شود

تابعی بنویسید که یک لیست به دلخواه شامل اعداد integer و با طول دلخواه بگیرد و تفاضل مجموع اعضای دو لیست حاصل از آن که بیشترین تعادل را با هم دارند را برگرداند.

ورودی‌ها

نام ورودینوع ورودیتوضیح
aintegerیک لیست از اعداد integer

خروجی

قدر مطلق تفاضل مجموع اعضای دو لیست حاصل که با هم بیشترین تعادل را دارند.

تست‌کیس‌ها

ورودی نمونهخروجی نمونه
‎{'a':[3, 1, 2, 4, 3]}1
courseware/python_programming/resources/hw/6.txt · آخرین ویرایش: 2020/09/15 15:46 (ویرایش خارجی)