编程拼图和代码高尔夫

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

6
代码注入也可以在C#中工作!
给定以下C#程序输出False,请注入“恶意”代码行,以使程序输出True。 class Program { static void Main() { System.Console.Write("False"); ; } } 您的答案应包含一个字符串,该字符串将替换第二个分号,并导致程序输出True,整体,True而仅输出True(甚至不包括换行符)。如果将stdout打印到控制台,并且将stdout重定向到文件,则必须执行此操作。 最短的答案将获胜。

26
“ Hello world!”,每个字符重复n次[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 3年前关闭。 用您选择的语言编写一个精确输出的程序Hello world!。程序中的每个字符必须重复n次-您选择n。 例如,您可以为n选择2 。这意味着源代码中使用的每个字符必须重复多次,即0。 如果我为n选择3 ,则此程序将有效: ab(b(b(aa)));;; 规则: 您不能使用任何外部资源 无法提供用户输入 您必须输出准确 Hello world!,不多不少。换行符是例外,它们是可选的。 n必须大于等于2,以保持有趣 不建议使用评论来实现您的目标。 人气比赛,将在14天内结束。得分最高的答案胜出!

30
哥德巴赫的猜想
编写一个程序,提示用户输入大于2的偶数整数。 考虑到哥德巴赫的猜想,每个大于2的偶数均可以表示为两个素数之和,请打印出两个素数,将它们相加即可提供所需的偶数。编辑:该程序仅需要打印素数对,而不是全部。例如: 4:2 + 2 6:3 + 3 8:3 + 5 10:5 + 5或3 + 7
15 code-golf  primes 

12
从排序的整数列表中创建平衡的BST
给定一个唯一的,排序的整数列表,创建一个平衡的二进制搜索树,表示为数组而不使用递归。 例如: func( [1,2,3,5,8,13,21] ) => [5,2,13,1,3,8,21] 在开始之前,有个提示:我们可以将这个问题简化很多,这样我们实际上就不必考虑输入整数(或者与此有关的任何可比较对象!)。 如果我们知道输入列表已经排序,则其内容无关紧要。我们可以简单地根据原始数组的索引来考虑它。 输入数组的内部表示将变为: func( [0,1,2,3,4,5,6] ) => [3,1,5,0,2,4,6] 这意味着我们不必编写必须处理类似对象的东西,而只需要编写一个将[0,n)范围映射到结果数组的函数。获得新订单后,我们可以简单地将映射应用于输入中的值以创建返回数组。 有效的解决方案必须: 接受零元素数组并返回一个空数组。 接受长度为n的整数数组并返回整数数组 长度在n与2的下一个最高幂减1之间。(例如,对于输入大小13,返回13到15之间的任意值)。 表示BST的数组,其中根节点位于位置0,高度等于log(n),其中0表示丢失的节点(null如果您的语言允许,则为类似值)。空节点(如果存在)必须仅存在于树的末尾(例如[2,1,0]) 输入整数数组具有以下保证: 值是大于零的32位有符号整数。 价值观是独一无二的。 值从零位置开始按升序排列。 值可能很稀疏(即彼此不相邻)。 以ascii字符数表示的最简洁的代码胜出,但是我也希望看到针对任何特定语言的优雅解决方案。 测试用例 简单数组的输出,包含1to的nfor n。如上所述,尾随0s是可选的。 [] [1] [2,1,0] [2,1,3] [3,2,4,1,0,0,0] [4,2,5,1,3,0,0] [4,2,6,1,3,5,0] [4,2,6,1,3,5,7] [5,3,7,2,4,6,8,1,0,0,0,0,0,0,0] [6,4,8,2,5,7,9,1,3,0,0,0,0,0,0] [7,4,9,2,6,8,10,1,3,5,0,0,0,0,0] [8,4,10,2,6,9,11,1,3,5,7,0,0,0,0] [8,4,11,2,6,10,12,1,3,5,7,9,0,0,0] [8,4,12,2,6,10,13,1,3,5,7,9,11,0,0] [8,4,12,2,6,10,14,1,3,5,7,9,11,13,0] [8,4,12,2,6,10,14,1,3,5,7,9,11,13,15]

5
实现SHA-1哈希算法
此代码高尔夫球的目标是创建一个将字符串作为输入的程序,并且必须将SHA-1哈希值输出为十六进制数。您可以在这里找到SHA-1的伪代码 其他规则: 没有网络访问 您不允许运行外部程序 您不允许使用内置方法对输入进行散列 最短的代码胜出 只需要处理ASCII输入 输出可以是小写或大写 可以使用以下命令提供输入: 提示输入 使用命令行参数 使用STDIN 测试用例: Input: The quick brown fox jumps over the lazy dog Output: 2fd4e1c67a2d28fced849ee1bb76e7391b93eb12 ---------------------------------------------------------- Input: The quick brown fox jumps right over the lazy dog Output: 1c3aff41d97ada6a25ae62f9522e4abd358d741f ------------------------------------------------------------ Input: This is a code golf challenge Output: f52ff9edd95d98e707bd16a7dead459cb8db8693

20
Quine…但又移位了一个
以十进制表示可打印的ASCII字符代码,我们知道从32到126,我们有可打印的字符,其中32为(空格)。您面临的挑战是编写一个仅使用32到125(不包括126)个字符的程序,该程序在执行时会打印自己的源代码,只是源代码中的每个字符的ASCII码都增加了一个。 例如,如果源代码是 main(){printf("Hello World");} 它的输出将是 nbjo)*|qsjoug)#Ifmmp!Xpsme#*<~ 以下是禁止的: 读/写/使用任何外部文件或存储(包括互联网) 阅读/回显自己的源代码 少于2个字符的源代码(它们很有趣)。必须大于或等于2。 这是一场人气比赛,在等待至少两周后,无论哪种语言,回答最高的答案都将赢得胜利,而较少的字符数将成为平局。

1
大声说出从0到9的数字
受到来自electronic.SE的这个问题的启发,这对您来说是一个挑战: 编写一个程序或子程序,该程序或子程序使用一个十进制数字序列(0到9)并大声说出来,而无需使用现有的语音合成工具。 输入: 您可以要求以任何合理的格式提供输入数字,例如,以ASCII数字字符串,整数数组,BCD编码的数字等形式提供。如果您的解决方案是可执行程序,则可以将输入作为命令行参数,从标准输入中读取它,或以任何其他合理的方式获取它。 您的程序每次调用必须至少能说八位数。您可以假设第一个数字不为零,除非它是唯一的数字。 输出: 您的程序可以使用音频设备直接说出数字,也可以输出可播放的声音文件。输出文件(如果有)可以采用任何标准音频格式,也可以包含原始样本数据。如果输出原始样本数据,请注意适当的回放参数(采样率,每个样本的位数,字节序,有符号/无符号,通道数)。aplay支持的格式是首选。 您可以自由决定如何说出数字的细节,但是您的输出应包括以典型英语使用者可以理解的方式说出的英语数字,并且应该足够清晰,以使听者能够准确地转录八位数的随机数字。不,只鸣响n次不算。不要忘记在数字之间包含停顿。 得分: 适用标准的代码高尔夫评分规则:得分是代码的长度(以字节为单位),或者,如果代码是用Unicode文本编写的,则是Unicode字符。最低分获胜。任何语言都可以。 作为关于电子学的最初问题,SE是关于嵌入式编程的,我认为使用低级语言向作者扔骨头是合适的:如果您的解决方案是用编译语言编写的,则可以选择计算语言的长度。已编译的可执行文件(以字节为单位)作为您的分数。(是的,预编译的字节码,例如Java .class文件也是可以的。)如果您选择使用此选项,请在答案中包括已编译的可执行文件的副本(例如,作为十六进制转储)以及源代码。以及用于生成它的编译器版本和选项。 的荣誉奖,与50代表沿奖金,将被授予第一个答案也能满足该的标准原来的问题,即,能够与闪光灯的4 kb和SRAM的1kb的上的嵌入式微控制器运行。 限制条件: 除非您将上述文件或资源的长度计入分数,否则您不得使用不属于所选语言的标准运行时环境的任何文件或网络资源。(这是不允许的,例如从网络上加载音频样本。) 您也可能不使用任何预先存在的语音合成工具或库或音频数据的汇编(除非您也将它们的大小计为分数的一部分),即使它们已包含在所选语言的标准运行时环境中也是如此。
15 code-golf  audio 

16
无重复的阵列合并
我最近在StackOverflow上看到了以下Javascript代码,用于合并两个数组,并删除重复项: Array.prototype.unique = function() { var a = this.concat(); for(var i=0; i<a.length; ++i) { for(var j=i+1; j<a.length; ++j) { if(a[i] === a[j]) a.splice(j--, 1); } } return a; }; var array1 = ["Vijendra","Singh"]; var array2 = ["Singh", "Shakya"]; var array3 = array1.concat(array2).unique(); 尽管此代码有效,但效率极低(O(n^2))。您的挑战是使算法复杂度降低。 获胜标准是具有最低复杂度的解决方案,但领带会因字符长度最短而中断。 要求: 将所有代码打包到一个满足以下“正确性”要求的函数中: 输入:两个数组 输出:一个数组 将两个数组的元素合并在一起-任何一个输入数组中的任何元素都必须在输出数组中。 输出的数组不应有重复项。 …

12
Tcl打高尔夫球的秘诀
您在Tcl打高尔夫球有哪些一般秘诀?我正在寻找可以应用于编码高尔夫问题的想法,这些想法至少在某种程度上特定于Tcl(例如,“删除评论”不是答案)。请为每个答案发布一个提示。
15 code-golf  tips 

8
图灵机模拟器
编写一个图灵机模拟器。 为简单起见,我们可以假设状态为整数,符号为char,空白符号等于空格 当前状态,输入符号,下一个状态,输出符号,方向(左或右)形式的5元组不是强制性的,而是指定是否交换 达到未知状态时,机器必须停止,不允许其他停止条件。 磁带在两个方向上都是无限的,您始终可以读取一个空字符。 输入:初始磁带,初始状态和程序。您可以随意从任何地方以自己喜欢的格式读取数据 输出:程序执行后的录像带 必需:在模拟器顶部运行的示例程序 这是一个代码集,因此最短的代码获胜。 我将在接下来的几个小时内发布实现和一些示例程序。

2
大二分法
给定一个和弦列表,将其标记为“大”或“小”。 输入值 输入将是和弦列表,每行一个,由3个音符隔开。每个便笺将由大写的便笺名称(A- G)和可选的偶然的(#或b)组成。和弦可以以任何反转(即音符可以以任何顺序)。 输出量 如果和弦是大和弦,则输出“ Major”。如果和弦较小,则输出“ Minor”。如果和弦既不是大和小,则输出空白行。 例 输入值 C E G F Ab C C Eb Gb E G B Db F Ab Bb G D D A Gb 输出量 Major Minor Minor Major Minor Major 测试脚本 就像我过去的一些问题一样,我再次选择了一些最初由Joey和Ventero创建的测试脚本,以针对该问题提供一些测试用例: 重击 电源外壳 用法: ./test [your program and its arguments] 奖赏 …
15 code-golf  music 

30
偶数或奇数:三人
这是一个三人游戏,一只手玩。 同时,每个玩家伸出0到5个手指来展示自己的手。 如果所有玩家都显示相同类型的(偶数或奇数)数字,则没有获胜者。但除此之外,玩家表现出不同的种类,而另外两个则获胜。 P l a y e r s A B C Winner Even Even Even No winner Odd Odd Odd No winner Even Odd Odd Player A Odd Even Even Player A Even Odd Even Player B Odd Even Odd Player B Odd Odd Even Player C Even …
15 code-golf  number  game 

15
高尔夫球的子总和问题
任务 给定以空格分隔的整数列表作为输入,请输出这些数字的所有唯一非空子集,每个子​​集的总和为0。 测试用例 输入: 8 −7 5 −3 −2 输出:-3 -2 5 获胜标准 这是代码高尔夫球,因此以字节为单位的最短代码胜出!
15 code-golf  math 

3
自匹配正则表达式[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 编写一个与其匹配的平凡正则表达式。 例如,#.*$将在python中的字符串之外匹配注释,直到行尾,并且还以perl regex语法匹配自身。 规则: 正则表达式必须做一些有用或实用的事情。 告诉您正在使用什么正则表达式语法(例如perl或POSIX)。 优胜者是投票最高的合规答案。 有创造力!

4
创建GUI钢琴[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 3年前关闭。 挑战 用最少的字符创建一个GUI键盘。 例 因为这是我的一门课程中的一项作业,所以我无法显示源代码。但是,这是我的键盘的屏幕截图。 在此示例中,我的键属于类型JButton,我使用Midi合成器产生声音(具有默认的ADSR包络值)。 规则 你被允许使用标准的外部库。 发挥您的声音创意。您可以使用8位,西塔琴等。 为简单起见,您可能有五个键;黑白,从C到E(键盘上的前五个键)。 最重要的是……展示您的作品! 注意:根据您选择使用的语言,这可能是一项相当大的任务。 这是我对SE Code Golf的第一个问题。如果不清楚,请询问更多细节。 编辑:此挑战的截止日期将为9/22/12。如果您在此日期之后发布答案,无论如何(可能对其+1),我都会对其进行检查。
15 code-golf  music 

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.