编程拼图和代码高尔夫

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

5
填满湖泊,二维
这个问题的一维版本非常简单,因此这是一个更难的2D版本。 在标准输入上为您提供了2D的陆地高度阵列,您必须弄清楚下雨时湖泊的形成位置。高度图只是数字0-9(含)的矩形数组。 8888888888 5664303498 6485322898 5675373666 7875555787 您必须输出相同的数组,并用将所有在水下的位置替换*。 8888888888 566*****98 6*85***898 5675*7*666 7875555787 水可以沿对角线逸出,因此在这种配置下不会有湖泊: 888 838 388 最短的代码胜出。您的代码必须处理最大80宽和24高的尺寸。 另外三个例子: 77777 77777 75657 7*6*7 75757 => 7*7*7 77677 77677 77477 77477 599999 599999 933339 9****9 936639 => 9*66*9 935539 9*55*9 932109 9****9 999999 999999 88888888 88888888 84482288 8**8**88 84452233 => 8**5**33 …

11
pi的良好有理逼近
编写一个程序,以分母递增的顺序打印出分母<1000000的pi的所有良好有理近似值。 a/b如果pi比分母不大于的任何其他有理数更接近pi,则它是pi的“良好有理近似值” b。 输出应该总共有167行,并且开始和结束是这样的: 3/1 13/4 16/5 19/6 22/7 179/57 ... 833719/265381 1146408/364913 3126535/995207 最短的程序获胜。

5
只是另一个Perl黑客[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 3年前关闭。 经典代码高尔夫挑战赛。编写最晦涩的Perl程序以打印“ Just another Perl hacker”。这是关于它的维基百科文章。如果它适合3行/每行70个字符,则为奖励积分。

30
你好世界窗口
创建一个窗口,里面说你好世界,别无其他。内部没有任何“确定”或“取消”按钮。它必须只是一个简单的窗口,向您问好世界。我不在乎窗口框架的内容或窗口的外观,但是在窗口内部只能说“ hello world”。 例: 最短的代码胜出。 编辑:对不起,约翰内斯·库恩(Johannes Kuhn)窗口必须实际停留在那儿,它可能不会立即关闭。我没有想到这种情况,因此没有考虑到这一点。 编辑2:我们目前有3个并列答案(20个字符)。任何关于谁应该是赢家的建议都值得欢迎。

10
元高尔夫挑战赛
对于这一挑战,您必须解决这一挑战。 比赛结束了!检查问题的结尾 眼镜: 编写最小的代码(任何语言*)。 答案的分数是以下各项的总和: 代码长度,不带空格。 使用相同语言的答案数的平方。 比赛中最大语言名称的长度减去您语言的长度。 减票减去减票(又名减投票总数) 写出用户的位置和分数。 每个用户只能写一个答案。 最低分获胜。 测试: 因此,在比赛结束时,可能的输入可能是(STDIN): 这些列是:用户名,语言,代码长度(不带空格)和TotalVotes UserA Python 100 1 UserB Perl 30 2 UserC Java 500 3 UserD Brainfuck 499 4 UserE Perl 29 5 如果您的用户名带有“我的用户名”之类的空格,它将变为“ MyUserName”,因此输入将始终恰好有4列。 输出将是(STDOUT): 1 UserE 33 2 UserB 37 3 UserA 103 4 UserD 496 …

18
克里斯·派恩(Chris Pine)的“聋奶奶”
我是RubyLearning的导师,我们为学生提供的练习之一是Chris Pine的书“ Learn to Program ”中的“聋奶奶”练习。描述如下: 编写聋人奶奶程序。无论您对奶奶说什么(无论您输入什么),她都应回答:“ Hu!如果您大喊,她会听到您的声音(或者至少她是这么认为的),然后大喊:“不,自1938年以来!” 为了使您的程序真正可信,每次让奶奶大喊一遍。可能是1930年至1950年之间的任意一年。(这部分是可选的,如果您在方法一章的末尾阅读Ruby的随机数生成器这一节,将会更加容易。)喊“再见”。 经过几次课程迭代后,我尝试查看我能得到多小,现在减少到112个字符: puts (s||='').upcase==s ? "NO, NOT SINCE #{1930+rand(21)}!":"HUH?! SPEAK UP, SONNY!" until(s=gets.chomp)=="BYE" 我很想知道用您选择的语言可以实现几个字符,因为我认为Ruby在这里已经做得很好。 编辑:下面发布的Perl解决方案导致 ruby -nle 'puts($_=="BYE"?exit: $_.upcase!? "HUH?! SEPAK UP, SONNY!":"NO, NOT SINCE #{1930+rand(21)}!")' 表达式的长度为92个字符,而nand l选项的长度为2个字符。
22 code-golf  string 

13
兰顿的蚂蚁ASCII艺术。
画出兰顿蚂蚁的路。 描述 平面上的正方形被涂成黑色或白色。我们任意地将一个正方形标识为“蚂蚁”。蚂蚁在采取的每个步骤中都可以沿四个基本方向中的任何一个行进。蚂蚁按照以下规则移动: 在白色正方形处,向右旋转90°,翻转正方形的颜色,向前移动一个单位 在黑色正方形处,向左旋转90°,翻转正方形的颜色,向前移动一个单位 技术指标 输入:0到725(含)之间的整数N。 输出:一个17 x 17的网格,代表步骤N时蚂蚁的“路径”。 规则 蚂蚁开始朝右(3点钟)。 蚂蚁从网格的中心开始。 分别_#@用于白色方块,黑色方块和蚂蚁。 网格最初是完全白色的。 您可以使用解释语言制作完整的程序或函数。 通过标准输入或参数输入。 例子 更新:案例的N = 450输出错误。 N = 0 _________________ _________________ _________________ _________________ _________________ _________________ _________________ _________________ ________@________ _________________ _________________ _________________ _________________ _________________ _________________ _________________ _________________ N = 1 _________________ _________________ _________________ _________________ _________________ _________________ …

30
最短的电源设置实施
问题定义 打印出给定集合的幂集。例如: [1, 2, 3] => [[], [1], [2], [3], [1, 2], [1, 3], [2, 3], [1, 2, 3]] 每个元素都将打印在单独的行上,因此上面的示例将打印为: [] [1] [2] ... [1, 2, 3] 示例代码(在D,这里是 python示例): import std.stdio; string[][] powerset(string[] set) { if (set.length == 1) { return [set, []]; } string[][] ret; foreach (item; powerset(set[1 .. …

26
最低唯一出价拍卖
感谢所有输入,截止日期已经过去,最终成绩在问题的结尾。 祝贺PhiNotPi取得了相当全面的胜利。 这是一个特大号的最小山的挑战,其目的是建立一个程序,它赢得更多的往往比任何对手的最低独特投标拍卖。 输入项 作为输入,程序将接收之前所有回合的出价,每行一个回合,所有出价用空格隔开,如下所示: 10 4 12 11 12 4 7 3 3 1 2 9 15 1 15 15 9 3 3 21 6 4 3 8 6 13 1 输入的每一列代表一个机器人的出价。第一列是接收程序的出价,其余列按随机生成的顺序排列。感谢hammar和Peter Taylor的投入。 输入作为程序的唯一(唯一)命令行(多行)参数提供: ./test1 '1 2 3 4 5 6 1 2' 这意味着您的程序将需要从命令行运行。请给出一个调用示例作为答案的一部分。 在第一轮中,这仅是一种让您知道要遇到的机器人数量的方法,输入的内容将是0s 行-每个机器人一个。 输出量 您的程序应将其出价输出为1到100(含)之间的整数。 记分员计划 …

28
n的最后一个非零数字!
给定整数1≤N≤1,000,000作为输入,输出N的最后一个非零数字!哪里!是阶乘(从1到N的所有数字的乘积)。这是OEIS序列A008904。 您的程序需要在合理的机器上10秒钟内完成任何有效输入。 测试用例 1 => 1 2 => 2 3 => 6 4 => 4 5 => 2 6 => 2 7 => 4 8 => 2 9 => 8 10 => 8 100 => 4 1000 => 2 10000 => 8 100000 => 6 1000000 => 4 这是一个代码高尔夫球,因此以字节为单位的最短代码胜出!

3
元保龄球高尔夫
您的任务是创建最短的程序(A),该程序输出另一个具有最大唯一字节的程序(B),然后又输出原始程序(A)。从本质上讲,您正在打高尔夫一对我们的羽绒带程序(又称定期重复奎因),而另一半则打保龄球。A和B可能使用不同的语言。 规则和计分 您的最终分数是<number of unique bytes in B> / <number of bytes in A>。最高分获胜。请注意,理论上的最高分数是256。 程序A必须至少一个字节长 程序B不能完全由无操作组成,即,至少一个字符必须以某种方式影响输出。 奎因标准规则适用于这两个程序。值得注意的是,在任何情况下都不允许使用错误提示。 为了保持答案格式的一致性,请从以下类似内容开始回答: # <Language for A> & <Language for B>, Score: <B score> / <A score> = <combined score>

2
存在高尔夫
数学有很多符号。有些人可能会说太多符号。因此,让我们对图片进行一些数学运算。 让我们来一张纸,我们将以此为基础。首先,本文为空,我们将说等同于或。⊤⊤\top真正真正\textit{true} 如果我们在纸上写其他东西,它们也将是正确的。 例如 表示声明和是正确的。PPP问问Q 现在让我们说,如果我们围绕某个陈述画一个圆圈,则该陈述是错误的。这代表逻辑不。 例如: 表示为假,为真。PPP问问Q 我们甚至可以将圆圈放在多个子语句周围: 由于圆内的部分通常在圆上加上一个圆,因此读作,因此表示。我们甚至可以嵌套圈子P 和 QP 和 问P\text{ and }Q不 (P 和 Q )不 (P 和 问)\text{not }(P\text{ and }Q) 读为。不是 ((不是 P) 和 Q )不 ((不 P) 和 问)\text{not }((\text{not }P)\text{ and }Q) 如果我们绘制一个没有任何内容的圆,则表示 或。 ⊥⊥\bot假假\textit{false} 由于空白为真,因此对否定为假。 现在,使用这种简单的可视方法,我们实际上可以表示命题逻辑中的任何陈述。 证明 能够表示语句之后的下一步就是能够证明它们。对于证明,我们有4种不同的规则可用于变换图形。我们总是从一张空纸开始,我们知道这是一个虚无的事实,然后使用这些不同的规则将空纸转换为一个定理。 我们的第一个推理规则是插入。 插入 我们将子图与顶层之间的否定数称为“深度”。插入允许我们以奇怪的深度介绍我们希望的任何语句。 …
22 math  logic  proof-golf 

12
真的是加拿大国庆日吗?
7月1日是加拿大日(是加拿大)!还是?看来,今天的Wikipedia页面上有很多与加拿大相关的内容,但是还有哪一天是加拿大的? 您的任务是编写一个程序或函数,该程序或函数以日期(月和日)作为输入,并在输入的日期上返回或输出Wikipedia页面上“加拿大”的提及数目。一些规则: 日期可以以您选择的任何合理格式输入 您的提交必须从url中提取数据en.wikipedia.org/wiki/Month_Day。 仅"Canada"在标题情况下,才必须搜索并计算包含的子字符串。"Canadian"不算,但是"Canada's"算。只要"Canada"字符串中存在确切的,区分大小写的文本,它就是一个匹配项 该页面的内容被视为相应.html文件中的任何内容(即,如果您以a的形式下载.html并在记事本中打开该页面,将会显示什么内容) 结果可以以任何其他合理方式输出到STDOUT,返回或显示 测试用例: July 1 => 34 May 14 => 1 Oct 31 => 2 July 4 => 2 这是代码高尔夫,所以最短的提交者获胜 (作为无奖励的奖金,我很想看看计数最高的那一天是什么)

8
阅读复古展示
从什么地方偷来的艺术品? 可以使用_|字符以ASCII表示7段数字。这是数字0-9: _ _ _ _ _ _ _ _ | | | _| _| |_| |_ |_ | |_| |_| |_| | |_ _| | _| |_| | |_| _| 您的工作是将艺术作品解析为正常数字。 数字注释 每个数字都有不同的宽度。 1 宽度为 1 3而且7很2宽 245689而且0都3宽 每个数字之间还有一个填充字符。这是完整的字符集: // <-应该是一个空格,但是SE格式将其弄乱了 | | ------------- _ _ | | _ …

2
计算谱系
一点遗传学课 当您仅能访问某人的可见特征或表型时,通常会使用其家族史的血统书来找出每个家庭成员的实际遗传信息或基因型。 当我们将要处理简单的优势时,简单的血统图就足以弄清楚每个人的等位基因或它们拥有的基因的版本。在简单的优势地位下,具有等位基因优势的人(用大写字母表示)将始终具有该版本所代表的特征,而与其他等位基因无关。需要表达两个隐性等位基因(用小写字母表示)。换句话说,优势等位基因总是掩盖该基因的隐性形式。这是血统图的示例: 这里的每一行都是一个世代。圆圈是女性,男性是正方形,水平线是婚姻,垂直线是孩子。很简单 黑色表示隐性表型,白色表示显性。从顶部开始(假设等位基因为A和a),我们知道人2具有aa纯合隐性,因为这是隐性表型的唯一可能选择。现在虽然一个人可能是要么Aa或者AA是显性表型,因为他有一个隐性的孩子,他必须Aa,或杂。您可以为所有其他人执行此操作。如果您没有任何信息可以让您找出第二个等位基因,可以这样进行:A_。 你的任务 您将以世代列表的形式收到血统图,就像[GenI, GenII, etc.]任何理智的格式一样。 每一代都是一个字符串列表,每个字符串代表一个人。 人们由三部分组成-ID,表型和“连接”。 它们的ID是一个可打印的ascii字符,在整个树中,除了A或以外都是唯一的a。(不,图表中的人数不会超过95人)。 它们的表型是A或之一a,A是优势等位基因,并且a是隐性的。 他们的联系是与他们有联系的其他人的ID序列。 同代人之间的联系是婚姻,不同世代中的孩子是父母。 双方都重复了这种联系(即丈夫说他是妻子的丈夫,而妻子说她是妻子的丈夫)。 您必须尽可能弄清楚每个人的基因型。 返回相同的列表,除了人类以外,将他们的基因型放在相同的位置。 必须按顺序输出基因型,Aa而不是aA。 在输入格式上留一点余地就可以了。 这是代码高尔夫球,因此最短答案以字节为单位。 例子 [["0A1234", "1a0234"], ["2A01", "3a01", "4A015678", "5a4678"], ["6a45", "7A45","8A45"]] (The one above) -> [["Aa", "aa"], ["Aa", "aa", "Aa", "aa"], ["aa", "Aa", "Aa"]] [["0A12", "1A02"], ["2A301", "3a2"]] -> [["A_", "A_"], …

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.