编程拼图和代码高尔夫

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

3
给我建一个金字塔
您需要从多维数据集构建金字塔。多维数据集可以从2个角度查看: _____ _____ /\ \ / /\ / \____\ /____/ \ \ / / \ \ / \/____/ \____\/ 这是从2个可能角度的2尺寸立方体的示例。多维数据集的高度为$size斜杠(或反斜杠),而多维数据集的宽度为2 * $size下划线。顶层宽度应包含一个额外的下划线字符。 输入将以包含数字(立方体大小),斜杠或反斜杠(指示方向/角度)以及另一个数字(金字塔高度)的字符串形式提供。 例子: 输入: 1/1 输出: ___ /\__\ \/__/ 输入: 1\1 输出: ___ /__/\ \__\/ 输入: 2/1 输出: _____ /\ \ / \____\ \ / / \/____/ 输入: 1/2 …

1
我们喜欢我们奇怪的难题,我们英国人
在英国的几家报纸上有一种被称为Hidato的游戏。它与Sudoku有点类似,尽管不是在行和块中放置1-9,而是放置数字以使它们从头到尾依次连接,01直到它们都水平,对角线或垂直。 输入将包含由分隔的多行\n,其中包含以空格分隔的块,您可以假定它们是两个字符宽。每个块将是一个数字,一个要填充的空白(由表示--)或一面不能在(XX)中具有数字的墙。 您的输出应与提供的一个相匹配,尽管带有带有数字的空块。请注意,可能没有唯一的解决方案,甚至不存在解决方案 -有些解决方案可能由于其含糊不清而产生多个结果,就像Sudoku一样,而有些解决方案实际上是无法解决的,在这种情况下,您应该给出错误的输出,但是您可以假设输入的格式如下。 使用标准标题Language: XX bytes。打高尔夫球快乐! 例子 输入01 XX 03,01 -- 04,01 --,等应该都是一些回报falsey。 输入: 01 -- -- -- XX 05 输出: 01 03 04 02 XX 05 输入: -- 33 35 -- -- XX XX XX -- -- 24 22 -- XX XX XX -- -- -- 21 -- …

4
ASCII Art射箭箭
编写一个程序或函数,该程序或函数需要一个正整数,并打印或返回根据输入比例缩放的射箭箭头的ASCII艺术插图。 如果输入是1输出 /\ / \ \__/ || || || || || || || || /||\ / || \ / || \ // \\ / \ 如果输入是2输出 /\ / \ / \ / \ \ / \____/ | | | | | | | | | | | | | | …

4
在高维格子状图中找到最大的独立集合
对于给定的正整数n,请考虑所有长度为二进制的字符串2n-1。对于给定的字符串S,令其L为一个长度数组,n其中包含1每个长度n为的子字符串中s 的数量S。例如,如果n=3和S = 01010再L=[1,2,1]。我们称L的计数数组S。 我们说两个字符串S1和S2相同长度的比赛,如果他们各自的计数阵列L1和L2具有这样的性质L1[i] <= 2*L2[i],并L2[i] <= 2*L1[i]为所有i。 任务 为了n从开始增加n=1,任务是找到最大的字符串集的大小,每个字符串的长度,2n-1以便没有两个字符串匹配。 您的代码应为的每个值输出一个数字n。 得分了 您的分数是最高n的,没有人为您的任何答案发布更高的正确答案。显然,如果您拥有所有最佳答案,那么您将获得n您发布的最高分数。但是,即使您的答案不是最佳选择,如果没有其他人能打败它,您仍然可以获得分数。 示例答案 因为n=1,2,3,4我得到2,4,10,16。 语言和图书馆 您可以使用任何喜欢的语言和库。在可行的情况下,能够运行您的代码将是一件好事,因此,请尽可能提供有关如何在Linux中运行/编译代码的完整说明。 领先的作品 5由MartinBüttner在Mathematica中撰写 6由Reto Koradi用C ++编写。值是2, 4, 10, 16, 31, 47, 75, 111, 164, 232, 328, 445, 606, 814, 1086。已知前5个是最佳的。 7由Peter Taylor在Java中撰写。值是 2, 4, 10, 16, 31, 47, 76, 111, 166, 235。 9由joriki用Java编写。值是2, …

3
使用Python导入打高尔夫球
什么时候在Python中使用内联单次使用导入有益? 例如: __import__("x").doSomething() 以上是否比以下短? import x x.doSomething() 要么 from x import* doSomething()
16 code-golf  tips  python 

1
写一个D * mn明确的审查员
审查器是互连网上使用的常用工具。但是他们经常审查太多的单词,因此使读者感到模棱两可。有时,他们没有进行足够的审查,因此这些词仍然令人反感。您的任务是解决该问题。 你的任务 编写一个包含两个列表和一个字符串的程序/函数/程序。第一个列表将是您语言中所有单词的字典,例如:["hello", "goodbye", "belgium", "offensive", "jumping", "hypercool"]。下一个将是第一个列表的子集,其中包含该语言中的所有令人反感的单词:["belgium", "offensive"]。确保这些列表中的单词仅包含小写字母。 该字符串是您必须检查的短语。它将由字典中的单词组成,并用空格分隔:"Goodbye offensive belgium" 返回值将是被检查的短语。但是,您必须以某种方式进行审查。具体来说,对于攻击性列表中的每个单词,您必须检查尽可能多的字母,同时在主词典中保持完全明确。因此,这里将是:Goodbye o******** b******。 澄清说明 您的代码必须不区分大小写地解释单词,但以大写字母返回。 如果有多个最佳答案,请选择其中任何一个。 如果无法进行明确的审查,则审查具有最少其他可能解释数量的单个字母(如果可能的话,则由您选择)。 测试用例 ["hello", "goodbye", "belgium", "offensive", "jumping", "hypercool"] ["belgium", "offensive"] "Goodbye offensive belgium" -> "Goodbye o******** b******" ["word"] ["word"] "word" -> "****" ["hot", "hat", "bat", "had"] ["hat"] "hat" -> "*at" or "h*t" …

5
Code Golf:解析Google结果
当您在Google搜索结果中的内容页面时,用户可以看到绿色链接,显示结果的第一页。 使用任何语言,以最短的形式(以字节为单位)以列表的形式显示到stdout的那些链接。这是一个有关堆栈交换查询的第一个结果的示例: 输入: 您选择:URL(www.google.com/search?q=stackexchange&ie=utf-8&oe=utf-8)还是stackexchange 输出: french.stackexchange.com/, stackoverflow.com/, fr.wikipedia.org/wiki/Stack_Exchange_Network, en.wikipedia.org/wiki/Stack_Exchange,... 规则: 您可以使用URL缩短器或其他搜索工具/ API,只要结果与搜索https://www.google.com相同即可。 如果您的程序具有打开网络浏览器之类的副作用,这样可以使隐藏的Google html / js页面在呈现时可以读取,这是可以的。 您可以使用浏览器插件,用户脚本... 如果您不能使用标准输出,请使用例如将其打印到屏幕上。弹出窗口或JavaScript警报! 您不需要结尾的/或开始的http(s):// 您不应显示任何其他链接 最短的代码胜出! 祝好运 ! 编辑:本场高尔夫球比赛于15年8月8日结束。

2
总理书呆子狙击模式
一年中最长的一天-这会浪费一些额外的时间... 总览 请注意,这不是普及竞赛,也不是图形输出挑战-您只需要输出65,536个零和一的字符串即可。问题底部的堆栈片段将显示为256 x 256黑白图像,并计算您的官方成绩。然后,您可以保存图像并将其与代码一起上传到答案中(因为字符串输出不适合30,000个字符的Stack Exchange答案)。 计分 图像的分数是其各个像素的分数之和。单个像素的得分是与所得分像素颜色相反的每个非正交,素数距离像素的子得分总和。对于每个这样的像素的子分数是其中是主要的距离。1/pp 在此问题的上下文中,这些术语具有以下定义: 非正交:如果像素不在同一行且不在同一列中,则该像素与被计分的像素不正交。 质数距离:如果一个像素与要刻划的像素相距一个质数距离,则它们之间的距离就是恰好是质数的欧几里德距离。尤其是,距离是环形测量的最小距离-左上像素是到sqrt(2)右下像素的距离(所有4条边都环绕)。 相反的颜色:如果像素的值总和为1,则该像素与被计分像素的颜色相反。即,第一个为0,第二个为1,或者第一个为1,第二个为0。 Stack Snippet包含示例代码,该代码显示如何对图像评分,但不包括任何优化或有效方法,仅提供正确代码即可对最终图像进行评分。 如果代码中的任何内容不正确,请在注释中或在chat中让我知道。 JavaScript不一定是回答此特定挑战的最佳语言。请注意,Snippet代码故意不提供有关更快方法的任何线索。只会引入现有答案中已经证明的效率。 可视化 得分像素 为了直观了解评分像素的分布,此处(紫色)是256 x 256图像的像素(128、128)的非正交素距离像素: 随机图像 这是从示例Python 3答案中随机生成的图像。它的分数为138,267.64,可为您提供一些优势。 输入值 该代码不需要输入。 输出量 该代码应输出65,536个零和一的字符串,代表黑白256 x 256图像的像素。这些数字应该是一个连续的字符串,没有分隔符。如果输出到文件,则可能会发现复制和粘贴更加容易,但这取决于您。 您的代码还可以输出您认为有用的其他信息,只要可以将字符串复制并粘贴到堆栈片段中即可。例如,您可能希望定期将最佳字符串输出到文件,并将最佳分数输出到STDOUT,从而允许用户选择何时停止搜索。 堆栈片段 正如指出的SP3000,该片段正在采取10分钟,计算得分,这是一个有点过于缓慢,甚至故意低效的参考实现。我已经对Sp3000的建议改进进行了编辑,该改进是对计分的像素偏移进行预先计算,现在需要几秒钟来计算分数。 显示代码段 canvas = document.getElementById('canvas') ctx = canvas.getContext('2d') scoreArea = document.getElementById('scoreArea') pastedData = document.getElementById('pastedData') timeout = 0 primes …

16
给我编码一个cookie
挑战 根据输入编码一种ASCII cookie。 输入值 饼干种类。这是三个字符串之一:“普通”,“巧克力”或“坚果”。可以是函数参数,stdin(或最接近的等效参数)或文件参数。 输出量 ASCII cookie。见下文。 一定是 ___ / \ | | \___/ 对于普通输入, ___ /. .\ | . | \___/ 最后输入巧克力 ___ /^ \ |^ ^| \___/ 用于坚果输入。 其他资讯 这是我的第一个挑战,这很简单。建设性的反馈意见非常感谢。 使用任何手段来这样做。 尾随空格很好。 这是一场标准高尔夫挑战赛,因此在9天(2015年8月12日,星期三)结束时最短的比赛获胜。 谢谢! 获胜者是Jakube使用Pyth的41个字节。谢谢所有参加的人。我现在要自己承担一些更复杂的挑战。

1
溜槽
这是梨和钢 溜槽的五幅图像: A:B:C:D:E: 这些只是缩略图,请单击它们以查看完整尺寸! (我是用Algodoo制作的。) 此类图像始终具有以下属性: 它们始终是白色背景的400×400像素。(由于SE图像有损压缩,因此可能不是完全白色。) 它们有1至4个相同的梨,每个梨都以(几乎)任何方式旋转和定位。 他们有一个垂直的钢制斜槽,直达图像的底部。 除了滑槽的底部以外,滑槽和梨形边界框(例如边界框)永远不会触碰或超出图像边界。 梨的边界框永远不会相互重叠,也不会与斜槽重叠。 如在B,C和D中,梨可能在滑槽的倾斜部分下面。(因此,溜槽的边界框可能与梨的边界框重叠。) 溜槽可以有任何水平和垂直位置,只要有足够的空间让梨的所有包围盒自由地放置在其上即可(不会测试“几乎不适合”的情况),并且可以看到部分圆柱。 挑战 编写一个程序,获取这样的图像,并在相同的位置放置滑槽,再输出另一个400×400的图像,但是将梨重新放置,使它们都位于滑槽的上方(这样它们就可以掉入其中并被榨汁,没什么)。 输出图像的要求是: 输入图像中的所有梨都必须重新放置,以使其位于滑槽上方,漏斗左右边缘之间。(以上的边缘是不正常。) 每个梨必须保持其旋转角度。(因此,您应该剪切和粘贴梨子,而不是重新绘制它们。) 梨不得重叠或彼此接触或与滑槽接触。(但是,梨形边框可能会重叠。) 梨不能触摸或超出图像范围。 以下是这五个样本图像的有效输出示例: A:B:C:D:E: 这些只是缩略图,请单击它们以查看完整尺寸! 请注意,E的输入图像已经是有效的输出,但是在技术上不必要时重新排列梨就可以了。 细节 通过stdin /命令行/函数调用获取图像的文件名或原始图像数据。 将图像输出到具有您选择的名称的文件,或将原始图像文件数据输出到stdout或仅显示图像。 可以使用任何常见的无损图像文件格式。 可以使用图形和图像库。 到处都有一些不正确的像素(由于有损或其他原因)并不重要。如果我无法从视觉上分辨出任何错误,那么可能就可以了。 以字节为单位的最短代码获胜。Tiebreaker是票数最高的职位。

2
XKCD:键盘混搭异常
另一个XKCD启发的比赛。这是基于Keyboard Mash的。 给定一个输入字符串,假定大多数字符已在标准US QWERTY键盘的单行上键入,请识别出异常字符。输入字符串可以包含移位的击键,但它们不包含回车键(Enter),受CTRL / ALT影响的字符,空格,制表符和退格键(因为这样做很愚蠢)。数字键盘将不被视为此挑战的键盘一部分。 挑战在于输出与单个字符串中大多数单个字符不在同一键盘行上的字符。输出应仅包含每个异常字符一次,并且不包含其他字符。 如果两行或更多行中的异常字符数相等,则按以下顺序确定抢七局: 最短的唯一列表 最上一行 输入值 通过STDIN,ARGV或函数参数的字符串 输出量 STDOUT的字符串或函数返回。每个异常字符应该只出现一次,但是不需要排序。 例子 输入: FJAFJKLDSKF7KFDJ 输出: 7 输入: ASDF11111 输出: ASDF 输入: lkjrhsDdftkjhrksRjd 输出: rtR 输入: } * 3%&2098 @ $ 2k234#@ $ M 输出: } 返回最上面的行列表 输入: ASD!@#Vcx 输出:!@# 返回的最短唯一列表 输入: ASdf1233qwER 输出: 123 返回的最短最短列表 输入: 12334QWTTSDFDSXVVBBX …
16 code-golf 

8
打印出最小的完美平方平方
平方正方形是仅使用其他正方形平铺正方形的过程。如果此平铺仅使用不同大小的正方形,则认为它是完美的。在尽可能小的完美方方是一个112x112使用21个不同的正方形瓷砖广场。 我在下面创建了这个正方形的ascii艺术版本: ################################################################################################################ # ## ## # # ## ## # # ## ## # # ## ## # # ## ## # # ## ## # # ## ## # # ## ## # # ## ## # # ## ## # # ## ## # # ## ## …

2
火柴方程
在此挑战中,您的任务是像这样分析给定的“火柴方程”。 ...并通过重新排列匹配项来找出是否可以将其转换为有效方程。如果这样,您将输出最少的移动次数以及由此产生的方程式。 输入值 输入是一个字符串,可以从STDIN读取,可以作为函数参数,甚至可以存储在文件中。它是代表火柴棍排列的方程式,可以使用以下EBNF进行描述: input = term, "=", term ; term = number | (term, ("+" | "-"), term) ; number = "0" | (numeralExceptZero , {numeral}) ; numeralExceptZero = "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ; numeral = …
16 code-golf 

7
骑士留在棋s上的概率是多少?
给定棋盘的大小和骑士的初始位置,计算出k骑士移动后进入棋盘内部的可能性。 注意: 骑士以相等的概率进行所有8个可能的动作。 骑士一旦离开棋盘,便无法再回到里面。 输入值 输入以逗号分隔,形式为: l,k,x,y 其中l国际象棋棋盘的长与宽k是,骑士将要移动的次数,是骑士x初始位置的x位置,以及y的y位置。请注意,这0,0是板的l-1,l-1左下角,也是板的右上角。 算法: 从骑士的初始坐标开始。对该位置进行所有可能的移动,并将这些移动与其概率相乘,对于每个移动以递归方式调用该函数,请继续执行此过程,直到满足终止条件为止。终止条件是骑士在国际象棋棋盘外面,在这种情况下返回0,或者在完成所需的移动次数后返回1。 如我们所见,递归的当前状态仅取决于当前坐标和到目前为止完成的步骤数。因此,我们可以以表格形式存储此信息。 信用 这项挑战最初来自根据CC BY-NC-ND 2.5 IN许可发布的crazyforcode.com博客。对其进行了少许修改,使其更具挑战性。
16 code-golf  chess 

30
反铁磁排序
反铁磁性是什么IBM研究人员使用从跳1个TB的磁盘至100兆兆字节盘以相同的量的原子。 在具有反铁磁性的材料中,通常与电子自旋相关的原子或分子的磁矩以规则的方向排列,相邻的自旋(在不同的子晶格上)指向相反的方向。 您的工作是编写一个程序,以绘制反铁磁原子的顺序,如上图所示。尽管您可能有更多对,但您必须至少能够有四对。 每对必须显示如下,尽管它们必须是实际的箭头: 上下 下来 上下 您的输出可以是ascii art或图形输出。 您只能创建一个函数或整个程序,但必须输入并绘制那么多对。仅带单词的示例: 输入1 上下 下来 上下 输入2 向上向下向下 下来下来 向上向下向下 可接受的箭头: ↑ 和 ↓ ⇅ 和 ⇵ /|\ 和 \|/ 易于阅读,请以X字节的语言格式填写答案。最少的字节数获胜!

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.