Um biólogo efetua um experimento de medida da taxa de reprodução assexuada de um tipo específico de bactéria em diferentes temperaturas. A taxa de reprodução diária (multiplicador) das bactérias a uma temperatura " T " é igual a
. O biólogo inicia o primeiro dia de testes com 1000 bactérias e uma temperatura
. No início de cada dia múltiplo de 2 , a temperatura aumenta em
. Escreva um script que calcule a quantidade total de bactérias existentes no final do experimento, sendo que o experimento inicia com 1000 bactérias.
Passo 1
O que o enunciado pede e o que nos dá:
- Pede um script que calcule a quantidade total de bactérias no final do experimento, começando com
bactérias. - Informações fornecidas:
- População inicial:
. - Temperatura inicial no dia 1:
. - A cada dia múltiplo de
(ou seja, nos inícios dos dias ) a temperatura aumenta em . - A taxa de reprodução diária (multiplicador) a uma temperatura
é .
- População inicial:
- O script deve aceitar um número de dias
e retornar a população após dias.
Passo 2
Determinar a temperatura que vale em cada dia
.
- A temperatura inicial é
. - A cada dia
tal que é par, a temperatura aumenta no início desse dia em . - O número de aumentos ocorridos até (e incluindo) o início do dia
é o número de inteiros pares entre e , que é . - Logo, a temperatura usada no dia
é
Verificação rápida: para
temos
. Para
. OK.
Passo 3
Expressar o multiplicador diário
em função de
.
A fórmula dada é
. Substituindo
obtemos
Simplificando:
Passo 4
Expressar a população após
dias e estratégia de cálculo.
- Após
dias a população é
- Na prática, o jeito mais simples e seguro numericamente é calcular esse produto iterativamente em um loop: começar com
e para cada dia até atualizar . - No final pode-se devolver
como número real, ou arredondar para inteiro se quiser o número de bactérias inteiro (por exemplo, ).
Passo 5
Exemplo numérico curto (para entender o passo a passo), com
.
Calcular manualmente dia a dia:
- Dia 1:
. . - Dia 2:
. . - Dia 3:
. . - Dia 4:
. . - Dia 5:
. .
Isso confirma que o procedimento iterativo funciona e mostra como a temperatura afetou os multiplicadores.
Passo 6
Observações práticas e cuidado com precisão:
- Para
grande, o valor cresce multiplicativamente; usar float de dupla precisão (o padrão em Python) é suficiente para muitos casos, mas para muito grande pode perder precisão. - Se quiser o número de bactérias inteiro no fim, arredonde apenas no final com
ou . - O algoritmo é O(
) em tempo e muito simples de implementar.
Passo 7
Script em Python que implementa o cálculo. O script recebe o número de dias
e retorna a população final (valor real). Pode-se arredondar conforme desejado.
Resposta
def final_bacterias(n, N0=1000):
"""
Calcula a quantidade de bactérias após n dias.
n: número inteiro de dias (n >= 0)
N0: população inicial (padrão 1000)
Retorna: população final como float.
"""
T0 = 45.0
N = float(N0)
for d in range(1, n + 1):
# número de aumentos de temperatura até o início do dia d
aumentos = d // 2 # isto é floor(d/2) para inteiros
T = T0 + 0.5 * aumentos
r = 1.0 + (T - 40.0) / 100.0
N *= r
return N
# Exemplo de uso:
# print(final_bacterias(5)) # retorna aproximadamente 1313.1246345