Questions tagged «code-golf»

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

1
编写一个代码高尔夫问题,其中Java胜出[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 7年前关闭。 编写代码高尔夫球任务,使得 任务所需的唯一输入(如果有的话)是来自标准输入的文本,而任务所需的唯一输出是文本到标准输出。 对于任务定义的每种可能的合法输入,只有一个正确的字符串输出字符串。 每个可能的合法输入都少于10000个字符长。 每个正确的输出少于10000个字符长。 成功完成每个输入的任务的最短程序(由StackExchange用户管理编写)是Java。 关联Java程序最短的任务获胜。
19 code-golf 

3
Hashiwokakero:建立桥梁!
Hashiwokakero(日语中的“建造桥梁”)是一个难题,您需要负责将一组岛屿与桥梁连接起来。规则是: 桥梁必须在两个岛之间垂直或水平延伸。 桥梁可能不会彼此交叉。 一对岛最多可通过两个平行桥连接。 每个岛都标记有1到8之间的数字(包括1和8)。连接到孤岛的桥的数量必须与该孤岛上的数量相匹配。 桥接器必须将孤岛连接到单个连接的组中。 您的任务是编写一个解决Hashiwokakero难题的程序。 您可以假设任何给定的难题都是可以解决的,并且只有一个解决方案。 该程序应相当有效。例如,在一般的PC上,解决以下25x25难题的时间不应超过10分钟,并且不应使用超过1 GB的内存。解决7x7之类的小难题需要几秒钟的时间。 输入: 拼图将被给定为字符的2D地图,用数字1来8表示水表示岛屿和空格。必要时,将在行上填充空格以使它们的长度相同。 岛屿将始终在水平和垂直方向上被至少一平方公里的水隔开,以便在它们之间留出空间来放置潜在的桥梁。一个难题中总会有至少两个岛。 您的程序最好从标准输入中读取拼图地图,但是如果您的编程语言需要它,则可以指定其他输入法。 输出: 输出应类似于输入,但必要时用桥代替空格。应使用Unicode框绘图字符─(U + 2500),│(U + 2502),═(U + 2550)和║(U + 2551)绘制桥,以表示水平和垂直单桥和双桥。 如果Unicode字符是一个问题,你可以使用ASCII字符-,|,=和H来代替。 获奖标准: 这是代码高尔夫。以最短的正确且合理有效的解决方案为准。 例子: 拼图(7x7): 2 2 1 1 4 3 3 2 4 3 2 3 1 3 4 2 解: 2─2──1 │1──4─3 3──2║ ║ …
19 code-golf 

1
国际象棋残局:白棋交友
给定一个表示国际象棋当前状态的8x8字母网格,您的程序的任务是找到白色的下一棋,该棋将导致死战(答案将总是一move而就)。 输入项 输入将在STDIN上-8行,每行8个字符。每个字符的含义如下: K/k - king Q/q - queen B/b - bishop N/n - knight R/r - rook P/p - pawn - - empty square 大写字母代表白色,小写字母代表黑色。板的方向将使白色从底部开始向上,黑色从顶部开始向下。 输出量 白色的移动会导致将死,并用代数符号表示。您无需注释何时拍下片段,也无需担心在两个相同的片段之间可以做出相同动作的歧义。 样品输入 例子1 输入: ------R- --p-kp-p -----n-- --PPK--- p----P-r B------- -------- -------- 输出: c6 例子2 输入: --b-r--r ppq-kp-p -np-pn-B -------- ---N---- --P----P PP---PP- …
19 code-golf  chess 

1
独特的Sudoku Finder
挑战: 给定Sudoku开发板的标准输入,找到添加的最小数量以使开发板唯一。 具体/规则: 输入的格式如下(所有空格均有效) 516|827|943 278|394|615 349|615|872 ---+---+--- 98 |4 2|156 465|189|237 12 |5 6|489 ---+---+--- 892|743|561 634|951|728 751|268|394 输出的格式为每行一个数字,格式如(x,y):z-x和y从左上角的一个开始,然后向下和向右递增;z是要加的数字。 在这种情况下,这些都将是有效的输出:(3,4):3,(3,4):7,(5,4):3,(5,4):7,(3,6):3,(3,6):7,(5,6):3,和(5,6):7,如其中任何一项将允许板来解决。 如果输入了唯一/已解决的Sudoku开发板,则该程序不应打印任何内容,甚至不能换行。 该程序对于任何开发板都应在不到一个小时的时间内运行(我建议使用完全空白的开发板或上面带有一个随机数字的开发板进行测试...)。 得分: 以字符为单位的总(行进)代码大小,包括所有空格 ... 奖金: 1/2代码大小:如果程序只打印一个感叹号,并且在没有输入解决方案的电路板时停止。 1/2代码大小:如果程序打印两个感叹号并在输入内部矛盾的木板时停止(两个数字在同一行/列/正方形上相同)。
19 code-golf  game  sudoku 

19
计算海明重量低的海明重量
创建一个程序来计算字符串的汉明权重。获胜者是汉明重量最低的程序。 规则: ASCII字符的汉明加权定义为以1二进制表示形式设置的总位数。 假设输入编码为7位ASCII,并通过您语言所正常使用的任何输入机制(例如stdin,args等)进行传递 将结果以数字形式输出到stdout或您的语言使用的任何默认/正常输出机制。 它应该不用说,但是您必须能够在现实生活中实际运行该程序,才能使其成为有效的解决方案。 优胜者是其代码的汉明权重最低的解决方案。 抱歉,此空格中没有解决方案!好的,现在我已经整理了规则,您可以在空格中进行编码了:) 每个字符的示例: char | binary | weight -----+----------+------- a | 01100001 | 3 x | 01111000 | 4 ? | 00111111 | 6 \x00 | 00000000 | 0 \x7F | 01111111 | 7

3
蜂箱的奇特生活
研究人员最近发现了一个有趣的蜂群,它生活在无限的蜂窝区域中: 每个牢房可以容纳一只蜜蜂或不能容纳一只蜜蜂。实际上,这些生物的生活似乎有点……混乱。可以计算出一个殖民地总是以以下模式开头: (蜂绘制由 灵光布泰 上维基共享资源。这个蜂窝和蜜蜂图像从而被下发布的 CC-BY-SA。 牢骚) 之后,蜜蜂的生命周期分为几代。每一代老蜜蜂死亡而新的蜜蜂孵化,这主要取决于它们细胞的邻居: 如果一只蜜蜂的邻居少于两个,它会因孤独而死亡。 如果一只蜜蜂有三个以上的邻居,则会因拥挤而死亡。 如果一个小区在相邻小区中有两只,三只或四只活蜂,那么下一代会在那里孵化出一只新蜜蜂。 垂死的蜜蜂直到世代末期才死亡,因此它们仍会影响可能会孵化下一代的周围细胞。 现在我们知道了这样一个殖民地的工作方式,我们可以通过任何数量的世代对其进行模拟。 输入项 输入是标准输入给定的单个数字N,以换行符终止。0≤ Ñ ≤150。这是代模拟的数量。 输出量 输出是单个数字,在标准输出上,并且可以选择跟在一个换行符之后,该换行符表示N 代后的活蜂数量。 标准错误的附加输出将被忽略。 样本输入 0 5 42 100 样本输出 6 44 1029 5296 获奖条件 最短的代码胜出,这是高尔夫界的惯例。如果出现平局,则以较早的解决方案为准。 测试用例 有两个测试脚本,包含相同的测试用例: 重击 电源外壳 在这两种情况下都调用:<test script> <my program> [arguments]例如./test ruby beehive.rb或./test.ps1 ./beehive.exe。 我知道只有22个测试,而不是151个(主要是因为解决方案通常很慢)。请避免嵌入确切的测试用例,而不是解决任务。这些脚本可以方便您测试更改是否仍导致程序正常运行。不是您可以使代码适应特定的测试用例。 另一个注意 该任务是2011-W24期间在我的大学举行的高尔夫比赛的一部分。参赛者的成绩和语言如下: 336 – …

17
打印Cantor集
挑战 建立一个N级Cantor集。 Cantor三元组是通过重复删除一组线段的中间三分之二来创建的。 程序接收一个参数N(整数),然后(以控制台或类似方式)打印N个康托集。印刷品只能包含非_下划线()和空格字符。参数可以是正数,也可以是负数,并且符号表示Cantor Set的构造方向:如果N > 0Cantor Set是向下构造的,并且N < 0Cantor Set是向上构造的。如果是N = 0这样,程序将打印一行(_)。 例如: N = 2 _________ ___ ___ _ _ _ _ N = -2 _ _ _ _ ___ ___ _________ N = 3 ___________________________ _________ _________ ___ ___ ___ ___ _ _ _ _ _ _ …

12
填满湖泊
给定ASCII图片格式的土地地形,计算出湖泊将往何处填满。假定有无数的降雨。 例 输入 # ## # #### # ######### ## ########### ## ############# #### ## ############## ##### ################# ####### ######################### ######################### 输出 # ## #@#### #@@@@######### ##@@########### ##@#############@@@#### ##@##############@@##### #################@####### ######################### ######################### 输入将仅包含空格和#标记。每行的长度相同。输出应该是相同的#模式,并带有将在其中积聚水的空间并填充@标记。 底部输入行将始终是所有#号。土地上不会有孔洞或悬垂物。最短的代码胜出。

30
生成通用二进制函数查找表
这与我对发明一种深奥的编程语言的追求是切线相关的。 二进制数0 .. 15的表可用于通过索引操作实现通用二进制函数。给定两个1位输入X和Y,可以将所有 16种可能的功能编码为4位操作码。 X Y F|0 1 2 3 4 5 6 7 8 9 A B C D E F - - - - - - - - - - - - - - - - - - 0 0 0 1 0 1 0 1 0 …

9
从ASCII文本生成PBM位图文件
该PBM(便携式位图)格式是一个非常简单的ASCII黑白位图格式。 这是字母“ J”(从Wikipedia链接复制粘贴)的示例: P1 #这是字母“ J”的示例位图 6 10 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 0 …

15
最低斐波那契挑战!
挑战 在此任务中,您将得到一个整数N(小于10 6),找到仅使用斐波那契数就可以求和N的最小方法-该分区称为Zeckendorf表示。 您可以多次使用任何斐波纳契数,并且如果有多个表示输出,则可以多次使用。 例如,如果输入为67,则一个可能的输出可能是使用斐波那契数1、3、8、55,这也是可用于获取总和67的最小斐波那契数。 输入N在单行上给出,输入由EOF终止。 例子 以格式给出 input: output 0: 0 47: 34+13 3788: 2584+987+144+55+13+5 1646: 1597+34+13+2 25347: 17711+6765+610+233+21+5+2 677: 610+55+8+3+1 343: 233+89+21 3434: 2584+610+233+5+2 约束条件 输入数量将不超过10 6个值。 对于所有输入,您的程序的运行时间均不得超过5秒。 您可以使用任何选择的语言。 最短的解决方案获胜!

10
他们从哪里打来的?
在国际范围内拨打电话时,电话号码前会带有一个代码,以指示该号码所在的国家/地区。这些代码是前缀代码,这意味着任何代码都不是另一个前缀。 现在,今天早些时候,您错过了一个呼叫,并且您很好奇该呼叫可能来自何处。因此,您想查找调用代码。但是,作为前缀代码,您不太确定它的结尾,因此您决定编写一个程序以将调用代码与号码的其余部分分开。 输入值 作为输入,您将收到一个由digits组成的字符串0-9。前几位数字将是下面列出的国家/地区电话代码之一(这意味着前几位永远不会是0)。输入国家/地区电话代码后,其余输入将以任意顺序包含零个或多个数字- 不保证该数字是有效的电话号码。您的程序必须能够处理至少包含15位数字的输入 输出量 您的程序应输出唯一的国家/地区电话代码,该代码是该号码的前缀。有效输出如下: 1 20 211 212 213 216 218 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 …

26
将数字字符串从单词转换为整数
将包含数字作为单词的字符串转换为整数,而忽略前导零。 例子 "four two"-> 42。 "zero zero zero one"-> 1。 假设条件 提交内容可以假定: 输入字符串由空格分隔的数字词组成。 所有单词都是有效的(在“零” ..“九”的范围内)且小写。空输入的行为是不确定的。 输入字符串始终表示范围内的无符号数字,int并且决不能为空字符串。 计分 答案将以字节计分,而字节数越少越好。

2
两个三角形的交点
给定的2D平面4点A, B, C, D,计算三角形的交叉区域的面积OAB和OCD,其中O是该平面的中心,具有坐标(0, 0)。 鼓励以恒定时间复杂度(就算术运算而言)运行的算法,但不强制执行。 规则 每个点都用两个实数表示,分别表示它们的X和Y坐标。 (可选)如果您的编程语言(或某种编程语言库)具有内置Point类型或等效类型,则允许将Point对象作为输入。 输入以4点的形式给出,格式包括但不限于: 8个坐标的列表。 4点的列表,每个点都可以任何方便的格式表示。 2点的两个清单。 等等 您不能假设这些点的特定顺序(逆时针顺序或顺时针顺序) 您不能假定该点O已作为输入传递。换句话说,程序不得使用和使用无关的输入。 您不能假设所有要点都不同。换句话说,三角形可以退化。您还需要处理该案例(请参见下面的测试案例) 绝对或相对差必须小于下面的样本测试用例。10-3 获奖标准 这是代码高尔夫,以字节为单位的最短答案! 样本测试用例 Ax Ay Bx By Cx Cy Dx Dy area 5 1 1 3 -1 0 0 -1 0 5 1 1 3 -1 0 0 0 0 5 1 …

30
很酷的无标题序列
让我们将f n(k)定义为自然数[1,∞)的前k个项的和,其中每个数字重复n次。 k | 0 1 2 3 4 5 6 7 8 9 --------+------------------------------------------------- f_1(k) | 0 1 3 6 10 15 21 28 36 45 deltas | +1 +2 +3 +4 +5 +6 +7 +8 +9 --------+------------------------------------------------- f_2(k) | 0 1 2 4 6 9 12 16 20 …

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.