AlphaCode惊世登场!编程版“阿法狗”悄悄参赛,击败一半程序员
晓查发自凹非寺
量子位|公众号QbitAI
今天 , DeepMind的“Alpha”家族再添一名新成员:
会刷编程竞赛题的AlphaCode来了!
其实 , AlphaCode早在几个月前就“悄悄进村”了 , 一直没人察觉 。
它默默参加了著名网站Codeforces最近举行的10场编程比赛 , 成绩超过了一半人类 。
文章图片
直到今天DeepMind才公布最终成绩:AlphaCode在这10场比赛中排名前54.3% , Elo评分1238 。
更重要的是 , 在编程比赛这样考察算法创造力的问题中 , AI终于不落下风 , 而这恰恰是AI过去所欠缺的 。
如果把这个分数放到过去六个月总体来看 , AlphaCode的成绩更为优秀 , 因为它只刷了10周的题目 , 就已经达到了前28%用户的水平 。
文章图片
Codeforces是一个由俄罗斯程序员MikhailMirzayanov创办的编程竞赛网站 , 大约每周举行一次名为“CodeforcesRounds”的编程比赛 。
通过Codeforces的Elo评分可以衡量一位程序员的编程水平 。
文章图片
△Codeforces创始人MikhailMirzayanov
当看到AlphaCode的成绩后 , 连创始人Mirzayanov都惊讶不已 。
他原本对AI持怀疑态度 , 因为编程比赛考验的是发明算法的能力 , 这是最困难的 , 没想到AlphaCode的结果完全超出了他的预期 。
DeepMind发布这条消息仅半天 , 在Twitter上已经有2000多次转发、5000多点赞 。
文章图片
AlphaCode如何编程
说了这么多 , 下面我们来看看AlphaCode是如何成为“编程做题家”的 。
以下是Codeforces上的1553D问题:
(链接:https://codeforces.com/problemset/problem/1553/D)
有两个字符串s和t , 都是由小写字母组成 。 对于字符串s , 我们从前向后扫描整个字符串 。
如果按下Backspace键 , 就删除该光标前到上一个未删除字符之间的所有字符 。
例如字符串s是”abcbd” , 你分别在第一个位置和第四个位置按下Backspace , 那么将得到字符串”bd” 。
因为在第一个光标位置前没有字符 , 所以第一次没有动作 。 第四个光标位置前的字符是c , 上一个未删除字符是a , 所以按下Backspace将删除前三个字符”bd” 。
好了 , 现在问题来了:
我们能否从前向后扫描一次s字符串,让s变为t 。 如果可以输出YES , 否则输出NO 。
AlphaCode给出的代码是这样的:
t=int(input())
foriinrange(t):
s=input()
t=input()
a=[]
b=[]
forjins:
a.append(j)
forjint:
b.append(j)
a.reverse()
b.reverse()
c=[]
whilelen(b)!=0andlen(a)!=0:
ifa[0]==b[0]:
c.append(b.pop(0))
a.pop(0)
elifa[0]!=b[0]andlen(a)!=1:
a.pop(0)
a.pop(0)
elifa[0]!=b[0]andlen(a)==1:
a.pop(0)
iflen(b)==0:
print("YES")
else:
print("NO")
向以上程序输入4组字符串:
4abababaabababbaaaaaaaaababaababa
得到的输出是:
YESNONOYES
在这里 , AlphaCode不再是黑箱 。
它不仅成功解决了问题 , 还能将代码和注意力高亮的对应位置显示出来 。
文章图片
一位网友表示:既然AI能看得这么细 , 那么如果能在代码后面加入注释就更好了 。
- 显卡|配65W i7-12700F和新显卡RTX3050,武极新电脑6399元登场
- 微信8.0.19版闪电登场,新增4个功能,个个都是你想要的
- 国产厂商自研芯片,算力“媲美”苹果A15,首发机皇即将登场!
- 春晚|2022虎年春晚进行时:沈腾马丽登场 网友终于笑出来了
- 春晚|2022虎年央视春晚直播中 第一个语言类节目已登场:网友吐槽中
- Redmi|K50宇宙年后登场!老款Redmi K40春节特惠:12GB顶配版1849元
- 数据库|国产厂商自研芯片,算力“媲美”苹果A15,首发机皇即将登场!
- alienware|2022最值得期待的笔记本ALIENWARE x14终于登场
- 黑鲨手机|游戏手机之父!黑鲨5即将登场:骁龙8性能巅峰旗舰
- 红魔7将于2月携行业四大首发登场,神秘黑科技铸就巅峰游戏旗舰