假设有一种危险的病毒并且它会迅速增长。病毒细胞数以 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