python—通过提交测试示例来消除应用程序背后的逻辑

1hdlvixo  于 2021-09-08  发布在  Java
关注(0)|答案(0)|浏览(128)

我尝试破解应用程序背后的逻辑已经有一段时间了,结果证明这比我曾经想象的要困难得多。但我认为必须有更好的办法。
应用程序非常简单。它接收20个数字输入并产生一个数字输出,这些输入可以在不同的数字之间变化,以下是一些示例:

Input A can go from 50-100
Input B can go from 10-30
Input C can be either 0,1 or 2
Input D can go from 30 to 60
etc...

我假设这20个输入和幕后输出之间的关系是线性的(至少我希望如此)
我尝试的方法是为每个可能的输入定义一个值列表,然后创建一个字典列表,我可以针对应用程序一次测试一个。

from itertools import product

D = {
    Input_A = list(range(50,101,1))
    Input_B = list(range(10,31,1))
    Input_C = [0,1,2]
    Input_D = list(range(30,61,1))
    etc...
}

D2 = [dict(zip(D.keys(),v)) for v in product(*D.values())]

然而这种方法不起作用,因为d2是20个变量的数十亿个可能的组合,所以绝对不可能进行测试。
有没有一种方法可以确定这20个变量和输出之间的联系,而不必强制执行?例如,我可以将19锁定到位并移动另一个,然后查看它对输出的影响,然后重复吗?那样的话,可能只需要几百次迭代,代码就可以被破解。
提前谢谢

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题