编程拼图和代码高尔夫

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

30
你好,世界!人物重复次数有限
用您选择的语言编写一个程序,该程序精确输出字符,Hello world!后跟换行符。编码: 最多使用两次字符(字母数字,符号,空格...任何其他字符) 不应使用任何外部资源 不应使用任何用户输入 不应该输出其他任何东西 有效的python程序的示例: print("He%so world!"%(2*'l')) 无效的python程序的示例(字符'r'被使用了3次): print("Hel"+chr(108)+'o world!') 获胜者是14天后获得票数最多的人。 编辑:获胜者已被选中!感谢大家在这个问题上所做的工作!

30
尽可能少的字节泄漏内存
您的任务是编写代码,该代码将在尽可能少的字节中泄漏至少一个字节的内存。内存必须泄漏,而不仅仅是分配。 内存泄漏是程序分配的内存,但是在可以正确地重新分配内存之前,它无法访问。对于大多数高级语言,此内存必须在堆上分配。 以下程序是C ++中的一个示例: int main(){new int;} 这使new int堆上没有指针。由于我们无法访问该内存,因此该内存立即被泄漏。 以下是Valgrind的泄漏摘要: LEAK SUMMARY: definitely lost: 4 bytes in 1 blocks indirectly lost: 0 bytes in 0 blocks possibly lost: 0 bytes in 0 blocks still reachable: 0 bytes in 0 blocks suppressed: 0 bytes in 0 blocks 如果可以的话,许多语言都具有内存调试器(例如Valgrind),您应该包括此类调试器的输出以确认内存泄漏。 目标是最大程度地减少源中的字节数。
79 code-golf 

7
开始大洋洲的革命
获奖者(决定14/09/14) Markuz的获奖答案(Python)-63票 kuroi neko(PHP)获得亚军 -55票 介绍 您正处在乔治·奥威尔(George Orwell)着的《十九点四十八点》(十九)中。 您是该党的程序员,并负责编写用于电视屏幕的程序。它应该输出亲方消息,并且您已经选择了下面任务1中显示的消息。但是,您最近开始鄙视该党,并且希望该计划引发一场革命。因此,您使程序说“ Down with Big Brother!”。您必须给自己时间逃脱,因为一旦人们意识到您的程序的作用,您就会遭受酷刑,因此您将其当作“定时炸弹”,在安全后会爆炸。 注意:这会不会引发一场革命,但你是在这样一个向你觉得它在党的仇恨狂潮将真正发挥作用。 任务 编写一个程序,其中: 在2014年9月14日之前,将始终轮流输出以下几行(即打印一行,等待10秒,打印下一行,等等。) War is Peace Freedom is Slavery Ignorance is Strength 2014年Down with Big Brother!9月14日之后将每10秒打印一次。 乍一看看起来只有1.。这样您就不会被党抓住了。 规则 当然不允许出现标准漏洞。 这是一个不为人知的挑战,因此主要目标是使任务2尽可能不显眼和隐蔽。 派对将查看所有使用的文件,因此您不能仅将秘密消息存储在文件中! 如果您的语言不支持查找日期或使日期变得非常困难,则可以让程序在运行240小时(10天)后执行任务2。 您应该在答案中包含代码和其工作原理的解释。 这是一次人气竞赛。 注意:这不是编写困难的程序。困难的部分应该是隐藏“革命”代码。该党会质疑不清楚您在做什么的路线,您必须对其进行解释。 示例-Python 3 注:显然,这个方案是这样太明显了。 from datetime import datetime from time import sleep …

30
检测MS Windows
挑战 创建一个程序,该程序在Microsoft Windows上运行时返回真实值(为简单起见,我们将坚持使用Windows 7、8.1和10),而在任何其他操作系统(OSX,FreeBSD,Linux)上运行时则返回假值。 规则 无法在平台上运行/编译的代码不算作假值。 获奖标准 我将其标记为code-golf,因此得分最低者获胜,但是我也非常有兴趣看到针对该问题的创造性解决方案。

30
你好世界0.0!
资料来源:Dilbert,1992年9月8日 我希望在经典的“ Hello World!”上添加新的变化。程序。 编写输出以下内容的程序Hello World!: 字符串/字符文字 数字(任何基数) 预置的函数返回“ Hello World!” RegEx文字 除“ O” †和0以外。 †“ O”大写,“ o”不可接受。

30
-ENDED-做一些看起来像其他的事情[关闭]
编写一个代码段,一个函数,一个程序……,这些代码以一种乍一看看上去很清楚的方式执行其他操作而被混淆。 例如:写一些加两个数字的代码,但是当您问某人“它做什么?”时,他会告诉您它打印“ Hello,World!”。 规则 对于大致了解您使用的语言的人,该代码必须是可读的(出于您的利益,请避免使用内在混淆的语言,例如APL)。 该代码必须执行读者最初无法预测的意外操作。 当您问不同的读者时,他们对代码的作用必须有相同的(错误的)看法。 评分 请在最多10到20秒的时间内阅读其他参赛者的密码,以便对发生的事情有一个很好的了解。 在答案中添加注释,说明您认为代码的作用。如果您要提供的答案已经存在,只需+1注释即可。(如果您错过了该答案并添加了其他评论,请放心,它不会被视为另一个答案)。 这些点将以这种方式被识别:(maxFalseOpinion- goodGuess)/ totalOpinion(请参见下面的示例)。 给其他参赛者打上公平竞赛的评价,不要评论自己的代码。 仅添加有用的注释。避免使用“我不知道”和“好人!”,因为评级没有考虑到它们,但是混淆的是代码而不是评级。 评分范例 该代码段将两个数字相加。评论说: (3)显示“你好,世界!” (1)减去2个数字。 (2)将两个数字相加。 点的总数是最大意见数(3)-良好猜测的数目(2)除以猜测的总数(3 +1 + 2 = 6)。结果:(3-2)/ 6 = 1/6 = 16.67%。 有关点的更多信息 人们似乎很难找出要点。 这是一个完美的成绩: printf('Hello World'); 注释: 它显示您单击按钮的次数。(17条评论)。 总计:17条评论 得分:(17-0)/ 17 = 1 = 100% 这是一个la脚的得分: printf('Hello World'); 注释: 打印“ …

5
通过图标识别堆栈交换站点
在Stack Exchange上花了一段时间之后,我可以通过它们的小图标(也是他们的收藏夹图标)来识别“热网络问题”中的大多数站点,但是当然不是全部。让我们编写一个可以的程序!给定(当前)132个图标之一,其中包括日语的Stack Overflow(仍处于私人Beta版),您将编写确定站点的代码: 我已经将所有这些图像的ZIP文件上传为GitHub上的 PNG 。单击“原始”按钮将其下载。以上图标的顺序是zip中文件名的字母顺序。 相应的站点名称(按此顺序)是: 显示代码段 Academia Android Enthusiasts Anime & Manga Ask Different Arduino Ask Ubuntu Astronomy Aviation Video Production Beer Bicycles Biology Bitcoin Blender Board & Card Games Stack Overflow in Portuguese LEGO Answers Buddhism Chemistry Chess Chinese Language Christianity Programming Puzzles & Code Golf Code …

30
十个字节的代码中最大的数字
您的目标是仅使用十个字符的代码即可打印(至标准输出)最大数量的打印机。 您可以使用语言的任何功能,但内置指数功能除外。 同样,您可能无法使用科学计数法输入数字。(因此,没有9e+99。) 程序必须在没有用户输入的情况下打印号码。同样,也不会读取其他文件或Web等信息。 您的程序必须计算一个数字并打印出来。您不能打印字符串,也不能打印相同的数字数千次。 您可以从10个字符的限制中排除打印任何内容所需的任何代码。例如,在使用该print x语法的Python 2中,您的程序最多可以使用16个字符。 该程序实际上必须在输出中成功。如果在世界上最快的计算机上运行需要一个多小时,则它无效。 输出可以是任何格式(这样你就可以打印999,5e+100等等) 无限是一个抽象概念,而不是数字。因此这不是有效的输出。

30
调用方法而不调用它
受现已删除的StackOverflow问题的启发。您能否提出一种方法来执行特定的方法,而无需显式调用它?间接程度越高,效果越好。 准确地说,这就是我的意思(C仅用作示例,接受所有语言): // Call this. void the_function(void) { printf("Hi there!\n"); } int main(int argc, char** argv) { the_function(); // NO! Bad! This is a direct call. return 0; } 原始问题:

30
N(e(s(t)))一个字符串
要“函数嵌套”字符串,您必须: 将第一个字符视为函数,然后将后续字符视为该函数的参数。例如,如果输入字符串是Hello,那么第一步将是: H(ello) 然后,对每个子字符串重复相同的步骤。这样我们得到: H(ello) H(e(llo)) H(e(l(lo))) H(e(l(l(o)))) 您的任务是编写“函数嵌套”字符串的程序或函数。例如,如果输入字符串为Hello world!,则应输出: H(e(l(l(o( (w(o(r(l(d(!))))))))))) 输入将仅包含可打印的ASCII,并且您可以采用任何合理的格式输入和输出。例如,STDIN / STDOUT,函数参数和返回值,对文件的读写等。 为简单起见,您还可以假定输入将不包含括号,并且将不为空。 Input: Nest a string Output: N(e(s(t( (a( (s(t(r(i(n(g)))))))))))) Input: foobar Output: f(o(o(b(a(r))))) Input: 1234567890 Output: 1(2(3(4(5(6(7(8(9(0))))))))) Input: code-golf Output: c(o(d(e(-(g(o(l(f)))))))) Input: a Output: a Input: 42 Output: 4(2) 像往常一样,我们所有的默认规则和漏洞都适用,并且以字节计的最短答案为准!

15
前途和同事
曾经幻想创建像#brexit或#brangelina这样的很酷的Twitter标签吗?这高尔夫适合你。 编写一个程序,接受两个字符串A和B作为输入,并根据以下算法合并它们: 设nA中的元音组数(例如,在位置3和位置5 britain有2个元音组)。 iai 如果n = 1:从第一个元音组位置截断A(例如:bill=> b) 如果n> 1:从n-1第n个元音组位置开始截断A (例如:programming=> progr,britain=> br) 删除B开头的所有辅音(jennifer=> ennifer) 连接修改后的A和B 元音是aeiou; 辅音是bcdfghjklmnpqrstvwxyz。 输入值 您可以假设输入字符串是小写字母,并且至少包含一个元音和一个辅音。 例子 brad + angelina => brangelina britain + exit => brexit ben + jennifer => bennifer brangelina + exit => brangelexit bill + hillary => billary angelina + brad …
76 code-golf 

24
抛出SIGILL的最短代码
背景 我们已经对抛出SIGSEGV提出了挑战,那么为什么不对抛出SIGILL提出挑战呢? 什么是SIGILL? SIGILL是在处理器处发出非法指令的信号,这种情况很少发生。收到SIGILL后的默认操作是终止程序并编写核心转储。SIGILL的信号ID为4。您很少遇到SIGILL,除了通过,我完全不知道如何在您的代码中生成它sudo kill -s 4 <pid>。 规则 您将在程序中具有root用户,但是如果出于任何原因您不想这样做,则也可以使用普通用户。我在使用德语语言环境的Linux计算机上,我不知道在捕获SIGILL后显示的英文文本,但是我认为它类似于“非法指令”。抛出SIGILL的最短程序获胜。
76 code-golf 


30
打印此钻石
这个问题像病毒一样在我的办公室中传播。有很多方法: 打印以下内容: 1 121 12321 1234321 123454321 12345654321 1234567654321 123456787654321 12345678987654321 123456787654321 1234567654321 12345654321 123454321 1234321 12321 121 1 答案是用字符打分的,字符越少越好。

30
警察和强盗:反正则表达式高尔夫
注意:此挑战现已关闭。以后的警察提交的任何意见都不会被视为接受的答案。这是为了确保将来没有人可以发布一个非常简单的正则表达式,而这个正则表达式将保持不变,因为没有人再对挑战感兴趣。 警察的挑战 您将编写满足以下规范的简短正则表达式: 您可以选择任何可以在线免费测试的口味。在StackOverflow上有很多在线测试人员。Regex101特别适合入门,因为它支持PCRE,ECMAScript和Python风格。您可以根据需要通过单击右上角的扳手来增加超时限制。请在答案中包括您选择的测试仪。 如果没有适合您选择的测试器,则您还可以使用ideone这样的在线解释器,并用宿主语言编写一个小脚本,人们可以使用该脚本来测试您的提交。 您可以使用该功能的任何功能,而这些功能不会直接调用宿主语言(例如Perl的代码评估功能)。 同样,您可以使用任何修饰符(如果您的口味中有修饰符),除非它们导致代码评估。 您的正则表达式必须在合理的时间内(不超过一分钟)接受至少一个字符串S,并拒绝至少一个字符串T,每个字符串T的长度至少为16且不超过256个字符。S和T可以包含非ASCII的Unicode字符,只要可以将它们输入到在线测试器中即可。任何这样的字符串对都是提交内容的关键。 您的正则表达式可能会花费任意其他输入任意长时间。 挑战的核心是制作很难找到密钥的正则表达式。就是说,要么很难分辨出不匹配的字符串,要么很难分辨出匹配的字符串(或者即使正则表达式需要几天才能完成除键的字符串之外的所有字符串)。 强盗的挑战 鼓励所有用户,包括提交了自己的正则表达式的用户,“破解”其他提交的内容。将提交的其中一个键发布在关联的注释部分时,该提交将被破解。 重要说明:即使您几乎可以将任何字符串用作键的一部分,也请确保发布的两个字符串都在16至256个字符(包括16个字符)之间。 如果提交内容持续存在72小时而没有被修改或破解,则作者可以通过将其编辑为答案中的破坏者标签来显示有效密钥。这将使他的回答“安全”,即不再被破解。 每个用户每次提交只能进行一次破解尝试。例如,如果我向用户X提交:“您的密钥是0123456789abcdef/ fedcba9876543210。” 并且我错了,用户X会否认我的猜测是错误的,并且我将不再能够为该提交提交其他猜测,但是我仍然可以破解其他提交(其他人仍然可以破解该提交)。 破解的提交将被排除在争用之外(前提是它们“不安全”)。不应编辑或删除它们。如果作者希望提交新的正则表达式,则应在单独的答案中提交。 不要破解自己的提交! 注意:对于注释中的长字符串(不含空格),SE会以两个Unicode字符的形式插入手动换行符。因此,如果您在反引号中发布密钥的时间过长,以至于在非空格字符之间换行,则无法将密钥直接复制回正则表达式测试器中。在这种情况下,请提供与警察的正则表达式和您的密钥相关的正则表达式测试人员的永久链接-大多数测试人员都包括此功能。 计分 警察的得分将是其正则表达式的大小(以字节为单位)(如果不破解,则不包括模式加修饰符,不包括潜在的定界符)。“安全”提交的最低分数将获胜。 强盗的分数将是他们破解的提交数量。如果出现平局,则他们破解的提交的总字节大小将用于平局。在这里,最高字节数获胜。 如上所述,任何警察都可以作为强盗参加,反之亦然。 我将为挑战的两个部分分别维护排行榜。 排行榜 最近更新:2014/10/19,20:33 UTC 警察: 斜体提交尚不安全。 nneonneo,841字节 Wumpus Q.Wumbley,10,602字节 SP3000,52506个字节 user23013,53,884字节 nneonneo,656,813字节 强盗: user23013,破解:11,总大小: 733 + 30 + 2,447 + 71 + 109 + 121 + …

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.