编程拼图和代码高尔夫

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

11
Tri-interquine-三个程序在一个循环中互相输出
相关:Interquine 程序A在运行时输出程序B的代码,B输出C的源代码,而C输出A的源代码。 这次您不能交换两个字符并再次交换:) 要求: 所有程序中只有一种语言 适用标准漏洞限制 所有程序都不同。输出自身的一个程序没有资格。互相输出的两个也没有资格。 所有程序都是非空的,或者长度至少为1个字节。 没有什么阅读,因为标准输入连接到/dev/null(你可以,如果你滥用该规则可以)。输出进入标准输出。 不要使用会产生随机结果的函数。 额外: 如果可能,给出解释 得分是最短程序的长度(您可以从短程序中生成长程序吗?)。请写下所有程序的长度,并突出显示最小的数字。尾随换行符不计算在内。最低分获胜。
10 code-golf  quine 

13
克拉克三角
好吧,最近我踢了一点三角,所以这是另一个。 Clark的三角形是一个三角形,其中每行的最左边的条目为1,最右边的条目由6的倍数组成,随着行数的增加而增加。这是可视化 1 6 1 . 12 1 . . 18 1 . . . 24 1 . . . . 30 1 . . . . . 36 就像Pascal的Triangle一样,所有其他条目都是右上角和左上角数字的总和。 这是前几行 1 6 1 7 12 1 8 19 18 1 9 27 37 24 1 10 36 64 61 …
10 code-golf  math  number 

14
12小时时间转换
挑战 转换并以12小时格式打印时间。 HH:MM AM/PM 例子 输入: 'Fri Jun 30 2017 21:14:20 GMT-0700 (PDT)' 'Fri Jun 30 2017 00:10:23 GMT-0700 (PDT)' 'Fri Jun 30 2017 12:10:23 GMT-0700 (PDT)' 'Sat Jun 31 2018 8:06:20 GMT-0700 (PDT)' 'Fri Jul 01 2017 01:14:20 GMT-0700 (PDT)' 'Sat Apr 10 2020 09:06:20 GMT-0700 (PDT)' 输出: 9:14 …
10 code-golf 

2
计算OEIS A005434
任务是尽快计算OEIS A005434。 考虑一个S长度为string 的二进制字符串n。从索引1,我们可以确定是否完全S[1..i+1]匹配从到的顺序。例如,S[n-i..n]i0n-1 S = 01010 给 [Y, N, Y, N, Y]. 这是因为0matchs 0,01不匹配10,010matchs 010,0101不匹配1010 并最终01010匹配自身。 定义f(n)为Ys和Ns在2^n不同S长度的所有可能位字符串上迭代时得到的不同数组的数目n。 观察者会注意到这个问题是我最近另一个问题的一个简单的变体。但是,我希望巧妙的技巧可以使这一过程变得更快,更容易。 任务 为了增加n开头1,应该输出代码n, f(n)。 示例答案 对于n = 1..24,正确的答案是: 1, 2, 3, 4, 6, 8, 10, 13, 17, 21, 27, 30, 37, 47, 57, 62, 75, 87, 102, 116, 135, 155, 180, 194 …

6
偷窃序列:警察
这是警察和强盗。这是警察的线程。有关强盗线索,请转到此处。 自加入网站以来,我注意到了许多OEIS(整数序列在线百科)挑战。看来,我们要面对一次警察与强盗的挑战,才能一劳永逸地确定谁是在线整数序列的主人。 编辑:为了防止琐碎的回答,警察每次破解都会损失1/2分。另外,出于此挑战的目的,不允许使用恒定序列。这仅适用于此编辑后发布的解决方案。 警察 编写一个程序或函数,在没有任何输入的情况下,确定性地打印OEIS中的任何序列。通过删除某些字符子集,您的程序在以相同语言运行时必须能够打印不同的OEIS序列。新序列必须是全新的,而不仅仅是第一个序列具有不同的名称或具有不同的偏移量。这两个序列都不能只是重复的常数值。 您必须提供第一个功能以及OEIS序列的名称,以便可以验证正确性。如果您的语言的MAX_INT值或256(以较大者为准)附近的行为令人怀疑,则可以。 强盗 从某些Cop提交的文件中删除字符,以便您的新程序从OEIS输出任何其他序列。提供新功能以及新OEIS序列的名称。这是一个确保您提交的内容有效的实用程序(即删除没有任何可笑之处的字符。不检查序列本身。) 最好从警察提交的文件中删除尽可能多的字符。如果另一个强盗(除了编写原始程序的警察以外的其他强盗)出现,并且找到了一个更短的解决方案,而该解决方案找到了另一个不同的序列,那么该强盗会窃取您的观点。(请注意,仅打掉角色并打印相同的顺序不足以窃取该点。) 规则与计分 如果一个星期后没有人能够破解您的解决方案,则可以通过提供第二个程序及其生成的序列名称,将您的解决方案标记为安全。 每次安全张贴,您都会得到1分;对于每次提交的内容,您将得到1分。每次破解提交,警察将损失1/2点。请注意,另一个强盗可以通过提供产生不同序列的较短程序,随时从破解的提交中窃取您的观点。 警察每人每种语言只能发布一个挑战。 在7月7日世界标准时间12:00得分最高的玩家获胜。

4
生活与疲劳的游戏
Stewie的《生命与疲劳游戏》与更著名的Conway的《生命游戏》非常相似。 Stewie的“生命与疲劳游戏”(GoLF)的宇宙是一个由正方形单元组成的无限二维正交网格,每个网格都处于三种可能的状态之一,即活着,死亡或疲倦。每个单元都与其八个相邻的单元进行交互,这八个单元是水平,垂直或对角线相邻的单元。在每个时间步上,都会发生以下转换: 任何具有少于两个活邻居的活细胞都会死亡,好像是由于人口不足造成的。 任何有两个或三个活邻居的活细胞都可以存活到下一代。 任何具有三个以上活邻居的活细胞都会死亡,就好像人口过多一样。 具有正好三个活邻居的任何死细胞都将变成活细胞,就像通过繁殖一样。 连续存活了两个世代的任何细胞都会死亡,好像是由于疲劳而死亡。直到下一代,它才能重生 输入网格边界之外的任何像元都将消失,就像从悬崖上掉下来一样。 挑战: 您面临的挑战是获取一个代表GoLF初始状态的n×m尺寸的网格和一个整数p,并在p代之后输出游戏的状态。 规则: 输入和输出格式是可选的,但输入/输出网格应具有相同的表示形式 您可以选择任何可打印的符号来表示活细胞和死细胞(我将1用于活细胞和0死细胞)。 您可以选择索引为0还是1。在示例中,p=1是指一步之后的状态。 每种语言中最短的代码获胜 允许用于蜂窝自动化的内置功能 测试用例: 在示例中,我仅在输入中包含输入网格,而不是p。我提供了各种p值的输出。您只能输出与给定输入p一起的网格。 Input: 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 --- Output --- p = 1 …

1
辐射硬化的环状喹poly胶
挑战 编写两个程序: 以两种不同的编程语言运行。 这些可能不是一种语言的两个版本。 当运行一个程序时,它将输出第二个程序,反之亦然。 这两个程序必须不同(不能使用多语言)。 这里是要抓住的地方: 程序必须经过辐射加固。 这意味着从两个程序中的任何一个删除任何一组nnn字符(定义如下)时,其功能均不受影响。 nnn定义为在不影响程序功能的情况下可以省略的字符数。 nnn必须至少为111。 规则 不允许出现标准漏洞。 您的程序必须是正确的循环奎因。他们可能不阅读自己的源代码。 计分过程如下: S1+S2nS1+S2n\frac{S_1+S_2}n S1S1S_1S2S2S_2 nnn 这是代码挑战,最低分获胜。 奖励 由于这个挑战很难回答,因此我将悬赏第一人回答。

1
滚来看看各个方面!
假设您有20面骰子。您开始滚动该骰子,并且必须滚动数十次才能最终滚动所有20个值。您想知道,我有多少卷才能有50%的机会看到全部20个值?n在滚动所有n面之前,我需要滚动几卷双面模具? 经过研究,您发现存在一个公式,用于计算滚动后所有值滚动的机会。nr P(r, n) = n! * S(r, n) / n**r 其中S(a, b)表示第二种斯特林数,是将一组n个对象(每个滚动)划分为k个非空子集(每侧)的方式的数量。 您还可以找到OEIS序列,我们称之为R(n),对应于最小的r,其中P(r, n)至少50%。面临的挑战是n尽可能快地计算此序列的th项。 挑战 给定一个n,找到最小的 r,其中P(r, n)大于或等于0.5或50%。 从理论上讲,您的代码应将任何非负整数n作为输入,但是我们将仅在范围内测试您的代码1 <= n <= 1000000。 对于进球,我们将采取运行所需的总时间R(n)上的投入1过10000。 我们将通过R(n)在输出中运行我们的版本来检查您的解决方案是否正确,以查看是否P(your_output, n) >= 0.5和P(your_output - 1, n) < 0.5,即您的输出实际上r是给定输出的最小值n。 您可以S(a, b)在解决方案中使用任何定义。Wikipedia有几个定义可能会对您有所帮助。 您可以在解决方案中使用内置函数,包括那些可以计算S(a, b)甚至P(r, n)直接计算的函数。 R(n)尽管这两个都不是硬性限制,但您最多可以对1000个值和一百万个斯特林数进行硬编码,并且如果可以说服您提高或降低它们,则可以更改。 你并不需要检查每一个可能的r之间n和r我们要找的,但你需要找到最小的r,不是任何r地方P(r, n) >= 0.5。 您的程序必须使用Windows 10上可自由运行的语言。 用于测试您的解决方案的计算机的规格为i7 4790k, 8 GB …

3
使您的键盘变成键盘
任务 您应该编写一个程序,当按下按钮时,它会为每个键输出不同的声音。 您将使用的密钥是: 1!2"34$5%6^78*9(0qQwWeErtTyYuiIoOpPasSdDfgGhHjJklLzZxcCvVbBnm 音符从处开始,C上方的每个键添加一个半音。 让我们稍微简化一下。您可以选择2个类似的任务, 1)按下一个键时输出一个不同的音符,直到另一个键被按下为止。该程序无限期运行 2)以一个仅包含上述字符的字符串作为输入,它将在每个音符中准确输出1秒钟(允许0.05秒钟的变化) 输入值 按键被按下 仅包含上述符号的单个字符串 输出量 单个音符一直响到按下另一个键 一系列音符,每个音符长1秒 笔记 Letter | Note -------+------- 1 | C ! | C# 2 | D " | D# 3 | E 4 | F $ | F# 5 | G % | G# 6 | A ^ …
10 code-golf  audio 

4
我最喜欢的球队还能成为足球冠军吗?
作为本赛季末最成功的足球BE队的球迷,我常常想知道我最喜欢的球队是否仍然有理论上的机会成为冠军。您在这项挑战中的任务是为我回答这个问题。 输入值 您将收到三个输入:当前表,剩余比赛列表以及我们感兴趣的球队的当前位置。 输入1:在当前表,数字的顺序是该我个号是由团队获得的点我为止。例如,输入 [93, 86, 78, 76, 75]对下表进行编码(仅最后一列很重要): 输入2:剩余比赛,一组元组,其中每个元组(i,j)代表第i队和第j队之间的剩余比赛。在上面的示例中,第二个输入[(1,2), (4,3), (2,3), (3,2), (1,2)]表示其余匹配为: Chelsea vs Tottenham, Liverpool vs Man. City, Tottenham vs Man. City, Man. City vs Tottenham, Chelsea vs Tottenham 输入3:我们感兴趣的球队的当前职位。例如,2上面示例的输入表示我们想知道热刺是否仍然可以成为冠军。 输出量 对于形式(i,j)的每个剩余匹配项,有三种可能的结果: I队获胜:I队获得3分,J队获得0分 J队获胜:I队获得0分,J队获得3分 平局:i队和j队均获得1分 如果所有剩余比赛都有结果,则必须输出一个真实值,以使最后没有其他球队的得分超过第3输入中指定的球队。否则,输出一个伪造的值。 示例:考虑来自以上部分的示例性输入: 输入1 = [93, 86, 78, 76, 75],输入2 = [(1,2), (4,3), …

10
我的后缀是什么类型?
介绍 因此,我一直在浪费时间来研究后缀排序算法,以手工和代码方式评估新的想法。但是我总是很难记住后缀的类型!能告诉我我的后缀是哪种类型? 最左边是什么? 许多后缀排序算法(SAIS,KA,我自己的daware)将后缀分为不同的类型,以便对其进行排序。有两种基本类型:S型和L型后缀。S型后缀是字典顺序以下(后缀小号比下面后缀和小光伏)L型,如果它是按字典顺序更大(大号 arger)。甲最左边的S型(LMS型)就是:甲S型,其由preceeded后缀L型后缀。 这些LMS类型后缀的特殊之处在于,一旦我们对它们进行了排序,就可以在线性时间内对所有其他后缀进行排序!那不是很棒吗? 挑战 给定一个字符串,假定它以小于该字符串中任何其他字符的特殊字符终止(例如,甚至小于空字节)。为每个后缀输出对应的char类型。 您可以自由选择使用哪种类型的字符哪个,但我更喜欢L, S and *的L-, S- and LMS-type,只要它们是所有可打印的(0x20 - 0x7E)。 例 给定字符串mmiissiissiippi输出(使用时L, S and *): LL*SLL*SLL*SLLL 例如,第一个L是由于在mmiissiissiippi$字典上大于miissiissiippi$($代表所添加的最小字符)的事实: L - mmiissiissiippi$ > miissiissiippi$ L - miissiissiippi$ > iissiissiippi$ * - iissiissiippi$ < issiissiippi and preceeded by L S - issiissiippi$ < ssiissiippi$ L - …

13
语言名称倒写
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 2年前关闭。 您应该编写一段看起来像输出语言名称但实际上输出名称相反的代码。 例如,Python程序应该看起来像它的输出,Python但实际上应该输出nohtyP。 获胜者是一周内获得最多投票的答案!

5
这是Anagram Quine,而不仅仅是Quine!
任务 在这个挑战中,您的任务是编写一个程序,该程序不输入任何内容,而要使用尽可能多的拼写形式。 您的分数将是程序源代码中有效有效字词的字谜数量除以可能的正确字谜总数,即有效字谜的字谜百分比。 适用标准漏洞和标准奎因规则。 注意:您的程序必须至少包含3个字符(而不是3个字节)。 输入值 程序本身的每个字谜(或排列)(即分数中包含的字谜)都不得输入任何内容。如果您的语言需要输入,那么可以假定您的程序将获得由小写字母A组成的字符串。但是,您不得以任何方式使用输入。 输出量 n程序源代码的不同字谜的数量必须是有效的quines,其中n代表您要包含在乐谱中的那些字谜的数量,即 那些quina-anagarams可以以任何方式输出,除非将输出写入变量。允许写入文件,控制台,屏幕等。功能return也是允许的。 计分范例 假设程序的源代码是code。和, code输出code。 coed输出coed。 cdoe输出cdoe。 cdeo输出cdeo。 cedo输出cedo。 ceod输出ceod。 ocde输出ocde。 oced输出oced。 odce输出odce。 odec不输出odec或产生错误。 oedc不输出oedc或产生错误。 oecd不输出oecd或产生错误。 doce不输出doce或产生错误。 doec不输出doec或产生错误。 dcoe不输出dcoe或产生错误。 dceo不输出deco或产生错误。 deco不输出deco或产生错误。 deoc不输出deoc或产生错误。 eodc不输出eodc或产生错误。 eocd不输出eocd或产生错误。 edoc不输出edoc或产生错误。 edco不输出edco或产生错误。 ecdo不输出ecdo或产生错误。 ecod不输出ecod或产生错误。 该解决方案的分数将是 获胜标准 得分最高的解决方案获胜!如果出现平局,则具有较高字符数(而不是字节数)的答案将获胜(因此,代码保龄球就可以了!)如果平局仍然存在,那么早先发布的解决方案将获胜!

5
在3D中绘制高斯分布
在概率论中,正态(或高斯)分布是一种非常常见的连续概率分布。正态分布在统计中很重要,并且在自然科学和社会科学中经常用来表示其分布未知的实值随机变量。 挑战 您面临的挑战是在3维平面上绘制高斯分布的概率密度。该函数定义为: 哪里: 甲 = 1,σ X = σ ÿ = σ 规则 您的程序必须采用一个输入σ,即标准偏差。 您的程序必须在您的语言/系统允许的情况下,以最高质量打印高斯分布的3D图。 您的程序可能未使用直接的高斯分布或内置的概率密度。 您的程序不必终止。 您的情节可能是黑白或彩色的。 您的绘图的底部必须有网格线。侧面的网格线(如示例中所示)是不必要的。 您的绘图不需要在网格线旁边有线号。 计分 像在代码高尔夫球中一样,最少字节的提交将获胜!我可能永远不会使用按钮来“接受”答案,除非它很小且直观。 输出示例 您的输出可能看起来像这样: 或者它可能看起来像这样: 更 有效的 输出。无效的 输出。

6
取消缩短Google链接
挑战 给定有效的goo.gl缩短链接,输出原始URL。 例 goo.gl/qIwi3N会给像https://codegolf.stackexchange.com/。对于输入,您可以选择https?://在开头加上,可以www.在之前goo.gl选择,goo.gl如果只希望URL的结尾,也可以选择删除。末尾的斜杠对于输入和输出是可选的。因此,您的输入将最终与regex匹配(https?://)?(www\.)?(goo\.gl/)?[A-Za-z0-9]+/?。对于输出,您可以选择是否输出https?://,是否输出www.以及是否输出斜杠。但是,您必须与I / O格式保持一致。 我会说你不必与 https vs. http的输出(但对于输入,您必须保持一致),只要您对是否包括整个https?://部分都保持一致即可。 测试用例 这些在输入中用no https://,no www.,末尾没有斜杠书写;yes https://,no www.和yes输出中的斜杠。 input -> output goo.gl/HaE8Au -> https://codegolf.stackexchange.com/ goo.gl/IfZMwe -> https://stackoverflow.com/ goo.gl/JUdmxL -> https://chat.stackexchange.com/rooms/240/the-nineteenth-byte 假设条件 您可以假定缩短的链接不会指向另一个缩短的链接,并且目标站点将返回2xx或的状态代码4xx(无重定向)。 您可以在此处输入URL以应用相反的操作:https://goo.gl/

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.