我很难绕过如何让它发挥作用所以我来到这里寻求聪明才智的帮助。
问题是,我想颠倒以下等式的过程,以便从给定的 {获得 X
{1}} 和 Y
。
Z
对于用例,用户输入数字Z = [ ( X * 30 ) % Y ]
,然后按 ENTER ,系统获取当前服务器时间,然后将其乘以30.然后将给出用户服务器时间的剩余部分格式为Y
,(嗯,HHMMssxxx
这里是毫秒..我不知道毫秒的格式字母..呵呵..),除以xxx
- 即Y
,其中(X*30) % Y
是当前服务器时间转换为int。
我该怎样反过来?
问题是,X
不应大于X
- > (23:59:59.999)24小时制的最大时间值。
据说我有2359999
,我怎样才能找到Z = 32, Y = 400
?
我知道可以有多个答案。这是我到目前为止所提出的,但我认为这在性能方面并不是最优的。
X
有没有办法更有效地做到这一点?有没有类似逆模的东西?
修改
更新了代码以检查字符串是否有效。
答案 0 :(得分:2)
你不能扭转它。模数是除法运算的余数。
简化你的等式。 Z = Y%2
对于一半值,Z为0,对于其余值,Z为1。
你不能用剩余部分和除数来解决红利。
答案 1 :(得分:2)
让我们把它填入等式中:
32 = ( X * 30 ) % 400
然后这意味着X * 30
是400加32的倍数:
32
432
832
...
现在我们可以将它除以30得到x。这可以在这样的js中完成:
function* reverse(Z, Y) {
for(let n = 0; ; n++)
yield (Z + Y * n) / 30;
}
可用作:
for(let X of reverse(32, 400))
console.log(X);
请注意,此循环将永远运行,因为有无限的结果。 Try it