bitburner吧 关注:163贴子:538
  • 16回复贴,共1

优化了一下算法,实现了仅靠home(128tb)实现秒入斗金

只看楼主收藏回复





IP属地:四川1楼2022-01-04 22:48回复
    就转生后,靠home 128TB的内存,快达到每秒1b的收入了。
    注意看n00dles和foodnstuff这2个初始就可以hack的服务器,每秒收入远超传统的串行weaken grow hack循环。


    IP属地:四川2楼2022-01-04 22:49
    回复
      算法大概原理:
      1,hack-server.ns,作为处理中心,跑循环任务,分析目标服务器当前循环轮的现状数据,比如security降低到min,至少需要x个线程,grow到max-money,至少需要y个线程,hack全部money,至少需要z个线程。
      2,分析当前运行该脚本的服务器(比如这里就是home),还剩余内存N,而运行这(x+y+z)个现成,需要内存M。如果M大于N,则需要按照一定计算方式,削减x y z个数。
      3,计算weaken grow hack分别需要的时间,比如weaken需要20秒,grow需要14秒,hack需要8秒。那么在这种状态下,优先执行grow,hack的执行要确保在grow正好完成之后,则hack需要延迟14 - 8 = 6秒执行。weaken要排在grow、hack之后执行,此处weaken无需延迟,因为hack就算延迟到14秒后,weaken最快也需要20秒。
      4,准备启动独立的do-weaken.ns、do-grow.ns、do-hack.ns脚本,ns.exec分别执行x个do-weaken、y个do-grow、z个do-hack,执行延迟按照上面计算的来。
      上面这套机制,脱离了传统的串行hack思路,压缩了大量的时间。且提升了部署服务器的内存利用率,不会造成太大的线程浪费。
      实测,一个128或者256TB内存的服务器,就可以同时hack 10来个目标(当然,看强化加成而定)。


      IP属地:四川3楼2022-01-04 23:03
      收起回复
        大佬果然就是大佬,我3200个标准hack+256个growweaken才79k/Sec。赶紧跟着这思路去试试。


        IP属地:上海4楼2022-01-05 09:00
        收起回复
          我糙


          IP属地:陕西来自Android客户端5楼2022-01-05 11:48
          回复
            我tm黑了一堆服务器秒入才tm50k


            IP属地:陕西来自Android客户端6楼2022-01-05 11:49
            回复
              大佬能分享代码下嚒?


              IP属地:新疆8楼2022-01-05 12:24
              收起回复


                IP属地:湖北来自Android客户端10楼2022-01-06 08:12
                回复
                  大佬,
                  run hack-server.ns --name [被hack服务器]
                  怎么用脚本批量运行呢 exec('hack-server.ns', servers[i]) 后面我就不会了,不知道怎么加--name


                  IP属地:广东11楼2022-01-06 15:57
                  收起回复