Questions tagged «code-golf»

Code-golf是在最小的源代码字节中解决特定问题的竞赛。

4
硬编码高尔夫:创建聊天室
提示故事情节: 这是21世纪初,大多数事情已经成为过去。但是,您和您的代码高尔夫球专家正在重新制定1990年代。作为此挑战的一部分,您必须重新创建一个简约的聊天室。 目标: 创建一个聊天室,并使其字节数尽可能少。您编写的程序应充当简单的服务器,该服务器提供一个网页,允许用户在屏幕上张贴文本。 实际目标: 通过自己的计算机实际托管一个正常工作的聊天室。您不必执行此操作,但是通过这种方式它会有趣得多。 要求: 用户应该能够给自己一个持续会话的用户名 用户应该能够重复键入和提交文本,这些文本将显示给其他用户 每个用户都应该能够看到所有用户提交的文本以及提交者的用户名,并且信息应按时间顺序显示 该页面还应显示在线人数及其用户名列表 互联网上任何知道在哪里找到它的人(例如知道IP地址)都应该可以访问您的聊天室。 它应可在现代Web浏览器中运行。 其他一切都取决于您! 提交内容: 应该包括源代码,或到源代码的链接 应包括功能聊天室的屏幕截图 应该包括使之正常工作所需的所有已编写程序/文件的总大小(以字节为单位)。 这个挑战已经存在了一段时间,所以希望所有的问题都已经解决了。
13 code-golf 

30
颜色RGB int到十六进制
给定三个整数rgb,将十六进制表示形式输出为字符串。 Input: Output: 72 61 139 #483D8B 75 0 130 #4B0082 0 255 127 #00FF7F 最短的最非常规代码获胜
13 code-golf 

7
倒转单词,不改变大小写或标点符号
创建一个使用最少字符数的程序,以反转字符串中的每个单词,同时将单词的顺序以及标点和大写字母保持在其初始位置。 所谓“单词的顺序”,是指每个单词都被一个空格隔开(“”),因此,收缩等将被视为一个单词。收缩中的撇号应留在同一位置。(“ Do n't” =>“ Tno'd”)。 (标点符号表示不是az,AZ或空格*的任何字符)。 由于您没有大写字母,因此已从此列表中删除数字。现在将数字视为标点符号。 例如,对于输入: Hello, I am a fish. 它应该输出: Olleh, I ma a hsif. 注意,O(第一个单词的第一个字母)现在是大写字母,因为H在同一位置之前是大写字母。 逗号和句点也位于同一位置。 更多示例: This; Is Some Text! 将输出 Siht; Si Emos Txet! 可以使用任何语言。字符数最少的程序获胜。

4
莫扎特高尔夫-迷你“ Rondo”
将“ Mozart-Alla Turca”输出到标准输出(请参阅示例的“参考实现”) 尝试找到如何将合成器和音乐打包到最小尺寸。 要求: 适用于馈入的格式aplay -f cd(带符号的16位Little Endian,2通道); 应该播放整个音乐(没有跳过的音符或声部,至少不小于示例程序中的音乐),但是不需要复音。 不能随便打电话/usr/bin/timidity,/usr/bin/sox或类似的东西(例如,需要安装一个特殊的音乐模块); 无法访问网络或无法确定音乐在本地可用; 具有可分析分数的“参考实现”:https : //gist.github.com/vi/5478693 (旧示例Perl程序:https : //gist.github.com/vi/5447962)
13 code-golf  music 

8
计算复活节的日期
您的函数或程序应以一年作为输入,并返回(或打印)该年复活节(而不是东正教复活节)的日期(在公历中)。返回的日期应根据ISO 8601进行格式化,但要支持大于9999的年份(例如312013-04-05或20010130),并且只需要使用大于或等于1583(年份的年份)的年份即可。并采用小于或等于5701583的年份(因为当复活节日期的序列开始重复时)。 例子: e(5701583) = 5701583-04-10 e(2013) = 2013-03-31 e(1583) = 1583-04-10 e(3029) = 30290322 e(1789) = 17890412 e(1725) = 17250401 使用内置函数返回复活节日期很无聊,因此是不允许的。最短答案(以字符为单位)获胜。 资源: http://en.wikipedia.org/wiki/Computus#Algorithms http://web.archive.org/web/20150227133210/http://www.merlyn.demon.co.uk/estralgs.txt
13 code-golf  date 

1
纸牌梦-创造可赢的纸牌起手牌
是我。凯文·约翰逊。 5月21日。您正在Aperture Science(地球上最好的公司)工作,明天我们将发布旗舰窗口系统(或WindowS)CavOS的3.0版。不幸的是,明天早晨,我们的主要竞争对手也将发布其WindowS 3.0版! 首席执行官Window Cave透露给我的是,竞争的WindowS具有CavOS缺乏的一项功能:克朗代克纸牌游戏。我,凯夫·约翰逊(Cave Johnson),担心这种疏忽会导致销量急剧下降。因此,我,凯夫·约翰逊(Cave Johnson),设计了编程实习生之间的竞赛,以制作纸牌游戏。选择了条目的程序员将有机会加入令人兴奋的GlaDOS AI项目。 我,凯夫·约翰逊(Cave Johnson),有一些要求: 由于该软件必须在明天发货,因此将选择最短的程序,使其适合已打印,成像的软盘的备用扇区。 不用担心游戏玩法。我们的客户有打印机吗?我只需要为您的程序生成一个列表,即可显示:牌组中纸牌的顺序以及7堆纸牌中每个纸牌的内容。甲板将从顶部开始。从底部可见桩。心,钻石,球杆和黑桃使用缩写H,D,C,S。使用缩写K,Q,J,A表示King,Queen,Jack和Ace。每张卡应以空格隔开。第一行应显示甲板,第二行应显示第一和最小桩的牌,第三行应显示第二桩的牌,依此类推。欢迎您使用T而不是10。 我们在这里制作柠檬水-不吸柠檬。我,凯夫·约翰逊(Cave Johnson),不喜欢失败,我们的客户也不喜欢。每场比赛都必须赢 游戏必须是随机的。请勿尝试对单个游戏进行编码。克朗代克手中有7000万亿只手,其中大约90%是可赢的。我对可以产生256张或更多不同手牌的程序感到满意。如果您的语言缺乏一种从计时器等中获取随机数的方式,则假定您可以以适合您的语言的方式获取种子。 我们的客户相当聪明。为了赢得比赛,他们正在玩Draw 3,在甲板上的时间没有限制 谨代表Aperture的所有人(和一切),祝大家好运。我们指望您。 “ 卡罗琳?我怎么关掉这该死的东西? ” 不合时宜:假设使用Windows规则,第3页,非拉斯维加斯纸牌。我试图越过每个t并在每个i上加点,但是请问您是否有任何疑问。祝好运。 输出示例: 5H AS 7C 8S QH ... AH JS 10S JC JH 7C 9D AC 8D 7C . . .
13 code-golf  game 

5
建立可读性索引
所述弗莱士-金凯德可读性算法取决于字计数和音节计数,这两者都不是完全客观,或使用计算机自动化容易的措施。例如,带连字符的“代码高尔夫”算作一个单词还是两个单词?“百万”一词是两个还是三个音节?在此任务中,您将需要进行近似计算,因为精确计数需要花费大量时间,空间,最重要的是,代码。 您的任务是用任何一种会占用英语阅读段落(假定为完整句子)的语言来构建最小的程序(即函数),并计算Flesch Reading Ease指数至8点的公差(以说明音节计数和字数统计的变化)。计算公式如下: FRE = 206.835 - 1.015 * (words per sentence) - 84.6 * (syllables per word) 您的程序必须与下面的参考段落对齐,这些参考段落的索引是使用手动计数计算的: I would not, could not, in the rain. Not in the dark, not on a train. Not in a car, not in a tree. I do not like them, Sam, …

3
Brainfuck中的按位运算符
您的任务是为以下每个二进制运算符创建一个Brainfuck程序。每个程序应从输入中获取一个或两个8位数字(A和B)并计算指定的运算: A XOR B A AND B A OR B A Shifted Left by 1 (circular shift) NOT A 您不必全部实施5。得分的计算方式为: #totalCharacters + {4000 * #problemsNotCompleted} 因此,有效分数是从零(最佳)到20,000(未完成)。 我不在乎您将结果存储在哪里,也不管您是否保留输入。假设8位单元以及仅在右侧需要的空单元数。 您可能会认为数字已经在最适合您的任何内存位置中,因此您无需担心IO操作。
13 code-golf  binary  brainfuck  code-golf  code-golf  ascii-art  random  code-golf  code-golf  code-challenge  sorting  code-golf  code-challenge  java  code-golf  statistics  code-golf  code-challenge  fastest-code  code-golf  math  code-golf  math  kolmogorov-complexity  code-golf  code-golf  array-manipulation  combinatorics  code-golf  kolmogorov-complexity  popularity-contest  underhanded  code-golf  math  floating-point  code-golf  interpreter  code-golf  music  code-golf  code-golf  cryptography  code-challenge  scrabble  code-golf  code-challenge  popularity-contest  quine  code-golf  quine  cryptography  code-golf  kolmogorov-complexity  code-golf  printable-ascii  code-golf  chess  code-golf  math  number-theory  code-challenge  c  code-golf  random  popularity-contest  hello-world  code-shuffleboard  code-golf  compression  grammars  code-golf  tips  code-golf  sequence  code-golf  string  code-challenge  sorting  permutations  code-golf  string  code-challenge  optimization  code-golf  interpreter  code-challenge  string  code-golf  math  number  fibonacci  string  compression  c#  code-golf  chemistry  popularity-contest  math  c  c++  java  code-golf  math  function  code-golf  complex-numbers  code-golf  geometry 

15
文字矩形
您的程序将文本作为输入,至少8个字符长,并且始终由偶数个字符组成。(无需评估输入的正确性)。 您的目标是将该文本显示为矩形。例如,HelloWorld作为输入,显示 Hell d o lroW 规则: 文本顺时针旋转(根据需要开始位置) 它将形成一个闭合的矩形,边长1个字符。 矩形必须包含内部的大部分区域。(只是为了排除以两行显示文本的简单答案) 除文本本身以及必要的填充空格和换行符外,没有其他字符被打印。 作为代码高尔夫球,最短的代码获胜。 在第一个有效答案出现后的10天内选择获胜者。
13 code-golf 

7
写下所有可能的盲文字符
今天早上看着电梯按钮,一个有趣的难题传给我。 您需要生成一个适合2x3网格的所有盲文图案列表。使用散列#表示凹凸,使用连字符-表示平坦区域。 预期输出样本: #- -- -- ## -- -- #- #- -- (and so on...) 规则: 您的程序必须用至少一个字符或一行分隔每个模式。 图案可以以任何顺序生成。 不论盲文字母表实际使用什么样式,都应制作所有图案。完全空白的模式是可选的。 仅应生成唯一的凹凸图案。由于凸起的排列相同,因此以下图案被认为是等效的。在这些情况下,请使用最靠近左上角的图案(即,本示例中的第一个选项)。 #- -# -- -- #- -# #- -# -- -- #- -# 奖励积分,如果你可以把它用于任何工作,X由Ÿ大小的网格。(编辑:在合理范围内。最多4x4足以用于概念验证。) 阅读Wiki文章后,看来有45种模式(包括空白)符合该难题的规则。

5
给定一个公平的硬币作为输入,产生任何特定的不公平结果
使用不公平的硬币很容易生成一个公平的硬币,但是反之则很难完成。 您的程序将收到一个数字X(介于0和1之间,包括0和1),作为输入。输入不能简单地硬编码为源代码中间的数字。然后,它必须返回一个数字:a 1的概率为X,0否则为X。 您的程序仅允许在源代码中使用一种形式的随机数生成器:(int(rand(2))或等效形式),它以相等的概率返回零或一。您可以在代码中随意包含或访问此函数多次。您还必须自己提供功能作为代码的一部分。 您的程序不允许使用任何其他可以用作随机数生成功能的随机数生成功能或外部源(例如时间和日期功能)。它还无法访问任何外部文件或将作业传递给外部程序。 这是代码高尔夫,最短的答案胜出。
13 code-golf  math 

8
确定平方根的连续分数
整数的连续分数n是以下形式的分数: 收敛于n。 a连续分数中的序列通常写为:[a 0 ; a 1,a 2,a 3,... a n ]。 我们将以相同的方式来编写我们的文章,但是在分号之间重复。 您的目标是返回的平方根的连续分数n。 输入:整数n。n永远不会是一个完美的广场。 输出:的连续分数sqrt(n)。 测试用例: 2 -> [1; 2;] 3 -> [1; 1, 2;] 19 -> [4; 2, 1, 3, 1, 2, 8;] 最短的代码获胜。祝好运!
13 code-golf  math  number 

9
在不使用任何保留字的情况下打印前128个素数
显而易见的解决方案是将它们仅打印为字符串,但是是否可以编写较短的代码? 要求: 不应处理任何输入,而输出应采用2 3 5 7 11 13 ...etc 的形式。 完全不使用该语言中的保留字 该语言至少应允许结构化的编程,并具有保留字(否则,第2点将是没有意义的)。 首先,我只考虑了C / C ++,但是在扩展问题的同时仍然试图防止作弊

10
在PrettyFont中输出数字
我设计了一种新字体,称为PrettyFont。我花了很多时间来完善它,但是由于我是一个工人,所以没有时间完成它。因此,它现在仅包含4个字符。有一天,当我变得富有时,完成它将成为我终生的目标,但是现在... 这是PrettyFont:(0、1、2、3) #### ## #### #### # # # # # # # # # # ### # # # # # #### ### #### #### 每个字符宽4像素,高5像素。现在!我想让您编写一个在PrettyFont中输出数字的程序,这样我就可以开始发送要打印的设计了。 规则: 输入为以4为底的字符串编号(仅字符0-3),例如“ 01321”。该程序应至少能够处理字符串中的10个字符。奖励积分是给程序的,该程序采用实际的基数为10的整数而不是字符串。编辑说明:整数红利表示您可以输入任何以10为底的数字,例如54321,并且程序会将其转换为以4为底的数字并将其输出(在本例中为31100301)。 输出将是用PrettyFont打印的数字。输入和输出示例: > "321" #### # ### # #### #### # # # # #### ## # # # ### 可以按单行格式输出的程序有很多好处,如下所示: …

6
输出所有有理数的列表
在所有数学中,总会有一些定理超越所有常识。其中之一是无穷大大小不同的事实。另一个有趣的事实是这样的想法,即许多看起来大小不同的无穷大实际上是相同大小的。偶数和整数一样多,有理数也一样。 这个问题的一般概念是面对无穷无尽的现实。在这个挑战中,您的程序将输出一个列表,该列表将: 在任何特定时间,总有大量条目 最终在整个列表中恰好包含一次(如果可以运行足够长的时间)任何特定的(非零)有理数 包含无数个空插槽(列表中的条目不必要地设置为0) 空插槽比例接近100%的限制 对于每个正整数N,具有无限数量的位置,具有N个连续的空槽 挑战 您面临的挑战是编写尽可能短的程序,该程序将输出具有以下规则的特殊列表: 索引不是平方数的所有条目都应设置为零。因此,第一个条目将为非零,第二个和第三个条目将为零,第四个条目将为非零,依此类推。 所有有理数将采用不正确分数(例如4/5或144/13)的形式进行简化。唯一的例外是零0。 如果您的程序运行足够长时间且具有足够的内存,则所有(正负)有理数最终应出现在列表中。对于任何特定的有理数,所需时间可能是任意大,但始终是有限的时间。 如果运行无限长的时间,则任何非零有理数都不会出现两次。 规则3确实允许某些变化,因为存在无限数量的不同可能的合法输出。 输出将是一行流。每行将具有以下一般形式:5: 2/3第一个数字是条目号,然后是有理数。请注意,1: 0它将始终是输出的第一行。 输出示例片段: 1: 1/1 2: 0 3: 0 4: 2/1 5: 0 6: 0 7: 0 8: 0 9: -2/1 10: 0 etc... 规则,规定和注释 这是代码高尔夫。适用标准代码高尔夫规则。同样,由于输出中允许的变化,您至少需要说明为什么您相信列表将一次包含所有可能的有理数,并且您的解决方案是正确的。 编辑:由于质数确实分散了挑战,因此我将其更改为平方数。这实现了相同的目的,并且缩短了解决方案。

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.