编程拼图和代码高尔夫

编程益智爱好者和代码高尔夫球手的问答

2
不熟练的代码竞赛:排序不太快[关闭]
任务 用您选择的语言编写一个程序,该程序从标准输入读取行直到EOF,然后按照ASCIIbetical顺序将它们写到标准输出,类似于sort命令行程序。Python中一个简短的,不可理解的示例是: import sys for line in sorted(sys.stdin): print(line.rstrip('\n')) 不足部分 与OS War相似,您的目标是通过使程序在竞争平台上故意慢得多地运行来证明您喜欢的平台“更好”。为了竞赛,“平台”由以下任意组合组成: 处理器 架构(x86,Alpha,ARM,MIPS,PowerPC等) 位数(64位,32位和16位) 大端与小端 操作系统 Windows,Linux,Mac OS等 同一操作系统的不同版本 语言实施 不同的编译器/解释器供应商(例如,MSVC ++与GCC) 同一编译器/解释器的不同版本 尽管您可以通过编写如下代码来满足要求: #ifndef _WIN32 Sleep(1000); #endif 这样的答案不应该被否决。目标是要微妙。理想情况下,您的代码应该看起来完全不依赖平台。如果你不具备任何#ifdef基于语句(或条件os.name或System.Environment.OSVersion或其他),他们应该有一个合理的理由(基于谎言,当然)。 包括在您的答案中 代码 您的“收藏夹”和“收藏夹”平台。 用于测试程序的输入。 对于相同的输入,每个平台上的运行时间。 关于程序为何在最不喜欢的平台上运行如此缓慢的描述。

21
莫拉,国王的高贵游戏
背景 Morra游戏是一个简单的游戏。在“原始”版本中,几个玩家同时用双手抛出0-5,同时猜测每个人的总手数。我将在此处使用的版本已经过修改,以增加潜在的非平凡策略,下面对此进行了说明: 有两个球员。 就像剪刀石头布一样,玩家同时移动。 每回合,每个玩家选择一个0-5的数字,并猜测对手的选择0-5。这意味着每转输出两个数字。为了明确起见,两个数字的输出应在0-5(含)范围内。 如果您正确猜出了对手的选择,但是您的对手猜错了,您将赢得一定数量的点数,该点数等于两个数字之和。例如,如果打出的数字是3和5,则正确的猜测将价值8分。 如果两个或两个玩家都猜对了,则不会获得任何积分。 1000回合后得分最高的人将赢得比赛。 比赛 比赛将以循环赛的方式进行,并通过创建每个可能的参赛者配对来进行。每次胜利,参赛者将获得2胜利分。每次平局都会获得1个胜利点。没有获得胜利点的损失。 凭直觉,比赛的获胜者是与他人对分最高的选手。 输入方式 提交机器人进行比赛的方式有两种。第一种也是首选的方法是实现控制器提供的Java接口。第二种方法是编写一个独立的程序。 让我们首先介绍Java方法。您将需要实现的接口是Player,它定义了两种方法:public String getName()标识您的机器人,并public int[] getMove(String[] args)采用args六个字符串组成的数组mychoices myguesses myscore opponentchoices opponentguesses opponentscore。下面是一个示例: 042 045 0 324 432 6 这意味着我在第一轮选择了0,并且猜到了我的对手将掷出0。我的对手投了3,然后猜到了我将投掷4。在第三轮中,我的对手做出了正确的猜测,我将投出2,表示他获得2 + 4 = 6分。 您的方法将返回一个由两个整数组成的数组,分别是您的选择和猜测。一个例子是{4,2}选择4和猜测2。 这是作为方法编写的完整Java机器人的示例。如果需要,您的提交只需包含getMove方法中的操作。 import java.util.Random; /** * A simple example Morra bot to get you started. …

18
浮动部落
介绍 雨终于平息了。由于@ user12345的代码中的错误,大多数人淹死了。幸存者散布在世界各地的群岛上。无线电通信已经普及,人类有望再次蓬勃发展。僵尸海盗无缘无故聚集在本初子午线,并向西蔓延。部落吞噬了所有人。 问题 我们的世界末日场景可以用5个整数表示,这些整数代表一组协作的岛屿社区。它们从西(最左边的整数)到东(最右边的整数)排序​​。 从最东端的岛屿开始,岛民成对逃往下一个最近的岛屿。奇怪的是,对于每一对登船的人,只有其中一个能幸免于难。岛民只能成对旅行。奇怪的人群选出一个唯一的居民留下来,并提供有关僵尸海盗部落滑稽动作的最新广播更新。人口拒绝旅行,直到其东部所有岛屿完成迁徙或死亡为止。当人口到达最后一个最西端的岛屿时,旅行便停止了。 世界末日的运营经理需要一个程序,该程序可以输出每个村庄的最终人口数。 输入示例 3 8 6 0 2 示例输出 8 1 0 1 0 假设条件 输入可以通过stdin提供,可以从任意命名的文件中读取,也可以作为参数接受 对于每个岛屿,0 <=人口<= 1024 人口从未逃过一个小岛 最短答案胜出!
28 code-golf 

4
匹配长度为四次幂的字符串
在这个问题的范围内,让我们只考虑由x任意次数重复的字符组成的字符串。 例如: <empty> x xx xxxxxxxxxxxxxxxx (嗯,实际上不必如此x-只要整个字符串只有一种类型的字符,任何字符都可以) 以您选择的任何正则表达式形式编写一个正则表达式,以匹配某个非负整数n(n> = 0)长度为n 4的所有字符串。例如,长度为0、1、16、81等的字符串有效;其余的无效。 由于技术限制,难以测试大于128的n值。但是,无论如何,您的正则表达式在逻辑上均应正常工作。 请注意,不允许您在正则表达式中(对Perl用户)执行任意代码。允许使用任何其他语法(环顾四周,向后引用等)。 还请提供有关您解决问题方法的简短说明。 (请不要粘贴自动生成的正则表达式语法说明,因为它们没有用)

21
利默里克你好世界[关闭]
您编写的押韵程序 试图赢得比赛 为了赢得比赛并投票 必须计算“ Hello World” 然后打印得很有礼貌 最受欢迎的诗歌将获胜。 要求是: 这首诗应该是5行,押韵AABBA 它可以打印任何内容,但输出应包含“ hello world”(大写/小写无关紧要,引号不包含在输出中) 大声读出符号。例如,上面的第四行显示为:它必须计算报价hello world quote 在您的代码下方发布代码,在另一个代码预览中,将代码的“朗读”版本发布,以消除特殊符号的歧义。 排除的诗有: 包括无效代码或可以在不更改韵母或功能的情况下安全删除的字符 使用评论作为押韵的方式(除非有充分的理由,否则除外) 使用与韵律词尾相同的符号。 如果出现平局,则输出一首诗的程序将获胜。如果仍然平局,则较短的程序将获胜。 新行不计算在内。空格,制表符和换行符不会大声朗读。例如,“你好,世界!” 会被大声读出“双引号你好逗号世界感叹号双引号”。

5
用蛇绘制图像
想象一个连续的二维路径,该路径只能向左,向右或笔直走,不能相交,并且必须填充矩形网格,例如图像中的像素网格。我们将这种路径称为蛇。 这个放大的示例显示了一条10×4网格中的蛇形路径,该路径以红色开头,并在每一步中将色相增加大约2%,直到变为紫色。(黑线仅用于强调其方向。) 目标 这场流行竞赛的目标是编写一种算法,尝试使用一条颜色连续少量变化的单一蛇来重新创建给定图像。 您的程序必须获取任何大小的彩色图像,以及介于0和1之间(包括0和1)的浮点值(公差)。 容差定义了在每个像素大小的步长中允许更改蛇色的最大数量。我们将两种RGB颜色之间的距离定义为当排列在RGB颜色立方体上时两个RGB点之间的欧几里得距离。然后将距离标准化,因此最大距离为1,最小距离为0。 色距伪代码:(假设所有输入值都是该范围内的整数[0, 255];输出已归一化。) function ColorDistance(r1, g1, b1, r2, g2, b2) d = sqrt((r2 - r1)^2 + (g2 - g1)^2 + (b2 - b1)^2) return d / (255 * sqrt(3)) 如果对蛇的当前颜色和另一种颜色调用此函数的结果大于给定的公差,则蛇可能不会变为该另一种颜色。 如果愿意,可以使用其他颜色距离功能。它必须是准确的并且有充分的文档证明,例如http://en.wikipedia.org/wiki/Color_difference中列出的内容。您还必须将其标准化为in [0, 1],即最大可能距离必须为1,最小必须为0。如果您使用其他距离度量,请在回答中告诉我们。 测试影像 当然,您应该发布输出图像(如果需要,甚至可以发布蛇的动画)。我建议使用不同的低公差(可能在0.005至0.03左右)发布各种此类图像。 (更大的巨浪) 获胜标准 如前所述,这是一次人气竞赛。投票最高的答案将获胜。提供对输入图像最准确,最美的“蛇形路径”描绘的答案应予以投票。 如果发现任何用户恶意提交的图像不是真正的蛇,则将永远取消其资格。 笔记 只能使用一条蛇形路径,并且它必须完全填充图像,而不能两次触摸同一像素。 蛇可能在图像的任何位置开始和结束。 蛇可能以任何颜色开始。 蛇必须留在图像的边界内。界限不是循环的。 蛇一次不能对角移动,也不能一次超过一个像素。

12
蠕虫的生命
条款 一个蠕虫是负整数的任何名单,以及其最右边(即最后一个)元素称为头。如果头部不为0,则蠕虫的活动段由最长的连续元素块组成,该元素块包括头部,并且其所有元素至少与头部一样大。在简约有效段是主动段与由1。例如递减的头,所述蜗杆3 1 2 3 2具有活性片段2 3 2,以及减少的活性段2 3 1。 进化规则 蠕虫逐步演化如下: 在步骤t(= 1,2,3,...)中, 如果头为0:删除头, 否则:用缩减的活动段的t + 1级联副本替换活动段。 事实:任何蠕虫最终都会演变成空列表,而这样做的步骤就是蠕虫的生存期。 (有关详细信息,请参阅LD Beklemishev撰写的《蠕虫原理》。“列表”是指有限序列,“头”是指最后一个元素的用法,摘自本文—请勿混淆)并将列表作为抽象数据类型常用,其中head通常表示第一个元素。) 示例(括号中的活动部分) 蠕虫:0,1 step worm 0(1) 1 0 0 0 2 0 0 3 0 4 <- lifetime = 4 蠕虫:1,0 step worm 1 0 1 (1) 2 0 0 …

6
让我们画尼泊尔的国旗
尼泊尔的国旗(Wikipedia,Numberphile)看上去与其他任何国旗都大不相同。它还具有特定的绘图说明(包含在Wikipedia文章中)。我希望你们做一个能画出尼泊尔国旗的程序。 用户输入请求的标志高度(从100到10000像素),程序将输出尼泊尔的标志。您可以选择任何一种绘制标志的方式:从ASCII艺术到OpenGL的所有内容。 这是一场人气竞赛,因此获胜者将是2月1日获得最高投票的答案,因此不必担心代码长度,但是请记住,较短的代码可能会获得更多投票。 只有一个要求:不允许您使用Web资源。 玩得开心 :)

29
最少的代码CPU压力测试仪…
介绍 有许多实用程序可以创建高CPU负载,以对您的处理器进行压力测试。在Microsoft Windows上,您甚至可以使用板载calculator.exe,输入,如999999999,然后按n!几次以使您的CPU超时工作。 但是,如果您自己没有创建解决方案,那该怎么办? 使命 您的任务(如果选择接受)是创建地球上最小的CPU压力测试工具。 必须… 必须产生100%的CPU负载,直到中止 必须输入一个数字输入,代表压力测试应运行的秒数 必须允许用户交互(按键,关闭终端窗口或类似的东西),这应使用户能够中止压力测试和/或退出程序 必须针对Microsoft Windows,Mac OSx和/或Linux。 (即使仓鼠也可能会对Comodore64产生压力,因此,您必须针对当前的操作系统。) 一定不… 不得使用可替代预期功能的第三方程序或工具。 (提议捷径之类system('cpuStressThing.exe')的提议会使您的提议失去资格。) 可以… 可以使用任何方法/算法/功能来产生预期的100%CPU负载 可以使用任何编程或脚本语言 (只要它允许通过运行对其功能进行实际验证) 获奖条件 展示可能的最小源代码。获奖者是提供符合上述“必须”和“不得”条件的最小(大小)源代码的人。现在,让那个婴儿烧伤... 编辑 由于问题出现在注释区域中,因此您只需要指定1个CPU内核即可。我绝对不希望您提供多核解决方案。毕竟,这应该很有趣–不起作用。
28 code-golf 

13
编写一个告诉您哪些行已删除的函数
编写一个包含五行的函数。 如果按原样运行该函数,则应返回0。 如果您删除了五行中的任何一行并运行该函数,它应该告诉您哪些行已被删除(例如,如果您删除最后一行,则应返回5)。 简洁,新颖和优雅都值得考虑。最高投票赞成的解决方案(经过合理的时间)获胜。

12
***风景***
目标:编写一个程序,以生成美丽的(?)ASCII艺术风景和天际线! 您的程序只有一个输入:一个由char的任意组合/重复组成的字符串0123456789abc。 对于每个输入字符,输出如下垂直线: . .. ... oooo ooooo OOOOOO OOOOOOO XXXXXXXX XXXXXXXXX XXXXXXXXXX 0123456789 字母abc后跟一个数字n,并在底部绘制垂直线n,分别具有1,2或3个孔(空格)。 例子 克莱斯勒大厦 输入:2479742 . . ... ooo ooo OOOOO OOOOO XXXXXXX XXXXXXX XXXXXXX 泰姬陵 输入:0804023324554233204080 . . . . o o o oo o O O OOOO O O O O OO OOOO OO O …

11
使StackOverflow爆炸(书签)[关闭]
有时,人们对StackExchange网络感到沮丧(尤其是SO)。 您的任务是创建一个书签,使StackOverflow以某种方式爆炸/爆炸/破坏。这将提供更好的分散挫败感的方法。 规则: 它必须是小书签的形式 必须在Chrome和Firefox中运行(最新稳定版本) jQuery在该站点上,因此您可以使用它 没有创建拉爆炸explistitThisPage.js或类似的脚本标签 评分是需要复制和粘贴的字符数,除了: -1,如果您包含说明 每次投票-5 -10(如果您不使用jQuery) -10如果发出爆炸声 + 9e72如果确实对站点造成伤害(F5应该修复损坏) 如果gif令人分心,请将其删除。

29
将短月份的名称转换为较长的月份[已结束]
挑战已经结束!恭喜Flonk! 我确定我会获得很好的成绩,但是上交Flonk的作品后,我的教授不相信这是我的,也无法理解为什么如此复杂...我失败了,我的妈妈使我脱离了Facebook和Minecraft一个月。我不明白 :( 感谢您提交的所有内容!这里有一些很好的答案。官方冠军是Flonk,得分为64。前五名是: Flonk,64岁(Haskell,数学高效!) DigitalTrauma,40岁(云,未来就在眼前) primo,38岁(Python和我个人最喜欢的-非常专业!) Sylwester,20岁(球拍,尽管Janember正在伸展!) ilmale,16(Lua中的高度优化算法) 以下是原始挑战。 请帮助我,这非常紧急!!!:( 我需要将月份名称的缩写版本转换为更长的表示形式(例如“ Dec”->“ December”),不区分大小写。现在我正在使用Java。该月的名称是一个String,我宁愿不先将其转换为Date对象。但是,任何语言都可以。 是否有捷径可寻??轻松一点,我是编程的新手! 这是一场代码巨魔人气竞赛(这是最好的!)。2014年4月8日投票最多的答案将获胜。

2
最快的半素数分解
编写程序以在最短的时间内分解半素数。 为了进行测试,请使用以下命令:38!+1(523022617466601111111760007224100074291200000001) 等于:14029308060317546154181×37280713718589679646221

30
查找包含每个元音的单词
您的程序必须在此单词表中找到包含所有元音(a e i o u y)的所有单词。有很简单的方法可以做到这一点,但是我正在寻找最短的答案。我会选择任何语言,但我想看看Bash。 这是一个示例(可能会大大改善): cat wordlist.txt | grep "a" | grep "e" | grep "i" | grep "o" | grep "u" | grep "y" 您的分数就是代码的长度。 -5分,用于计算单词的所有出现次数。 最低分获胜。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.