在 Python 中查找时间 t 后病毒的预期增长的程序

假设有一种危险的病毒并且它会迅速增长。病毒细胞数以 x 倍数增长的概率为 0.5,病毒细胞数以 y 倍数增长的概率为 0.5。现在如果开始时只有一个病毒细胞,那么计算 t 时间后病毒细胞的预期数量。如果答案太大,则 mod 结果为 10^9+7。

所以,如果输入像 x = 2, y = 4, t = 1,那么输出将是 3,因为最初,病毒只有一个细胞。在 x 时间之后,它的大小以 0.5 的概率增加一倍 (x2),并且以另一个 0.5 的概率,它的大小增加了 4 倍。因此,时间 t = 1 后病毒细胞的预期数量为:0.5*2*1 + 0.5*4*1 = 3。

示例

让我们看看以下实现以获得更好的理解 -

m=10**9+7
def solve(x, y, t):
   factor=(x+y)//2
   res=1
   while t > 0:
      if t % 2:
         res = (res*factor) % m
      factor = (factor*factor) % m
      t = t// 2

   return res

x = 2
y = 4
t = 1
print(solve(x, y, t))

输入

2, 4, 1
输出结果
3

猜你喜欢