在 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