这是一场人类与超智能AI的“生死”较量
请立刻集结,搭乘SpaceX,前往AI控制空间站
智慧博弈 谁能问鼎
看雪·2023 KCTF 年度赛于9月1日中午12点正式开赛!比赛基本延续往届模式,设置了难度值、火力值和精致度积分。由此来引导竞赛的难度和趣味度,使其更具挑战性和吸引力,同时也为参赛选手提供了更加公平、有趣的竞赛平台。
*注意:签到题持续开放,整个比赛期间均可提交答案获得积分
目前第一题《失控的AI》已于昨日截止答题,该题围观人数3500+,共有48支战队成功提交flag,接下来一起看下该题的解题思路吧。
if ( v15 > 0 && v16 > 0 && v15 <= v16 && v16 + v15 == 117738 )
{
v13 = "Accepted!n";
if ( v15 * v16 == 3457897337i64 )
goto LABEL_28;
}
break;
}
}
}
}
LABEL_27:
v13 = "Wrong answer!n";
v15 + v16 = 117738
v15 * v16 = 3457897337
xx+117738x+3457897337=0
得到-61637,-56101
得到:56101-61637
1)两数相加为117738
2)两数相乘为3457897337
下面是请人工智能写的一段代码,指定了Python、辗转相除法、代码规范三个要求。
令人惊喜的是,它给出的代码是可以直接使用的,这可以给我们节约一些时间。
def factorize(n):
factors = []
while n % 2 == 0:
factors.append(2)
n = n // 2
p = 3
while p * p <= n:
if n % p == 0:
factors.append(p)
n = n // p
else:
p += 2
if n > 1:
factors.append(n)
return factors
# 示例用法
num = 3457897337
result = factorize(num)
prime factors of {num} are: {result}")
-
分隔,给了两数之和与两数之积、第一个数不大于第二个数,求解二次方程即可。或者直接 z3 解:from z3 import *
x = Int('x')
y = Int('y')
s = Solver()
s.add(x + y == 117738)
s.add(x * y == 3457897337)
assert s.check() == sat
print(s.model())
# 56101-61637
V13>0
V12<=V13
V13+V12==117738
v12*v13==3457897337
在这个充满变数的赛场上,没有人能够预料到最终的结局。有时,优势的领先可能只是一时的,一瞬间的失误就足以颠覆一切。而那些一直默默努力、不断突破自我的人,往往会在最后关头迎头赶上,成为最耀眼的存在。
谁能保持领先优势?谁能迎头赶上?谁又能突出重围成为黑马?
球分享
球点赞
球在看
点击阅读原文进入比赛
原文始发于微信公众号(看雪学苑):看雪·2023 KCTF 年度赛 | 热身题解析