优化型黑客

0 点赞
Upload Labs
转载

黑客优化 简介 经过数小时的数据收集、分析并尝试构建一个可行的系统后,这项工作终于完成了。 为何选择感染? 我选择感染是因为它的可靠性。虽然我没有对载荷进行广泛测试,但它无法提供感染伤害那样的可靠性,载荷完全依赖于暴击伤害,而暴击伤害的出现频率很低。 如果漏洞大于2倍,执行注入节点是必须的。 对于匿名者(提供经验值的那个)和企业,除了漏洞节点外,不使用其他黑客节点。 对于银行和政府,幽灵变得有用,因为防火墙和被入侵状态共享相同的值。 供参考的我的设置:

升级 有几项升级会直接影响你的进展: 潜行攻击 感染专家 感染伤害 突破速度 潜行攻击能增加你突破防御的时间,从而大幅提高胜率。由于每提升一级能带来4倍奖励,因此它非常强大。 感染专家至关重要,它能以较低成本提供大量伤害加成。 关于腐败升级 在我的测试中,腐败升级能使收益提升约4倍,这与达到下一个威胁等级的收益相同。由于花费这些点数可能有助于你击败下一个等级,因此其影响不算巨大。我个人喜欢购买它,但它是可选的。感染伤害与突破速度 这些升级的描述如下: 感染伤害:提升10%感染伤害 突破速度:提升4%突破速度 我通过在同一时间将所有点数投入其中一项(在相同的黑客界面等级下)进行了测试,发现: 伤害呈线性增长 速度呈二次方增长 将点数全部投入伤害会带来早期优势,在大约第12次升级前拥有更高的每秒伤害。 在第13次速度升级时,基于速度的每秒伤害超过基于伤害的每秒伤害。根据描述和数据,我发现了以下公式: 基础伤害=d=常数 每次攻击时间:St(x)=1/(1+0.04x)^2

伤害公式(每秒伤害):D(x) = d * (1 + 0.1x)

伤害计算公式(每秒伤害):S(x) = d * (1 + 0.04x)²

若要使每秒伤害(DPS)同时包含速度升级和伤害升级,需要一个包含两个变量的函数: 变量每秒伤害 F(x,y) = D(y)/St(x) F(x,y) = (1 + 0.1y) * (1 + 0.04x)² 为简化计算,N为可分配到这两项升级的总点数,不包括【潜行攻击】、【感染专家】或【腐败】。 y = N - x 现在函数仅含一个变量“x”: F(x) = (1 + 0.1(N − x)) * (1 + 0.04x)² 优化 为找到最佳点数分配,对函数求导并令其等于零: F'(x) = 0.00048x² + (0.0128 − 0.00032N)x + (0.02 − 0.008N) 求解方程: 0.00048x² + (0.0128 − 0.00032N)x + (0.02 − 0.008N) = 0 使用二次方程求根公式计算两个根,取正根作为速度升级的候选点数。由于结果可能是小数,需同时测试向上取整和向下取整的值,以确认哪种能带来更高的每秒伤害。再次说明:y = N - x,这样就能得出最优数值。其中,x是用于速度升级的点数,y是用于伤害升级的点数。不过反复进行这种计算比较麻烦,因此我编写了一段代码来完成这些计算。使用时,将代码粘贴到任何C++编程环境中,编译并执行,然后按照程序的提示操作,就能得到答案。每次需要新答案时都必须重新执行程序,因为我还没学会如何让程序实现其他功能。如果有人想修改代码并加以改进,欢迎进行尝试。无法识别内容,已删除。push_back(N); } vector<int> 候选数; for (double r : 根) { int f = 向下取整(r); int c = 向上取整(r); for (int k : {f, c}) { if (0 <= k && k <= N) 候选数.push_back(k); } } double bestValue = 0; int bestX = 0; for (int x : candidates) { double value = F(x, N); if (value > bestValue) { bestValue = value; bestX = x; } } return {bestX, N - bestX}; } int main() { int N; cout << "请输入要分配的总点数:"; cin >> N; auto [x, y] = optimal_allocation(N); cout << N << "点的最佳分配方案:" << endl; cout << " - 速度:" << x << endl; cout << " - 伤害:" << y << endl; return 0; }