好久没写题了,数学一落千丈
首先假设时间周期是 x
就有
x/t1 = d mod 1/2
x/t2 = d mod 1/2
...
x/tn = d mod 1/2
于是可以得到
x/ti - x/t0 = 0 mod 1/2
x = 0 mod ti*t0/((ti-t0)*2)
我们设 vi = ti*t0/((ti-t0)*2)
于是有
x = lcm(v1, v2 ... vn)
假设用分数形式表示时, x = xa/xb
,vi = va/vb
有
x = lcm(x, vi) = lcm(xa, va) / gcd(xb, vb)
可以验证,只有在 xa/xb, va/vb 为最简分式的时候才适用
有点可以优化的地方是,重复的 vi 可以去掉