با استفاده از Python و itertools.combinations یک تابع بنویسید که از یک لیست اعداد تمام ترکیب‌های kتایی را تولید کند و برای هر ترکیب میانگین و واریانس آن را محاسبه کرده و خروجی را به صورت لیستی از تاپل‌ها (ترتیب (ترکیب، میانگین، واریانس)) بازگرداند.

2.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:14

0.0

برای حل این مسئله از itertools.combinations برای تولید ترکیب‌ها استفاده کنید و سپس با استفاده از توابع ساده‌ای مانند sum و len یا کتابخانه‌های استاندارد چون statistics (یا numpy برای دقت و سرعت بیشتر) میانگین و واریانس هر ترکیب را محاسبه کنید؛ می‌توانید از توابعی سبک برنامه‌نویسی تابعی مثل map و lambda برای پردازش لیست ترکیب‌ها بهره بگیرید. توجه داشته باشید که تعداد ترکیب‌ها به‌سرعت افزایش می‌یابد، بنابراین برای لیست‌های بزرگ یا kهای بزرگ باید احتیاط کنید یا نتیجه را به فایل خروجی بنویسید تا حافظه مصرفی کنترل شود.

توسط پژوهشگر در 221 روز قبل ساعت 01:14
دسته بندی ها: Python Python for beginner
sara در 221 روز قبل ساعت 14:03

نکته مهم اینکه تفاوت بین واریانس نمونه‌ای و واریانس جمعی وجود دارد؛ اگر به واریانس جمعی نیاز دارید از statistics.pvariance استفاده کنید یا محاسبه را با تقسیم بر n انجام دهید. برای k=1 یا ترکیب‌های خالی باید احتیاط کنید چون واریانس برای یک مقدار یا مجموعه خالی تعریف‌شده نیست یا برابر با صفر می‌شود. اگر با لیست‌های بزرگ روبه‌رو هستید، تولید همه خروجی در حافظه ممکن است منجر به مصرف زیاد شود؛ در این صورت خروجی را به فایل بنویسید یا از روش‌های streaming/ژنراتور استفاده کنید. استفاده از numpy با ddof پارامتر (برای تفاوت بین نمونه و جمعی) یا استفاده از map/lambda می‌تواند کد را ساده‌تر و سریع‌تر کند.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری