بکندباز

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

وظیفه‌ی شما این است که سال وقوع این فاجعه را پیدا کنید. برای این چالش فرض کنید:

  1. هر 1 واحد جمعیت نیاز به 1 واحد تولید غذا دارد.
  2. تولید غذا و جمعیت هر دو از 100 شروع می‌شوند.
  3. سال از 0 آغاز می‌شود.
  4. فاجعه زمانی رخ می‌دهد که جمعیت بیشتر از تولید غذا شود.

ورودی‌های تابع:

  • food_growth — یک عدد صحیح که نشان‌دهنده‌ی مقدار رشد سالانه‌ی تولید غذا است.
  • pop_mult — یک عدد اعشاری (float) که ضریب رشد سالانه‌ی جمعیت است.

خروجی:

  • سال وقوع فاجعه را بازگردانید.

مثال

malthusian(4255, 1.41) ➞ 20
# تولید غذا: 100، 4355، 8610، ...
# هر بار 4255 تا زیاد می شود
# جمعیت: 100، 141، 198.81، ...
# هر بار 1.41 برابر می شود
# نتیجه: سال 20.
# بعد از 20 سال، میزان جمعیت از تولید غذا بیشتر می شود

نمونه ورودی و خروجی

Malthusian(4255, 1.41) ➞ 20

Malthusian(9433, 1.09) ➞ 107

Malthusian(5879, 1.77) ➞ 12

نکات

  1. سال وقوع فاجعه را بازگردانید، نه سال بعد از آن.
  2. اگر جمعیت و تولید غذا مساوی باشند، این یک فاجعه محسوب نمی‌شود.
  3. هنگام پیاده‌سازی مطمئن شوید که تغییرات سالانه را به ترتیب صحیح محاسبه کنید:
    • ابتدا تولید غذا و جمعیت را محاسبه کنید و سپس شرایط را بررسی کنید.
Assert.Equal(20, Backendbaz.Malthusian(4255, 1.41));
Assert.Equal(107, Backendbaz.Malthusian(9433, 1.09));
Assert.Equal(12, Backendbaz.Malthusian(5879, 1.77));
Assert.Equal(14, Backendbaz.Malthusian(5845, 1.66));
Assert.Equal(69, Backendbaz.Malthusian(6516, 1.13));
Assert.Equal(119, Backendbaz.Malthusian(7702, 1.08));

هنوز پاسخی برای این تمرین ثبت نشده است

نظرات

*
*

تمرینات مرتبط