编程拼图和代码高尔夫

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

30
会停止吗?(警察)
这是警察的话题。强盗的线索在这里。 您的挑战是要使一个程序永久运行而不暂停1,除非它获得一个或多个特定输入2。如果接收到该输入,则它必须在有限的时间3内终止。这是代码高尔夫球,因此,在获胜后的一周内,没有被强盗破解的最短答案。经过一周之后,请标记为安全答案,并显示暂停输入(中的> ! spoiler quote)。如果强盗破解了您的提交,请将其标记为“已破解”,并显示暂停输入(中的> ! spoiler quote)。 提交最好在TIO上可运行且可破解。允许在TIO上无法运行或破解的提交,但请提供下载/运行的说明。 请确定您的输入是确定的,并在所有运行中保持一致。有关详细信息,请参见此meta帖子。 请不要“实施RSA”或对强盗有任何意义的东西。使用晦涩的语言和功能,不要无聊的加密和散列。我无法使用规则来强制执行此操作,但是如果您所做的只是,您可以期望获得好评sha(input) === "abcd1234"。 1假设计算机不会关闭,破裂,被太阳吞没,宇宙热死机中的过热或TIO超时60秒。 2该程序必须在至少一个输入上停止。只要它在一个输入上永远循环并在另一个输入上停止,它就起作用。 3这必须少于60秒,以便可以在TIO上测试代码。 寻找完整的作品? fetch("https://api.stackexchange.com/2.2/questions/135363/answers?order=desc&sort=activity&site=codegolf&filter=!.Fjs-H6J36vlFcdkRGfButLhYEngU&key=kAc8QIHB*IqJDUFcjEF1KA((&pagesize=100").then(x=>x.json()).then(data=>{var res = data.items.filter(i=>!i.body_markdown.toLowerCase().includes("cracked")).map(x=>{const matched = /^ ?##? ?(?:(?:(?:\[|<a href ?= ?".*?">)([^\]]+)(?:\]|<\/a>)(?:[\(\[][a-z0-9/:\.]+[\]\)])?)|([^, ]+)).*[^\d](\d+) ?\[?(?:(?:byte|block|codel)s?)(?:\](?:\(.+\))?)? ?(?:\(?(?!no[nt][ -]competing)\)?)?/gim.exec(x.body_markdown);if(!matched){return;}return {link: x.link, lang: matched[1] || matched[2], owner: x.owner}}).filter(Boolean).forEach(ans=>{var tr = document.createElement("tr");var add = (lang, link)=>{var td = …

30
实现Thanos排序算法
排序算法如下所示: 当列表未排序时,捕捉所有项目的一半(将其从列表中删除)。继续,直到列表已排序或仅剩余一项(默认情况下已排序)。这种分类算法可能会根据实现方式给出不同的结果。 物品清除程序由实施决定,但是经过一遍物品清除程序后,清单的长度应为以前的一半。您的算法可能决定删除列表的前半部分或列表,后半部分,所有奇数项,所有偶数项,一次删除一次,直到列表的长度减半,或者未提及任何内容。 输入列表可以包含任意数量的项目(在某种程度上,我们可以说最多1000个项目),而不仅仅是2 ^ n个项目的完全可分割的列表。如果列表是奇数(硬编码或在运行时随机决定),则必须删除(n + 1)/ 2或(n-1)/ 2个项目。自己决定:如果宇宙中包含奇异数量的生物,Thanos会做什么? 如果没有任何项目小于任何先前的项目,则对列表进行排序。输入中可能会出现重复,输出中可能会出现重复。 您的程序应接收一个整数数组(通过stdin或作为参数,可以是单个项目或一个数组参数),然后返回已排序的数组(或将其打印到stdout)。 例子: // A sorted list remains sorted [1, 2, 3, 4, 5] -> [1, 2, 3, 4, 5] // A list with duplicates may keep duplicates in the result [1, 2, 3, 4, 3] -> [1, 3, 3] …

30
独特就是便宜
编写确定给定字符串成本的函数或程序,其中 每个字符的成本等于字符在字符串中到目前为止发生了多少次,并且 字符串的成本是其字符成本的总和。 例 对于的输入abaacab,成本计算如下: a b a a c a b 1 2 3 4 occurrence of a 1 2 occurrence of b 1 occurrence of c 1+1+2+3+1+4+2 = 14 因此,字符串的成本为abaacab14。 规则 您提交的分数是你的代码的成本如上定义,那就是你的提交上自己的源代码的运行,具有较低的分数更好。 您的提交应适用于包含可打印ASCII字符以及提交中使用的所有字符的字符串。 文字是大小写敏感的,这是a和A不同的字符。 测试用例 input -> output "abaacab" -> 14 "Programming Puzzles & Code Golf" -> 47 …

14
我是一个被动的积极进取者,想侮辱我的老板而不让他发现
辛苦了几个月的工作,我觉得我只想向老板的脸大喊大叫。但是,我不是直接面对遇到问题的人的人。我也不想丢掉工作。 所以这是一个主意:我希望能够侮辱他,而不会发现他。我意识到了一种完美的方法:我需要某种软件来编码本来是完美的消息中的侮辱。看到他是众所周知的看不见树木的森林,我想我知道如何: 写给我一个程序,该程序将一个未知长度的字符串作为输入,但不包含换行符。这将是我要发送的原始消息。 如果可能,返回格式化的字符串,以使消息“ DIE IN A GREASE FIRE”构成整个左列。在新的段落中,单词之间应留有空格。现在,由于我非常生气,每个字母都大写同样重要。 您不能以任何其他方式修改字符串,即,您不能将所有字符串都变成大写字符。 如果不能以这种方式格式化所讨论的字符串,则应返回原始字符串。从标准输入读取输入。 适用一般规则:无需HTTP请求,无需THGTTG咨询Marvin等。 输入示例: 亲爱的老板,最近怎么样?引起我注意的是,上个星期五,我为这次不幸事件受到了所有责备。不只是大多数。每一刻。我以为团队的其他成员至少应该承担部分责任,对我来说是错误的吗?毕竟,我们所有人都从一开始就参与其中。不是说我认为我应该不受责。一点也不。我要说的是:我尽力而为。我努力 我不断进步。而且我一直在承担责任。总的来说,我对自己的行为负全部责任。但是在今年春天之后,看来我得到了应得的收益。还记得Flakenhauser合同吗?一切都像人们希望的那样顺利进行。大概乍一看。直到最后一刻,一切都崩溃了。所有团队都同意,这更像是一场怪胎事故,而不是草率的计划或管理不善的资源。不过,我一个人-对此负责。即使我当时什么也没说,但当时我对责备的容忍度却严重降低了。从那时起,我觉得有必要始终加倍努力,以免受到审查。而且,我们又来了。尽管我取得了所有成就。就在这些天我们似乎总是会结束的地方。每个项目。它变得难以忍受。只是为了逃避审查。而且,我们又来了。尽管有我所有的成就。就在这些天我们似乎总是会结束的地方。每个项目。它变得难以忍受。只是为了逃避审查。而且,我们又来了。尽管有我所有的成就。就在这些天我们似乎总是会结束的地方。每个项目。它变得难以忍受。 输出示例: 亲爱的老板,最近怎么样? 引起我注意的是,上个星期五,我为这次不幸事件受到了所有责备。不只是大多数。 每一刻。 我以为团队的其他成员至少应该承担部分责任,对我来说是错误的吗?毕竟,我们所有人都从一开始就参与其中。 不是说我认为我应该不受责。一点也不。 我要说的是:我尽力而为。我努力 我不断进步。而且我一直在承担责任。 总的来说,我对自己的行为负全部责任。但是在今年春天之后,看来我得到了应得的收益。 记住Flakenhauser合同。 一切都像人们希望的那样顺利进行。大概乍一看。直到最后一刻,一切都崩溃了。 所有团队都同意,这更像是一场怪胎事故,而不是草率的计划或管理不善的资源。 不过,我一个人-对此负责。 即使我当时什么也没说,但我对受到指责的容忍度却严重降低了。 从那时起,我觉得有必要始终加倍努力,以免受到审查。而且,我们又来了。 尽管我取得了所有成就。 就在这些天我们似乎总是会结束的地方。 每个项目。它变得难以忍受。 这是代码高尔夫。最短的代码胜出。
93 code-golf  string 

30
多功能整数打印机
编写一段至少可以用三种不同语言执行的代码。代码必须输出第一1语言,第二2语言,3第三语言等的整数。 规则: 输出必须仅是整数,但结尾的换行符可以。 该代码不能接受任何形式的输入 同一语言的不同主要版本被认为是唯一的。因此,您的代码可以在Python 2和Python 3中执行,但是Python 2.5和Python 2.7并不是唯一的。 您可以使用一种新语言,前提是该语言具有esolang / wiki文章,可用的解释器和文档,并且在用于此挑战之前已被至少两个用户在PPCG上使用。它还必须遵守这4条规则。 提交的分数是代码中的字节数除以可以在多维数据集中运行的语言数。因此,可以以3种语言执行的54字节解决方案得分为2: 54 / 3^3 = 2 分数越低越好。 排行榜 显示代码段 <style>body { text-align: left !important} #answer-list { padding: 10px; width: 290px; float: left; } #language-list { padding: 10px; width: 290px; float: left; } table thead { font-weight: bold; } …

11
建造降价炸弹[关闭]
我敢肯定,我们大多数人都听说过拉链炸弹和类似的减压炸弹把戏,其中恶意制作的输入会产生大量不成比例的输出。我们甚至在这里有一个问题,想在某一时刻对编译器执行此操作。 好吧,我觉得Markdown是一种压缩格式,用“压缩的” MD令牌代替了笨重的HTML标签。因此,有可能在Markdown建造一个压缩炸弹吗? 挑战规则: 提交内容应该是一段降价文字,长度在50到256个字符之间。(强加了一个最小值,以阻止一些智能警报发布3个字符的响应或类似内容。) 该提交将由StackExchange的Markdown处理器(在此站点中实现)进行处理。 您的分数将是结果HTML中的字符数与Markdown文本的字符数之比。 最高分获胜。

12
证明俄罗斯密码标准过于结构化
这一挑战的目标是找到一个不可能短期实现以下功能p,在您选择的langage。这是实现它的C代码(请参阅 此TIO链接,也将输出其输出)和包含该代码的Wikipedia页面。 unsigned char pi[] = { 252,238,221,17,207,110,49,22,251,196,250,218,35,197,4,77, 233,119,240,219,147,46,153,186,23,54,241,187,20,205,95,193, 249,24,101,90,226,92,239,33,129,28,60,66,139,1,142,79, 5,132,2,174,227,106,143,160,6,11,237,152,127,212,211,31, 235,52,44,81,234,200,72,171,242,42,104,162,253,58,206,204, 181,112,14,86,8,12,118,18,191,114,19,71,156,183,93,135, 21,161,150,41,16,123,154,199,243,145,120,111,157,158,178,177, 50,117,25,61,255,53,138,126,109,84,198,128,195,189,13,87, 223,245,36,169,62,168,67,201,215,121,214,246,124,34,185,3, 224,15,236,222,122,148,176,188,220,232,40,80,78,51,10,74, 167,151,96,115,30,0,98,68,26,184,56,130,100,159,38,65, 173,69,70,146,39,94,85,47,140,163,165,125,105,213,149,59, 7,88,179,64,134,172,29,247,48,55,107,228,136,217,231,137, 225,27,131,73,76,63,248,254,141,83,170,144,202,216,133,97, 32,113,103,164,45,43,9,91,203,155,37,208,190,229,108,82, 89,166,116,210,230,244,180,192,209,102,175,194,57,75,99,182, }; unsigned char p(unsigned char x) { return pi[x]; } 什么是 p p是两个俄罗斯密码标准的组成部分,即哈希函数Streebog和块密码Kuznyechik。在本文中(以及在ISO会议期间),这些算法的设计者声称他们pi通过选择随机的8位排列来生成数组。 “不可能”的实现 有8位上的排列。因此,对于给定的随机置换,不应期望实现该置换的程序需要少于1683位。256 !≈ 21684256!≈21684256! \approx 2^{1684} 但是,我们发现了多个异常小的实现(我们在此处列出),例如以下C程序: p(x){unsigned char*k="@`rFTDVbpPBvdtfR@\xacp?\xe2>4\xa6\xe9{z\xe3q5\xa7\xe8",l=0,b=17;while(--l&&x^1)x=2*x^x/128*285;return l%b?k[l%b]^k[b+l/b]^b:k[l/b]^188;} 它仅包含158个字符,因此适合1264位。单击此处查看它是否有效。 我们谈论“不可能”的简短实现是因为,如果排列是随机过程的输出(如其设计者所声称的那样),那么这种简短的程序将不存在(有关更多详细信息,请参见本页)。 参考实施 以前的C代码的可读性更高的版本是: …

20
0xBEEF在哪里?
这项挑战的灵感来自1984年温迪的广告。 TS Rogers的插图 您的任务是在二进制包中找到一个十六进制的0xBEEF。 “牛肉”由以下模式组成: 1 0 1 1 (0xB) 1 1 1 0 (0xE) 1 1 1 0 (0xE) 1 1 1 1 (0xF) “小圆面包”由12x12二进制矩阵组成,例如: 1 1 1 0 0 1 1 1 1 1 1 0 1 1 0 1 0 0 1 0 0 0 0 0 …

27
代码会终止吗?
这是我想到的一个代码高尔夫球挑战。挑战在于编写尽可能短的代码,以使代码是否终止是一个悬而未决的问题。我的意思的示例可能是下面的一段python代码,从anwser改编成这个 cs stackexchange 问题。 def is_perfect(n): return sum(i for i in range(1, n) if n % i == 0) == n n = 3 while not is_perfect(n): n = n + 2 数学家们猜测没有奇数完美的数字,但是它从未得到证明,因此没有人知道这段代码是否会终止。您能否提出较短的其他代码段(也许依赖于其他未解决的问题,例如Collat​​z猜想或孪生素数猜想),但是它们是否终止并不知道? 编辑:有些人提出了一个很好的附加规则-问题的解决方案应该是确定性的。尽管如果您可以使用不确定性找到更短的解决方案,可能会更加有趣。在这种情况下,规则是找到一个终止概率未知的代码段。
92 code-golf  math 

30
该字符串可以用作字符串吗?
编写一个程序,该程序采用一个单行字符串,您可以假定该字符串仅包含字符/\_‾。(这是正斜杠和反斜杠,下划线和上划线。~由于上划线不是方便的ASCII,因此如果需要,可以使用上划线代替。) 例如,一种可能的输入是: __/‾‾\/\_/‾ 您的程序需要输出真值或假值,具体取决于字符串的左边缘是否通过字符的行“连接”到了字符串的右边缘。因此,如果字距调整少了一点,那么从左边缘到右端将一直有一条纯黑色(尽管是扭曲的)线条,就像一条不间断的弦线或麻线。 上面示例的输出为true,因为连接了边: 要明确连接: / 连接在其左下角和右上角 \ 连接在其左上方和右下方 _ 连接在其左下角和右下角 ‾(或~)连接在其左上角和右上角 也: 字符串的边缘是从顶部开始还是从底部开始都无关紧要,只需要在整个字符串的水平方向上水平连接即可。 您可以假设输入字符串为非空,当然只有一行。 以下是一些其他示例,如果已连接,则后面跟有1(真),否则则后面是0(虚假): __/‾‾\/\_/‾ 1 _ 1 \ 1 / 1 ‾ 1 ___ 1 \/ 1 /\/ 1 /\/\ 1 ‾‾‾ 1 \\ 0 ‾‾ 1 _‾ 0 ‾_ 0 \_____/ 1 \/\\/\\___ 0 \/\__/‾‾\ …

30
五十度灰
男孩和女孩很高兴在银幕上看到灰色的五十度阴影,我们只想编码而不会被打扰,所以这是挑起大脑的挑战。 你必须: 在屏幕上打印五十个正方形,每个正方形填充不同的灰色阴影 如果您选择的语言缺乏图像处理功能,则可以输出图像文件 正方形必须可见,至少20 x 20像素 除非确保每个阴影都是唯一的,否则不能使用随机数。 您无法通过任何网络连接到任何服务 您无法读取程序中的任何文件。 您不能使用所选语言的标准库中的任何库。 这是代码高尔夫球,所以最短的代码获胜。

18
该语言何时发布?
您的挑战很简单。您需要编写一个程序,该程序可以在发布所用语言的那年将其打印到STDOUT或文件中。因为这是一个简单的任务,所以它必须用尽可能多的不同语言编写。 您的分数是正确打印的不同年份的总数。 对于您使用的每种语言,您必须 指定您使用的语言版本。(如果有多个版本) 指定该版本首次发布的年份,以及 提供指向页面的链接,以证明您的版本/语言的日期。 只要指定了版本号(如果适用)和发布日期,上述任何一项都可以视为发布日期证明。 维基百科页面。 一个esolangs页。 语言的官方网站。只要有发布日期,一个github页面或类似页面就算在内。(最新提交不计算在内,除非代码中有版本号) 如果该语言没有多个版本或发行版本,请使用该语言的初始发行日期。 同日而语的次要版本都算作不同的语言,只要他们来自不同的年份,仍然产生正确的输出。您不得使用任何可为您提供有关所用语言当前版本的信息(包括发行日期)的内置程序。例如,这是无效的python提交: import platform i = platform.python_version() if i == '3.5': print(2015) if i == '3.4': print(2014) if i == '3.3': print(2012) ... 无论哪种提交方式都能正确打印出最鲜明的年份获胜! 规则 每个程序都必须打印出语言年份,仅此而已。允许使用尾随换行符(Windows样式或* nix样式)。 没有程序可以接受任何输入。 如果出现平局,则以字节计的最短代码获胜。您可以为此使用任何编码,但是所有程序必须使用相同的编码。 只要仍将正确的输出打印到STDOUT或文件中,任何程序都可以打印到STDERR,或抛出运行时/编译时错误和警告。 不同的语言可能使用不同的IO方法,但它们大多数都是完整程序(此挑战所不允许的功能),并且遵循我们允许的默认IO方法之一。 高尔夫快乐多语!

10
编写未知完整性的编程语言
设计语言时,确定一种语言是否图灵完备非常重要。对于许多深奥的编程语言来说,这也是一项非常艰巨的任务,但让它提高一个等级。让我们编写一些很难证明图灵完备的编程语言,以至于即使世界上最好的数学家也无法以任何一种方式证明它们。您的任务是设计和实现一种语言,其图灵完备性取决于数学中尚未解决的主要问题。 规则 您选择的问题必须至少在10年前提出,并且在发布此问题时必须解决。它可以是任何可证明的数学猜想,而不仅仅是Wikipedia页面上列出的猜想之一。 您必须提供语言规范以及现有语言的实现。 当且仅当猜想成立时,编程语言必须是图灵完整的。(或仅当猜想不成立时) 您必须提供一个证明,以证明根据所选的推测图灵是完整的还是不完整的。在运行解释器或编译程序时,您可能会假设访问了无限制的内存。 由于我们关注图灵完整性,因此不需要I / O,但是目标是制作最有趣的语言,以便它可能会有所帮助。 这是一场人气竞赛,因此赢得最多选票的答案将会赢得。 目标标准 一个好的答案应该做什么?这是投票时要寻找的一些东西,但在技术上不是必需的 它不应该是现有语言的简单补丁。更改现有语言以符合规范是可以的,但是不建议在条件上打补丁,因为这很无聊。正如ais523在第九字节中所说: 我更喜欢使我的esolangs的头更牢固地融入到语言中 作为独立的深奥语言应该很有趣。

30
每种语言的Mandelbrot图片
在我接触过的任何图形应用程序中,我总是使用Mandelbrot图像作为Hello World的“图形”版本。现在轮到你们了。 语言必须能够图形输出或绘制图表(不允许保存文件) 渲染正方形图像或图形。大小至少为128,最大为640 * 分形坐标范围从大约-2-2i到2 + 2i Mandelbrot集外的像素应根据大小超过2之前的迭代次数进行着色(不包括*黑色和白色) 每个迭代计数必须具有唯一的颜色*,并且相邻的颜色最好应易于用眼睛区分 其他像素(大概在Mandelbrot集内)必须为黑色或白色 至少99次迭代 不允许使用ASCII艺术 *除非受平台限制,例如图形计算器 允许: 禁止:( 缩小的图像) 获奖条件: 每种语言的最短版本(以字节为单位)将在此帖子中提及,并按大小排序。 该按钮将永远不会被“接受”。 排行榜: 显示代码段 /* Configuration */ var QUESTION_ID = 23423; // Obtain this from the url // It will be like https://XYZ.stackexchange.com/questions/QUESTION_ID/... on any question page var ANSWER_FILTER = "!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe"; var …

14
星空中的色彩
编写一个程序,接受一个字符串或文本文件,其第一行的格式为 width height 然后每行的格式为 x y intensity red green blue 哪里: width并且height可以是任何正整数。 x并且y可以是任何整数。 intensity 可以是任何非负整数。 red,green和blue可以是0到255之间的任何整数(包括0和255)。 你的程序必须输出真彩在它的尺寸为任何常见的无损图像文件格式的图像width通过height。每条x y intensity red green blue线代表必须在图像上绘制的彩色星星或球体。可能有任何数量的星形要绘制,包括0。您可以假定字符串或文件末尾有换行符。 绘制图像的算法如下,但是只要结果相同,您可以按照自己喜欢的任何方式实现它: 对于图像中的每个像素(X,Y)(其中X在最左边缘为0,在最右边缘为width-1,Y在顶部边缘为0,在底部边缘height-1),颜色通道C ϵ { 红色, 绿色,蓝色 }(固定在0到255之间的值)由以下公式给出: 其中dist函数为欧几里得距离: 或曼哈顿距离: 根据高尔夫球性或美观性,选择您喜欢的距离功能。 输入中除第一行外的每一行都是“ 星星”集的元素。因此,例如,S X表示x对输入线中的一个值,和S Ç表示任一red,green或blue,这取决于当前正在计算色彩通道。 例子 例子A 如果输入是 400 150 -10 30 100 255 128 0 输出应该是 如果您使用的是欧几里德距离,并且 如果您使用的是曼哈顿距离。 …

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.