计算产生给定整数的可能方程

时间:2013-08-30 21:52:40

标签: vb.net math vbscript

我有一个x的整数,我试图找到可以产生整数的方程式。这是为了脚本混淆的目的。我已经解决了加法,减法,除法,平方根,xor和hex这个问题。我的大多数答案都涉及使用逆方程来解决。我希望解决它:

  • 乘法
  • 模量
  • 指数
  • 科学记谱法
  • 对数
  • 我没有提到的任何其他人

这是我开始的功能:

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或数学伪代码中可以接受答案。

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

1 个答案:

答案 0 :(得分: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的{​​{1}}值即可。请注意,这绝对仅适用于整数。

对于权力,如果x则:

x ^ y = z

(为x = z ^ (1/y) 解决y ^ x = z完全不同。)

您的对数示例没有多大意义,因为x是一元操作,这意味着它只能在一个数字而不是两个数字上运行。除非你的意思是“log base y”,在这种情况下log

log{y} x = z
相关问题