128 个字符的力量:2018 Wolfram 职员“一行代码”竞赛结果

本文所涉及的新功能即将在Wolfram语言第12版中发布。可复制的输入表达式和可下载的笔记本将在新版本发布后为您提供。

在每年的Wolfram技术大会上,与会者都会参加One-Liner竞赛,这是一场看谁能用最简洁的Wolfram语言代码(不多于128个字符)实现最了不起的创意的比赛。为公平起见,Wolfram员工是不允许参与竞赛的,但每年我还是会收到不少来自同事们的作品,并被我拒之门外。为了给开发软件的他们一个释放热情、展示才华的机会,今年第一次我们举办了公司内部的One-Liner竞赛。

我们颁发了第一名、第二名和第三名以及六项荣誉奖和一项不光彩的荣誉奖。以下是获胜者及作品简介。

荣誉奖

Danny Finn,顾问

ImageGuessr (Wolfram 看图猜字)(128个字符)

Danny的作品是一个用128个代码写成的完整游戏。游戏引人入胜,让一些评委在评审结束后还爱不释手。

代码选择一个随机单词,并在网上搜索该单词,将得到的图像组成拼贴。然后它会在拼贴下方打开一个对话框和一个输入字段,让玩家猜这个单词是什么。当玩家输入单词时,它将猜测的语义特征与单词的语义特征相关联。相关性越高,猜测与原始单词越接近。一行代码竟然用到了如此多的功能!

荣誉奖

Danny Finn,顾问

笔记本水痘(123个字符)

这是Danny的第二个荣誉奖作品,它会给您的笔记本文档种一堆红色的“水痘”。如果他没有提供治疗方法的话,他得到的可能就是不光彩的荣誉奖了(治疗方法参见本节的第二个输入)。

Danny的这个作品本来可以节省7个字符的,BackgroundAppearance前面有一个不必要的System`,这可能是他测试代码时不小心留下的。

荣誉奖

Sarah Stanley,高级顾问

冬天的热带雨林(126个字符)

Sarah提交的作品以一种新颖的方式将图像搜索和图像变换神经网络相结合,以显示热带雨林下雪时会是什么样子。ListAnimate输出显示一系列冬季的热带雨林图像。

荣誉奖

Sarah Stanley,高级顾问

改变老虎身上的斑纹(128个字符)

与Danny一样,Sarah也获得了两个荣誉奖,这个作品使用图像搜索和神经网络组合,来去除老虎身上的斑纹。代码检索的ResourceObject是神经网络模型"CycleGANZebra-to-Horse Translation Trained on ImageNet Competition Data"(https://resources.wolframcloud.com/NeuralNetRepository/resources/CycleGAN-Horse-to-Zebra-Translation-Trained-on-ImageNet-Competition-Data)。这个名称有点长,如果她的代码不是使用了更紧凑的数字标识符,光名字就会占用128个字符中的72个。原始的网络模型经过训练可以将斑马转换为普通的马,而Sarah的程序将其应用于一只老虎,同样妙趣横生。

荣誉奖

Brian Wood,首席技术销售撰稿人

运动的乐趣(117个字符)

Brian的参赛作品是一段紧凑的图像处理代码,可以在对象移动时创建颜色轨迹,并迅速生成动画视频效果。当物体静止时,叠加的颜色轨迹忠实地重建原始图像。

荣誉奖

Daniel Carvalho,国际商务发展主管

波(93个字符)

对于绞尽脑汁试图理解五花八门的参赛作品的评委们来说,丹尼尔的作品就像一支舒缓的冥想曲。

不光彩的荣誉奖

Jon McLoone:超短的扫雷游戏代码(47个字符??)

Jon提交的扫雷游戏代码前无古人:它会入侵提交的笔记本以破坏其字符计数代码。这个作品极好地说明了Enable Dynamics这个按钮提示的作用——当你打开包含动态代码的Wolfram笔记本时,这个提示总会出现:

当打开Jon的作品时,可以看到扫雷游戏的2000来个代码字符,其开头如下:

尽管代码很长,但顶部的字符计数器却显示他的作品只有47个字符:

Jon还在作品中附上了一段说明:“短的惊人的扫雷代码。尽管它看起来很长,但只有47个字符。不信就去检查一下!并且,我保证没有更改提交模板,您可以将代码复制到一个新的OneLiner模板中并查看。”

他是怎么做到的?确实,他没有更改笔记本模板中嵌入的源代码,但他重新定义了该代码定义的一些函数。在包含其代码的单元上使用Cell>Show Expression可以看到。

代码中的第一个“0”用DynamicWrapperBox封装,它重新定义了笔记本的字符计数功能。新的定义不是计算提交作品的字符数,而是计算字符串“Surely deserving of a dishounourable [sic] mention!!!”的字符数(47个字符):

Jon的程序第一次在屏幕上滚动时,DynamicWrapperBox代码就被激活并攻击了笔记本。不光彩的荣誉奖当之无愧,Jon!

第三名

Jofre Espigule-Pons,顾问

濒危物种(122个字符)

优秀的作品总是将Wolfram语言的各种功能相结合,产生出美观、实用并令人惊讶的结果。 Jofre的参赛作品即符合所有这三个标准。它找到哺乳动物与濒临灭绝物种(即濒临灭绝的哺乳动物类)的交集,获得每一种动物的图像,并将其组合成一个拼贴画——提醒我们丰富的物种正面临灭绝的威胁。

第二名

Lou D’Andria,高级用户界面开发师

Wolfram 名人榜(123个字符)

Lou的作品让我们乐趣多多,它从公司通讯录中提取员工头像,并使用Classify找到与之最相似的知名人物。

令人匪夷所思的是,公司的很多员工头像被识别为Stephen Wolfram(包括Stephen本人)。实在是……

第一名

Jon McLoone, 技术通讯与战略总管

演化中的抽象艺术(68个字符)

赢得不光彩荣誉奖的同事同时也是第一名获得者。Jon McLoone的68个字符代码以其优雅和简洁赢得了评委们的一致好评。它既具有动画效果,又具有图形化的吸引力,吸引你目不转睛地观看图像的演变过程:

Jon充分利用了重复的复杂性复合效应来创建代码,这些代码短小却功能强悍。恭喜Jon获得冠军!

--------------

Wolfram语言版本12发布之后,我们将提供一个可供下载的笔记本,将更多优秀的参赛作品(总共34个)呈献给大家。再次感谢所有参赛者,向我们展示Wolfram语言的力量。

是不是已被版本12的新功能炫倒

原文发布于微信公众号 - WOLFRAM(WolframChina)

原文发表时间:2019-03-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券