Questions tagged «code-golf»

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

22
高尔夫ASCII艺术
让我们尝试打高尔夫球代表高尔夫球手的这门ascii艺术作品: '\。。|> 18 >> \。'。| O >>。'o | \。| / \。| //。” | jgs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ 资料来源:JGS- http : //www.retrojunkie.com/asciiart/sports/golf.htm 规则: 不允许输入 不允许外部资源 输出必须完全是此文本,并以等宽字体(OS控制台,JS控制台,HTML <pre>标记等)显示,包括前导和尾随换行符。 允许使用双引号或双引号(当您输出字符串时,JS控制台会添加双引号,可以) 最好的答案是在任何一种语言中使用较少字符的答案。 玩得开心!

17
创建一个HQ9 +解释器
编写此代码的目的是为HQ9 +编程语言创建一个解释器。此编程语言 有4个命令: H-打印“你好,世界!” Q-打印程序的源代码 9-打印歌曲“ 99樽啤酒”的歌词 + -增加累加器 规则: 由于未定义累加器,因此您可以忽略命令+ 您的程序应提示您输入(此输入将是源代码)或从文件中读取源代码 不允许将“ 99瓶啤酒”的歌词放入文件中,并从文件中读取文本 不允许使用GZip或BZip等压缩算法来压缩歌曲文本:您必须创建自己的压缩算法。这不一定是复杂的算法,但是请尝试尽可能地压缩文本(请记住:这是一个代码高尔夫球,字节数最少的代码将获胜) 如果源代码包含的字符不是H,Q,9或+,则在运行任何命令之前输出“源代码包含无效字符” !这意味着,例如,如果源代码是H1,则在输出Hello, world!之前不要输出Source code contains invalid characters。否,立即输出Source code contains invalid characters 如果您的解释器同时接受大写和小写字符,则您的字符数为-8 祝好运!

30
储物柜与饼干:五元素序列
挑战 一个简单的“间谍与间谍”挑战。 编写具有以下规范的程序: 该程序可以用任何语言编写,但不得超过512个字符(如本网站的代码块所示)。 该程序必须接受5个带符号的32位整数作为输入。它可以采用接受5个参数的函数,接受单个5元素数组的函数或从任何标准输入中读取5个整数的完整程序的形式。 程序必须输出一个带符号的32位整数。 当且仅当五个输入(被解释为一个序列)与程序员选择的特定算术序列(称为“键”)匹配时,程序才必须返回1。对于所有其他输入,该函数必须返回0。 算术序列具有以下特性:该序列的每个连续元素都等于其前任元素加上某个固定常数a。 例如,25 30 35 40 45是算术序列,因为序列中的每个元素都等于其前任加5。同样,17 10 3 -4 -11是算术序列,因为序列中的每个元素都等于其前任加-7。 序列1 2 4 8 16和3 9 15 6 12不是算术序列。 密钥可以是您选择的任何算术序列,唯一的限制是不允许涉及整数溢出的序列。也就是说,序列必须严格增加,严格减少或所有元素相等。 例如,假设您选择键98021 93880 89739 85598 81457。如果输入(按顺序)与这五个数字匹配,则程序必须返回1,否则返回0。 请注意,保护钥匙的方法应该是您自己新颖的设计。同样,不允许以任何非零概率返回假阳性的概率解。特别是,请勿使用任何标准密码哈希,包括用于标准密码哈希的库函数。 计分 每个字符计数中最短的未破解提交将被宣布为获胜者。 如果有任何混淆,请随时提出或评论。 反挑战 鼓励所有读者,包括提交了自己程序的读者,“破解”提交的内容。当提交的密钥发布在关联的注释部分时,该提交将被破解。如果提交的内容持续存在72小时而不被修改或破解,则被认为是“安全的”,随后在破解方面的任何成功都将被视为比赛的原因。 有关更新的破解分数政策的详细信息,请参见下面的“免责声明”。 破解的提交将被排除在争用之外(前提是它们“不安全”)。不应对其进行编辑。如果读者希望提交新程序,则应在单独的答案中提交。 得分最高的饼干将与获奖程序的开发者一起宣布为获奖者。 请不要破解您自己的提交。 祝你好运。:) 排行榜 倒数第二的排名(在丹尼斯提交的CJam 49提交文件中处于安全状态)。 安全储物柜 丹尼斯CJam 49 CJam …

30
确定一个数字是否可以被13整除(不使用13本身)。
如果您选择接受它,那么您面临的挑战是创建一个函数或程序,如果给定数字可被13整除,则输出“是”,否则将输出“否”。 规则: -不允许在任何地方使用数字13。 -也没有针对13的cop-out同义词(例如使用15-2)。 -如果不使用模数,将获得奖励积分,如果不使用除法,则将获得额外奖励。 评分: -您的分数将是代码中的字节数(不包括空格)乘以您的奖金。 -如果您不使用模数,则该奖励为0.90;如果您不使用除法,则该奖金为0.90。 -如果您都不使用,则该奖励为0.80。 -分数越低越好。 输入将始终是大于0且小于2 ^ 32的整数。 您的输出应该是简单的“是”或“否”。 澄清: -可以采用一些绕行方法来生成数字13。不允许使用简单的算术同义词,例如(10 + 3)。 - 如果给定的数字可被13整除,则函数或程序必须按字面输出 “是”或“否”。- 与往常一样,建议(但不是必须)明智的解决方案。

25
给定范围内有多少个IP地址?
受到...的启发 网络-如何计算给定范围内有多少个IP地址? 编写一个程序或函数,该程序或函数将两个字符串作为输入,每个字符串都是用标准的点分表示法表示的IPv4地址,并输出或返回此范围所覆盖的IP地址的数量,包括输入的两个IP地址。 您不得使用旨在解析IP地址的任何外部代码,库或服务。(可以接受其他字符串处理标准库函数。) 所有2 ^ 32个IP地址均相等。不区分广播,E级等。 正常的代码高尔夫球规则适用。 例如: "0.0.0.0","255.255.255.255" returns 4294967296. "255.255.255.255","0.0.0.0" also returns 4294967296. "1.2.3.4","1.2.3.4" returns 1. "56.57.58.59","60.61.62.63" returns 67372037. "1","2" is invalid input. Your code may do anything you like.

3
醉酒的打字员
背景 一位打字员回到家后,发现一些重要的信件仍需加重。为了确保他审核文本正确,他将文本字符bh vjaracter t0确定为6he。但是,他仍然设法错过了一些钥匙。 您的任务是编写模仿其ttping的cose。为了最大程度地减少错误的发生,代码应尽可能短。 键盘 键盘是标准的ANSI键盘。在下图中,红色文本显示了键的宽度。所有行均为1单位高,未标记的键为1单位宽。 这些键执行以下操作(列出只是为了防止混淆): Shift本身不会执行任何操作,但是如果在常规键之前立即按Shift键,则会更改结果。 CapsLock切换Caps Lock。如果启用了Caps Lock,则字母键将输出反大小写的字母。 Backspace删除最后输出的字符(如果有)。 Tab,Return和Space分别插入一个制表符,换行符和空格。 Ctrl,Alt只是用于演示。他们(并完全缺少键盘)什么也不做。 所有字母键都会产生标记的小写字母。如果在它们之前按Shift键,则会产生大写字母。Caps Lock可逆转情况。 所有其他键产生中间标记的字符。如果在他们之前按Shift键,则会产生在顶部标记的字符。 打字 为了生成一个字符,打字员在键盘上找到它并检查是否需要按Shift键。如果是这样,他首先尝试按住Shift键。然后,他立即尝试按目标键并释放所有Shift键。在尝试按目标键之后,他必须严格释放Shift键。 然而,由于醉酒,他经常错过钥匙。这可以通过以下方法模拟:选择一个随机角度(均匀地),在该方向上将按压位置移动一个随机量(具有适当的分布),然后按下落下的按键。 挑战 作为输入,您将收到要写入的文本和指示醉酒程度的数字参数。您将输出醉酒打字员键入的文本,以及上述算法生成的错别字。 技术指标 输入文本将仅包含可打印的ASCII,制表符和换行符。 输入参数是某种标量数值。可以在答案中指定其范围,但增大该值应增加平均未命中距离,反之亦然。 您可以将键盘缩放到任何内部尺寸;上面的单位大小仅是示例。 使用的坐标必须精确到关键高度的千分之一。 该程序应为每次调用产生不同的结果。(诸如srand(time(NULL));每秒更改之类的东西就足够了。) 遗漏距离的分布可以是正态分布,也可以是其他类似的分布(较小值的大概率,对于较大值则迅速减小;例如,负指数就可以了)。 打字员的手指只有一点。无需考虑其半径。 打字员可以瞄准钥匙内的任何地方,只要它不在边缘上即可。中心,恒定位置等有效。 选择Shift键的方式可以是任何方式。允许进行恒定选择,但是如果错过Shift键的地方到此结束,则两个Shift键都需要起作用。 如果按住Shift键,则仅会影响该键(即在另一个键之前尝试Shift键并成功按下)。按下Shift键的“普通”键不起作用。 Shift键仅在真实键之前被按下并快速释放,因此如果按住错误的键,则不会重复字符。 示例I / O 以下所有示例均来自参考解决方案,该解决方案使用距离的正态分布并始终选择左Shift。选项卡以SE表示为空格,但应显示在实际输出中。 输入: Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed posuere …

30
交换两个给定的索引
给定一个正整数数组和两个不同的有效索引,则返回该数组,其中对应于两个索引的两个元素被交换。 您可以选择使用0索引或1索引,但是下面的测试用例将使用0索引。 array m n output [1,2,3,4] 0 1 [2,1,3,4] [5,8,9] 0 2 [9,8,5] [11,13,15,3] 1 2 [11,15,13,3] [11,13,15,3] 2 1 [11,15,13,3] [11,15,15,3] 2 1 [11,15,15,3] 这是代码高尔夫球。以字节为单位的最短答案将获胜。有标准漏洞。

30
删除前导和尾随零
给定一个仅包含非负整数的非空列表/数组,如下所示: [0, 0, 0, 8, 1, 4, 3, 5, 6, 4, 1, 2, 0, 0, 0, 0] 输出已删除尾随和前导零的列表。 输出为: [8, 1, 4, 3, 5, 6, 4, 1, 2] 其他一些测试用例: [0, 4, 1, 2, 0, 1, 2, 4, 0] > [4, 1, 2, 0, 1, 2, 4] [0, 0, 0, 0, …

14
两只猫在奎因
挑战 制作两个程序A和B,它们都是相同语言的cat程序。连接时,AB(也应使用相同的语言)应该是一个喹。 例如,假设hello和world都是使用XYZ语言的cat程序。如果helloworld是所说语言的奎因,则您的解决方案有效。 对于那些不熟悉猫和奎因的人来说,猫程序是一种完全打印通过stdin给它的东西的程序,而奎因是一种可以打印其自己的源代码的程序。 计分和规则 串联的AB程序的总字节数就是您的分数。因为这是代码高尔夫球,所以最低分获胜。 禁止出现标准漏洞 输入必须来自stdin,输出必须进入stdout。 cat程序不需要参数。他们只需要将stdin复制到stdout。 当没有任何输入程序但没有必要为其他输入正确运行(但是可能)时,该程序应该起作用。 如果仅打印一次源代码,仅需一次终止即可。 至少需要一个字节长。 A和B可以是同一程序。 BA不必是密码子,甚至不必是有效的程序。
30 code-golf  quine 

4
生活可以丰富多彩!
栩栩如生的细胞自动机中的每个细胞仅需要一位来表示,因为它只能是生的或死的。这意味着只有两种颜色。很无聊。 普通图像的每个像素为24位(RGB中的每个像素为8位)。这意味着在以像素为单元格的正常图像中,您可以一次模拟24个逼真的游戏! 挑战 您的任务是编写一个程序,该程序将逼真的蜂窝自动机的一代规则应用于24位深度图像(以您喜欢的任何已知格式),然后输出结果图像。 24层中的每一层都将使用相同的栩栩如生的规则集,严格在其自己的层之内。这24层不会互相影响。 也 零是死细胞,一个是活细胞。 边界条件是周期性的(形成圆环)。 任何图像尺寸都可以。 输入输出 您的程序需要通过stdin或命令行(或您的语言最接近的等效语言)接受3个参数: 输入图像文件的名称。 由0到8的数字组成的字符串,以递增的顺序表示新单元格的诞生时间: 如果数字d在字符串中,则死细胞在有d个存活邻居时会恢复活力。 示例:3正常的生命 -刚好有3个存活邻居的死细胞复活。 从0到8的数字字符串,以递增的顺序表示现有的单元格何时存活: 如果数字d在字符串中,则具有d个存活邻居的存活细胞将存活到下一代,否则它们将死亡。 示例:23正常生命-只有具有2或3个邻居的细胞才能存活到下一轮。 请注意,始终使用摩尔街区。阅读这个或这对精确什么定义了一个栩栩如生的自动机和许多有趣的规则集的更多信息。 1代以后的输出图像应显示或另存为out.png(bmp或其他任何形式)。 投稿 以字节为单位的最短代码获胜。 对于某些非平凡的规则集,您需要至少包含一个测试映像及其三个后继代。如果您想不出更好的方法,请使用您的头像和正常的生活规则。 如果您愿意,可以使用这种Gosper Glider Gun,其中唯一的活物在绿色的128层中(只能确保在正常的Life中工作): 强烈建议张贴有趣的序列甚至动画。

7
你好!我是代码高尔夫的警长!
几个月前使用Twitter的任何人都有可能了解'Howdy!我是X“模因的警长。在那里,用表情符号绘制了一个简单的警长图像,并根据主题进行了更改。因此,我认为现在是Code Golf警长的时候了。在这里,他是: ### ##### ### ### ### # ##### # # # # # # # # # # ### # # # # # # # # 特别地,该像素具有一个字符宽度为一个字符高度的“像素”。要生成他,参数将为1和1。 如果他要比他高个子该怎么办? ###### ########## ###### ###### ###### ## ########## ## ## ## ## ## ## ## ## ## ## ###### ## ## …

15
ABAA / ABBB:生成此递归2D模式
当我遇到以下有趣的递归模式时,我正在搞无限电阻网络(长话不说): |-|| |--- 该图案的每个实例的宽度是其高度的两倍。要从图案的一个层次转到下一个层次,请将该矩形分成两个子块(每个子块为NxN正方形): AB = |-|| |--- so A = |- |- and B = || -- 然后根据以下模式复制和重新排列这些半部分: ABAA ABBB giving |-|||-|- |---|-|- |-|||||| |------- 挑战 编写一个程序/函数,给定一个数字N,输出N该递归设计的第th次迭代。这是高尔夫。 I / O格式相对宽松:您可以返回单个字符串,字符串列表,二维字符数组等。允许使用任意尾随空格。您也可以使用0或1索引。 例子 模式的前几次迭代如下: N = 0 |- N = 1 |-|| |--- N = 2 |-|||-|- |---|-|- |-|||||| |------- N …

14
生成TeX以排版Sierpinski三角分形
挑战 编写输出TeX(LaTeX)数学方程式代码(如下所示)的代码,该代码将对5级的Sierpinski Triangle Fractal进行排版。最短的代码胜出。 细节 TeX(和LaTeX等朋友)是一个复杂的排版系统。它可以为数学公式呈现任意嵌套的复杂表达式。巧合的是,这种“嵌套复合体”也描述了分形。以下是使用MathJaX呈现的 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx{{{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}^{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}_{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}}^{{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}^{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}_{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}}_{{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}^{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}_{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}}} 通过以下由嵌套的上标和下标组成的纯文本数学方程式代码: {{{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}^{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}_{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}}^{{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}^{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}_{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}}_{{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}^{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}_{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}}} 请注意,这只是5级嵌套。在TeX&Co中,您不需要生成$...$或不需要$$...$$其他标记来开始/结束数学方程式。您可以在许多在线编辑器中预览生成的TeX,例如:http : //www.hostmath.com,但您可以找到许多其他人也一样。这个问题的灵感来自与朋友的讨论。 更新资料 有一个类似的问题,但是它更笼统,将产生不同的解决方案。我想看到非常固定的简单代码的真正kolmogorov复杂性,它在一个系统(TeX)中是完全显式的,而在另一个系统中则是完全显式的。这也解决了n而不是5级注释。

30
从角落重建矩形阵列
我曾经有一个美丽的矩形阵列。这是非常对称的,但是不幸的是它已经崩溃了,现在我只有左上角。您的任务将是重建原始阵列。 您的程序将收到一个二维整数数组。为了便于解析,您可以假定它们都在1到9之间。您的任务是反转数组的列,行和行和行,将结果角拼接在一起,然后返回结果数组。 您可以假设数组尺寸至少为1x1。 测试用例: Input: 1 2 3 4 5 6 Output: 1 2 3 3 2 1 4 5 6 6 5 4 4 5 6 6 5 4 1 2 3 3 2 1 Input: 1 Output: 1 1 1 1 Input: 9 9 9 Output: 9 9 …

6
在Pi中查找素数
素数无处不在... 他们躲在Pi里面 3.141592653 58979 3238 462643 3832 795028841 971693993751 让我们得到这些素数! 挑战 给定一个输入整数n>0,找出多少素数隐藏在的前几个n数字之内Pi 例子 因为n=3我们应该在中搜索素数[3,1,4]。有2个质数(3,31),因此您的代码应输出2 For n=10,前10位数字是,[3,1,4,1,5,9,2,6,5,3]并且您的代码应输出,12因为[2, 3, 5, 31, 41, 53, 59, 653, 4159, 14159, 314159, 1592653]它们已被隐藏(并找到了!)。 测试用例 输入->输出 1->1 3->2 13->14 22->28 42->60 50->93 150->197 250->363 500->895 规则 您的代码至少n=50必须能够找到所有质数, 是的,您可以对前50位数字进行硬编码,Pi如果您喜欢Entries,则 对答案进行硬编码无效 这是代码高尔夫球。最短的答案以字节为单位!
30 code-golf  math  primes  pi 

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.