0

我有一个 x 的整数,我试图找出什么方程可以产生这个整数。这是为了脚本混淆。我已经解决了加法、减法、除法、平方根、异或和十六进制的这个问题。我的大部分答案都涉及使用逆方程来求解。我正在寻找解决它:

  • 乘法
  • 模数
  • 指数
  • 科学计数法
  • 对数
  • 其他我没有提到的

这是我开始的功能:

Public Function IntegerBreak(PickedInteger)
Randomize()
Dim Switch, Entropy, Result As Integer
Switch = Int(6 * Rnd()) + 1
Entropy = Int(100 * Rnd()) + 1
Select Case Switch
    Case 1
        'addition
        Result = PickedInteger - Entropy
        Return Result & " + " & Entropy & " = " & PickedInteger
    Case 2
        'subtraction
        Result = PickedInteger + Entropy
        Return Result & " - " & Entropy & " = " & PickedInteger
    Case 3
        'division
        Result = PickedInteger * Entropy
        Return Result & " / " & Entropy & " = " & PickedInteger
    Case 4
        'squares
        Result = PickedInteger ^ 2
        Return "Sqr (" & Result & ") = " & PickedInteger
    Case 5
        'xor
        Result = PickedInteger Xor Entropy
        Return Result & " Xor " & Entropy & " = " & PickedInteger
    Case 6
        'hex
        Return "&H" & Conversion.Hex(PickedInteger) & " = " & PickedInteger
End Select
End Function

样本输出:

-47 + 57 = 10

89 - 79 = 10

260 / 26 = 10

Sqr(100) = 10

12 Xor 6 = 10

&HA = 10

编辑:我的具体问题是如何找出:

(z*y=x, z%y=x, z^y=x, zLogy=x, or 3.123^10=x)

阻止我继续的是我没有扎实的数学背景,我遇到了乘法问题,因为关于如何计算方程可能有多个答案:

(2*6=12, 3*4=12)

使用逆方法给了我十进制数。我想要任何关于计算乘法、模数、指数、科学记数法和对数的建议。

还有什么是学习混淆的好信息?

答案在 vb.net 或 vbscript 或数学伪代码中是可以接受的。

指出我正确的方向将不胜感激。

4

1 回答 1

1

我的具体问题是如何找出:

(z*y=x, z%y=x, z^y=x, zLogy=x, or 3.123^10=x)

对于乘法,两边除以y得到:

z = x / y

请注意,即使xy都是整数,您也可能得到小数z(例如2 / 7)。

对于模数,请注意 的结果z % y不能大于或等于y。因此,选择任意y值可能没有用,因为根据选择的值,您可能根本无法达到x。你可以这样做:

z = x + rnd()*y

只要你选择一个y大于 的值x。请注意,这绝对只适用于整数。

对于权力,如果x ^ y = z那时:

x = z ^ (1/y)

(求解完全不同。y ^ x = zx

您的对数示例没有多大意义,因为log它是一元运算,这意味着它仅对一个数字而不是两个数字进行运算。除非您实际上是指“log base y”,否则在这种情况下log{y} x = z

x = y ^ z
于 2013-08-30T23:07:50.830 回答