• Как решить задачу на логику и математику в Python?

    @kurrbanov
    Пишу бэкенд на Питоне
    Пусть,
    n - кол-во км, которое нужно будет пробежать на марафоне.
    s - кол-во км. на 1 тренировке.
    p - кол-во. проц., на которое увеличивается s.

    Составим мат. модель. Получим:
    1 день: S
    2 день: (1 + p/100) * S
    3 день: (1 + p/100)^2 * S
    ...
    Конечная формула: (1 + p/100)^k * s >= n; s >= 0, поэтому на него и делим. k - количество дней.
    Получим: k = log 1+p/100(n/s) + 1. Прибавляем единицу, потому что ещё должны посчитать первый день.

    Код:

    import math
    
    n = int(input())
    s = int(input())
    p = int(input())
    
    ans = round(math.log((n / s), (1 + p / 100))) + 1
    
    print(ans)
    Ответ написан
    Комментировать
  • Как решить задачу на логику и математику в Python?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    b1 - километров в первый день
    p - прирост в %
    D - длина марафона
    Решение:
    1) Знаменатель прогрессии:
    q = 1+p/100

    2) Сумма первых членов прогрессии:
    S = b1*(1-q^n)/(1-q)

    S >= D

    b1*(1-q^n)/(1-q) >= D

    q^n >= 1-D*(1-q)/b1

    log_q(q^n) >= log_q(1-D*(1-q)/b1)

    n >= log_q(1-D*(1-q)/b1)
    Ответ написан
    Комментировать