编程拼图和代码高尔夫

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

9
做一个缓慢的错误奎因制造商!
作为他对“犯错误的原因” 的回答的一部分!,@ Falko提出了以下算法: 如何在2分钟内创建自己的解决方案? 在您选择的IDE中打开一个新文件。 将头撞到前方的键盘上。 编译。 将代码替换为编译器错误消息。 重复步骤3和4,直到代码收敛。 我敢打赌,这样的程序在大多数情况下会很快终止! 任务 您的任务是证明他错了。 编写一个满足以下条件的完整程序: 在编译或解释时,它会生成一条错误消息,而在依次编​​译或解释时,它也会导致一条错误消息。 一遍又一遍地重复步骤1,最终将遇到一个固定点,即一个错误提示。 附加规则 最终错误消息的长度必须为正。但是,以前的错误消息和原始的源代码可能为空。 原始源代码的长度不得超过1024个字节。 原始代码或任何步骤中生成的代码均不会产生非错误输出。 输出必须清楚地标识为错误消息,由于语法错误,运行时错误,未定义引用等原因,必须由编译器/解释器生成输出。 您的程序可能未收到任何输入或需要任何标志来产生循环。 您的程序可能依赖于其语言或版本的特定实现。 计分 您的分数是您的源代码在生成错误提示之前需要执行的有限步骤。得分最高的提交者获胜。 原始源代码的长度将用作平局决胜局。越短越好。 例 在Chicken中,该程序 生成以下错误消息: TypeError: Cannot read property 'NaN' of undefined 如果反过来解释此错误消息,则会生成错误消息 Error on line 1: expected 'chicken' 如果反过来解释,它就会产生自己。 因此,空Chicken程序的得分为2。 反例 PHP代码 ab<?=c 生成错误消息 PHP Parse …

15
温度转换器
这是一个字节大小的挑战,您必须将三个单位(摄氏,开氏和华氏度)之一的输入温度转换为另外两个单位。 输入值 系统会为您提供温度数字,后跟一个单位(以空格分隔)。温度可以是整数或浮点数(23对23.0或23.678)。 您可以提交一个函数或完整程序,该函数或程序从STDIN / ARGV / function参数或最接近的等效项读取以空格分隔的字符串,然后将输出打印到STDOUT或最接近的等效项。 输出量 您的输出应该是将温度转换为其他两种格式,用换行符分隔,然后在每行后跟相应的单位字符(可选用空格分隔)。两个单元的顺序无关紧要。 输出精度 转换后的数字应精确到至少四位小数而不四舍五入。 只要精确到前4个小数位(不舍入),则尾随零或小数位是可选的。如果实际答案在小数点后有4个零,则还可以跳过4个零和/或小数点。 不应有任何前导零 只要满足上述三个要求,任何数字格式都是可以接受的。 单位代表 温度单位只能是以下之一: C 对于摄氏 K 对于开尔文 F 为华氏度 例子 输入: 23 C 输出: 73.4 F 296.15 K 输入: 86.987 F 输出: 303.6983 K 30.5483 C 输入: 56.99999999 K 输出: -216.1500 C -357.0700 F 这是代码高尔夫球,因此以字节为单位的最短条目将获胜!高尔夫快乐! 排行榜 …

4
让我们玩Meta井字游戏吧!
让我们玩Meta井字游戏! 这是Meta tic-tac-toe 的山峰赛。井字游戏的规则如下: 井字游戏的所有常规规则均适用。 安排了九个板以组成一个主板。像这样: 0|1|2 || 0|1|2 || 0|1|2 ----- || ----- || ----- 3|4|5 || 3|4|5 || 3|4|5 ----- || ----- || ----- 6|7|8 || 6|7|8 || 6|7|8 ======================== 0|1|2 || 0|1|2 || 0|1|2 ----- || ----- || ----- 3|4|5 || 3|4|5 || 3|4|5 ----- || ----- …

10
小便池协议
背景 已经在多个地方讨论了所谓的“小便池规程”,该规程描述了在男士浴室中抽取单个小便池的顺序。此xkcd博客文章中给出了一个版本。这个问题涉及一个细微的变化: 布置:排成一行的小便池。 规程:每个新人都选择一个与已使用的小便器距离最远的小便器。 注意,这对第一人称小便池没有任何限制。 更新:不同的方式数的序列,其中n个人可以选出n个小便器开始与1,2,4,8,20 ...注意,这不一样OEIS A095236,其中描述了比这个稍微严格限制题。 任务 给定一个介于0到10之间的整数n,输出(以任何顺序)n个人可以占用n个小便池的所有可能的顺序。每种订购应按最终安排打印:代表人的数字序列(前9人为1-9,第十人为0),从最左边的小便池开始,中间有可选的非字母数字分隔符(但不包括在前面)或之后)的数字。例如,以下输出均有效: >> 3 132 213 312 231 >> 4 1|3|4|2 1|4|3|2 3|1|4|2 4|1|3|2 2|3|1|4 2|4|1|3 2|3|4|1 2|4|3|1 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行参数或函数参数获取输入。结果应打印到STDOUT(或最接近的替代品)。 计分 最短的代码胜出。适用标准条款和条件。

5
这个单词在防呆板上吗?
介绍 经过一天的饮酒和看世界杯之后,您可以坐下来进行友谊赛。脾气暴躁,因为您被指控浪费甚至连板子上都没有的废话!您可能会看到两倍,但可以肯定的是,您正在思考的足够直截了当,可以编写一个程序来验证您的话语是否正确。 你的任务 编写一个程序,脚本或函数,该程序需要一个防呆板和一个单词作为输入,如果单词在板上,则返回True;否则,则返回False。 输入将采用六\n行分隔线的形式。前五行将由5x5防漏板组成,每行包含五个大写字母。第六行还将包含所有大写字母中的疑问词。 输入样例: AJNES TNFTR LSAIL UDNEX EQGMM DAFTER 输出可以是在您选择的编程语言中明确表示True或False并遵循零,null和空表示False的标准约定的任何内容。 以上输入的样本输出: 1 I / O准则 可以从stdin读取输入,然后将输出应答到stdout。 要么 输入可以是函数的单个字符串参数,答案是该函数的返回值。 僵局规则 如果您可以通过板上连续的,相邻的,非重复的图块的路径构造单词,则该单词为“板上”。 一个图块被认为与其周围的八个图块相邻(允许使用对角线路径)。木板边缘的瓷砖仅与五个瓷砖相邻。角落中的瓷砖仅相邻三个。 单词中的连续字母必须相邻,单词中的ith字母必须相邻于i-1th和i+1th。 一个单词中的一个字母可能会出现多次,但是每个单词中您不能在防虫板上使用相同的正方形。 如果您以前从未玩过Boggle,但想了解这些规则,则在线Boggle网站wordsplay.net可能会有用。 与普通的boggle不同: 您不必担心该单词是有效的英语单词。 不会有Qu单个图块。 疑问词的长度可以> 0 例 在董事会 AJNES TNFTR LSAIL UDNEX EQGMM 这些单词应返回True:FATE,DATING,STANDS,LIFTS。 这些单词应返回False:SADDEN,SULTANS,EXIST,SUEDE,QUEST 这是一个代码挑战,所以最短的代码胜出!
38 code-golf  boggle 

30
在源代码中删除空白行,这会导致意外的功能。
编写一个脚本,该脚本在程序逻辑流程中出现空白行时会正常工作,但在删除该行时会中断或导致意外行为。 避免出现标准漏洞和愚蠢的答案。您的程序应该做一些“有用的事情”,即使它所做的只是添加一些整数。 从多行字符串中删除空行不算在内,除非该多行字符串的预期输出在技术上不应该更改(即:如果要删除所有与匹配的空行^$)。 也不允许使用空白愚蠢;不要用回车符,制表符,空格等做奇怪的事情。

14
按黑暗排序字符
您的程序必须将一行字符作为输入,如下所示: @+.0 并输出按其暗淡程度排序的字符,如下所示: .+0@ 要求: 您必须使用等宽字体进行暗度检测。 您必须找出每个字符占用多少像素。实际上,您必须绘制字符并计算像素,即您不能仅对像素数量进行硬编码。 作为更具体的规则:如果您切换了字体,您的程序应该仍然可以运行。此外,您的程序应该能够通过简单地更改代码中的变量,值或字符串来切换字体。 如果使用抗锯齿,则必须将像素计数为全黑像素的百分比。例如,一个rgb(32, 32, 32)像素将算作整个像素的1/8。如果您的角色没有抗锯齿,请忽略此规则。 计算像素后,必须按字符数量对字符进行排序,然后按顺序输出它们。 这是code-golf,因此以字节为单位的最短代码将获胜。
38 code-golf 

11
音乐:这和弦里有什么?
输入值 任何三合会和弦的符号(请参阅http://en.wikipedia.org/wiki/Chord_(music)#Triads)。 输出量 组成给定和弦的音符。 例子 输入:AM 输出:A C# E 输入:C#m 输出:C# E G# 输入:Db+ 输出:C# F A 输入:C0 输出:C D# F# 奖金 -50如果您也可以应付第七和弦 -150用于实际演奏和弦的声音 -150用于使用可打印字符显示如何在钢琴上弹奏和弦;例如AM: ┌─┬─┬┬─┬─┬─┬─┬┬─┲┱─┬─┬─┲━┱┬─┲━┱─┬─┬┬─┬┬─┬─┐ │ │ ││ │ │ │ ││ ┃┃ │ │ ┃ ┃│ ┃ ┃ │ ││ ││ │ │ │ │ ││ │ │ …
38 code-golf  music 

24
Rosetta Stone挑战:平均水平是多少?
Rosetta Stone挑战赛的目标是用尽可能多的语言编写解决方案。炫耀您的编程多语言! 挑战 人们使用“平均”一词时,通常指的是算术平均值,即数字的总和除以数字的数量。但是,“均值”一词还有更多含义,包括谐波均值,几何均值,算术均值,二次均值和逆谐波均值。 您的挑战是编写一个程序,该程序输入数字列表并输出这5种不同的方式。此外,您正在尝试使用尽可能多的语言编写程序。您可以使用您的语言具有的任何标准库函数,因为这主要是语言展示。 输入值 输入将是一个正数列表。 1,2,3,4,5 1.7,17.3,3.14,24,2.718,1.618 8.6 3,123456 10.1381,29.8481,14.7754,9.3796,44.3052,22.2936,49.5572,4.5940,39.6013,0.9602 3,4,4,6.2,6.2,6.2 输出量 输出将是上面列出的顺序中的五种均值(谐波,几何,算术,二次,逆谐波)。方便地,这与递增顺序相同。 2.18978,2.6052,3,3.31662,3.66667 3.01183,4.62179,8.41267,12.2341,17.7915 8.6,8.6,8.6,8.6,8.6 5.99985,608.579,61729.5,87296.6,123453. 5.95799,14.3041,22.5453,27.9395,34.6243 4.5551,4.74682,4.93333,5.10425,5.28108 I / O格式将有一定的宽大处理,但我确实希望精度达到几个小数位。由于我要浮点输出,因此可以假定为浮点输入。 客观获胜标准 关于客观的获胜标准,这是:关于谁可以写得最短的参赛作品,每种语言都是一场单独的比赛,但总的获胜者将是赢得这些子比赛中最多的人。这意味着以多种不同寻常的语言回答的人可以获得优势。当一种语言中有多个解决方案时,代码高尔夫球通常是决胜局:程序最短的人会为该语言赢得赞誉。 如果平局,那么获胜者将是排名第二的人(依此类推)。 规则,限制和注释 您的程序可以用2014年9月2日之前存在的任何语言编写。由于我不太可能测试,因此我还必须依靠社区来验证以某些较不常见/深奥的语言编写的答复。他们。 请把您所有的不同意见都包含在一个答案中。 同样,在语言方言中稍有不同的情况下,也没有答案基本相同的恶作剧。我将判断哪些提交内容足够不同。 现任排行榜 本部分将定期更新以显示语言的数量以及每种语言的领先者。 Algoid(337)-Beta衰变 APL(42)-算法 Awk(78)-丹尼斯 BBC BASIC(155)-Beta衰变 C(136)-丹尼斯 C ++(195)-Zeta C#(197)-马丁·布特纳 果酱(43)-丹尼斯 Clojure(324)-迈克尔·复活节 眼镜蛇(132)-乌鲁斯人 CoffeeScript(155)-马丁·布特纳 Commodore BASIC(104)-马克 普通Lisp(183)-DLosc Erlang(401)-马克 …

13
最长的代码加上两个数字[关闭]
任务: 我知道我们都可以使用来简单地将两个数字相加+。您的任务是创建可以添加两个输入数字的最长代码。 规则: 所有代码都必须是主题(不要用非添加代码来填充长度) 该计数以字符为单位,但不计算制表符,空格或换行符。 不要使用多余的变量名 这是代码保龄球,所以最长的答案是成功的!

30
打印从-100到100的所有包含给定数字的数字
如果提供的数字介于0到9(含)之间,则您的函数/子例程应打印包含给定数字的-100到100(含)之间的所有数字。 例如: Input: 9 Output: -99 -98 -97 -96 -95 -94 -93 -92 -91 -90 -89 -79 -69 -59 -49 -39 -29 -19 -9 9 19 29 39 49 59 69 79 89 90 91 92 93 94 95 96 97 98 99 规则: 您不能使用字符串(以您选择的语言表示的任何方式)或char数组。(除了将答案打印到控制台上。) 您不能使用数组。 得分: 分数=子例程/函数的长度(不计空格) 得分最低的答案将获胜。 空格将不计算在内。请正确格式化您的代码! …
38 code-golf 

3
解决魔方
编写最短的程序,以在合理的时间范围内移动并解决Rubik的多维数据集(3 * 3 * 3)(例如,在您的计算机上最多5秒,而最多移动1000秒)。 输入的格式为: UF UR UB UL DF DR DB DL FR FL BR BL UFR URB UBL ULF DRF DFL DLB DBR (此特定输入表示已解决的多维数据集)。 前12个2个字符的字符串是UF,UR,... BL位置中的边(U =上,F =前,R =右,B =后,L =左,D =下),然后是下8个3个字符的字符串是UFR,URB,... DBR位置中的角。 输出应以这种格式给出一系列移动: D+ L2 U+ F+ D+ L+ D+ F+ U- F+ 其中D1或D +代表将D(下)面顺时针旋转90度,L2代表将L面旋转180度,U3或U-代表将U面逆时针旋转90度。 字母不区分大小写,空格是可选的。 …

9
文本压缩和解压缩-“再也没有”。
随着最近有关在代码高尔夫中使用压缩工具的讨论,我认为编写自己的文本压缩器和解压缩器将是一个不错的挑战。 挑战: 编写两个程序:一个程序将ASCII文本压缩为一个字节序列,另一个程序将其解压缩。程序不必使用相同的语言。 第一个程序应读取一段ASCII文本(从文件或标准输入,或使用该语言最自然的任何机制),并输出其压缩版本。(压缩的输出可以包含任意字节,也可以是任意字节;它不必可读。)第二个程序应读取第一个程序的输出并重新创建原始输入文本。 得分: 解决方案的分数将是以下三个计数的总和: 压缩程序的长度(以字符为单位)。 的输出的长度给出下面的测试输入,以字节为单位的压缩机。 解压缩程序的长度(如果与压缩程序不同),以字符为单位。 您应该在回答中记下所有三个计数及其总和。由于这是标准高尔夫,得分越低越好。 规则和限制: 您可能不会使用任何预先存在的压缩或解压缩工具或库,即使它们与您选择的语言捆绑在一起也是如此。如果不确定是否允许使用给定的工具或功能,请询问。 您的压缩程序必须能够处理由任何可打印ASCII文本组成的输入,包括制表符(ASCII 9)和换行符(ASCII 10)。您可能但不是必须处理任意Unicode和/或二进制输入。 您的解压缩程序必须产生与作为输入的压缩器完全相同的输出。特别是,如果输入中没有尾随换行符,请注意不要输出。(下面的测试输入确实包含尾随换行符,因此您需要对此进行单独测试。GolfScript提示:'':n。) 您的压缩器和解压缩器可能是同一程序(选择了适当的模式,例如使用命令行开关)。在这种情况下,其长度仅计算一次。 程序不应过慢或占用大量内存。如果压缩或解压缩测试输入在不是很新的台式机(2.2GHz AMD Athlon64 X2)上花费了超过一分钟,或者消耗了超过1 GB的RAM,那么我将裁定该解决方案无效。这些限制是故意放宽的-请尽量不要推动它们。(请参阅下面的修订:在这些限制之内,您必须至少能够处理100 kB的输入。) 即使仅测试输入对评分很重要,您也至少应努力压缩任意输入文本。仅针对测试输入即可达到不错的压缩比的解决方案在技​​术上是有效的,但不会对我不利。 您的压缩程序和解压缩程序应该是独立的。特别是,如果它们依赖于能够读取不属于所选语言的标准运行时环境的一部分的文件或网络资源,则该文件或资源的长度应计为程序长度的一部分。(这是不允许“压缩器”将输入与网络上的文件进行比较,如果匹配则输出零字节。对不起,但这不再是新技巧了。) 修订和澄清: 您的压缩器必须能够在合理的时间和内存使用量(最多一分钟,一GB内存)内处理至少100 kB的典型英文文本。您的解压缩器必须能够在相同限制内解压缩结果输出。当然,能够处理比该时间更长的文件是完全可以的,值得称赞。可以将长输入文件分成多个块并分别进行压缩,也可以使用其他方法来权衡压缩效率,以提高长输入的速度。 您的压缩器可能需要使用首选平台的本机换行符表示形式(LF,CR + LF,CR等)来提供其输入,只要您的解压缩器在其输出中使用相同的换行符表示形式即可。当然,只要您的解压缩器输出与原始输入中相同类型的换行符,压缩器也可以接受任何类型的换行符(甚至不考虑平台,甚至仅接受Unix换行符)也是可以的。 测试输入: 为了判断答案的压缩效率,将使用以下测试输入(Edgar Allan Poe撰写的The Raven,由Gutenberg项目提供): Once upon a midnight dreary, while I pondered, weak and weary, Over many a …

13
打高尔夫球
使用2种您所选择的语言,写的最小的“相互奎因 ”就可以了。 即,用语言A编写程序P,以语言B输出程序Q的源代码,以使程序Q的输出与P的源代码相同。 空文件不计,“读取源文件并打印”样式的程序也不计。 编辑: P = Q的答案不再计数。

30
计算所有数字的总和
挑战在于编写一个程序或脚本,该程序将对从1到给定数字(包括给定数字)的整数内的所有数字的总和进行计数。 输入,一个正整数。输出该数字和所有较小数字的数字总和。 例子: Input: 5 Integer Sequence: 1, 2, 3, 4, 5 Sum of Digits: 1 + 2 + 3 +4 + 5 = 15 Input: 12 Integer Sequence: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 Sum of Digits: 1 + 2 + 3 + …
38 code-golf  math 

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.