编程拼图和代码高尔夫

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

2
圆迷宫检查器
您知道那些带有小滚珠轴承的木制玩具,其目标是在迷宫中移动吗?这有点像。给定一个迷宫和一系列动作,确定球在哪里结束。 棋盘垂直固定,旋转棋盘时,球仅靠重力移动。每个“移动”都是一个旋转(以弧度为单位)。 迷宫是简单的同心圆墙,每堵墙正好有一个通向外部走廊的开口,类似于此(假定这些墙是圆形的而不是尖的): 如您所见,球从中间开始,并试图滚出。一旦达到正确的方向,球将立即掉落,即使它在旋转的中间。旋转一圈可能会导致球从多个开口掉落。例如,旋转>= n * 2 * pi足以逃脱任何迷宫。 出于游戏目的,位于0.001开口弧度内的球被认为是“合适的”球,并将掉落至下一个走廊。 输入: 输入分为两部分: 迷宫由整数n表示,该整数表示迷宫中有多少个墙/洞。接下来是几n行,每行一个数字,代表通向下一个走廊的位置。 给出的移动次数是一个整数,m表示已执行了多少移动次数,接着(再次在单独的行上)是以弧度为单位的板的m顺时针旋转(负数是逆时针)。 所有通过位置均以给出0 rad = up,正弧度顺时针旋转。 对于上面的示例图像,输入可能如下所示: 7 // 7 openings 0 0.785398163 3.14159265 1.74532925 4.71238898 4.01425728 0 3 // 3 moves -3.92699082 3.14159265 0.81245687 输出: 输出球在其中结束的走廊编号。走廊从中心开始为零索引,因此您从开始0。如果您通过一个开口,那么您就在走廊上1。如果您逃脱了整个迷宫,则输出任何整数>= n 对于样本输入,有三个动作。第一将导致球从两个开口掉落。第二个没有找到一个开口,第三认定一个。球现在在走廊中3,因此预期输出为: 3 对于无效输入,行为未定义。有效输入的格式正确,带有n >= 1和m >= 0。 评分是标准代码高尔夫,最少的字节数获胜。禁止出现标准漏洞。输入一定不能硬编码,而可以从标准输入,参数,控制台等中获取。输出可以是控制台,文件等,只要使其输出可见即可。
12 code-golf 

4
最短的代码写最长的代码
您面临的挑战是用您选择的语言创建最短的代码,该代码将最长的代码写在.txt文件上,以将两个数字相乘作为输入并输出答案,从而将两个数字相乘。 不需要输入代码来执行写作业! 生成器代码和生成的代码可以使用任何语言 请勿使用无限制的序列或级数来放大文本文件。 不要使用不必要的语句来增加分数。 评分 ( size of text file generated in bytes ) (without any unnecessary white spaces, tabs or newlines) ----------------------------------------- ( size of your code in bytes ) 优胜者 从现在开始的1个星期内将选出最高分数的优胜者。 编辑:代码中输入两个数字的范围应介于-32768至32767之间

4
混淆单词拼写检查器!
您的任务是制作一个使用Calibri字体输入任意长度的单词的程序。该单词将由普通QWERTY键盘上的字母字符组成。不会有重音符号或其他任何字符(例如标点符号,数字等)。 因此,原始字符为: ABCDEFGHIJKLMNOPQRSTU VWXYZ 然后该程序将对其进行加扰以更改字符,以使它们看起来相似或完全相同,这可能会通过标记它来使拼写检查器混乱,但由于它看起来与普通单词相同,但字符不变,这会使我感到困惑。 例如,Unicode字符U+0430西里尔小写字母a(“а”)看起来与Unicode字符U+0061拉丁小写字母a(“ a”)相同,后者是英文中的小写字母“ a”。 另一个示例是俄语字母а,с,е,о,р,х和у在基本拉丁字母中具有光学对应项,并且看起来与a,c,e,o,p,x和y接近或相同。 规则: 该程序必须找出相似的字符。这意味着它们不能以任何形式存储。这意味着Unicode值或字符本身。 这是代码高尔夫-最短的答案胜出! 您还必须发布非高尔夫球版本,以免在打高尔夫球时无法检测到作弊! 您也可以使用任何函数或程序来执行此操作,只要单词也没有存储在此处即可。 您必须使用UTF-8。禁止其他输入和输出。这样一来,我实际上就可以阅读您正在输出的内容以及我输入的内容,因此我不会有随机的正方形,问号和“点点滴滴”! 它必须使用我输入的任何单词。 一个有效的示例(将其复制并粘贴到单词中,并在其后插入一个空格,它应标记第二个而不是第一个)。 Halim Hаlim 一些有用的信息在这里 祝好运!开始
12 code-golf 

16
你能快速繁殖多少?
随着最近对Python的 猛烈抨击,这是尝试展示Python的优势。您面临的挑战是编写一个程序,n在10秒钟内计算尽可能高的阶乘。 您的分数将是 (highest n for your program on your machine)/(highest n for my program on your machine) 规则 您必须计算一个精确的整数解。由于阶乘将远远大于64位无符号整数所能容纳的整数,因此如果您的语言不支持大整数,则可以使用字符串 禁止出现标准漏洞。特别是,您不能使用任何外部资源。 仅计算部分(这包括使用字符串的任何变通方法所花费的时间)平均总时间应少于10秒。 仅单线程程序。 您必须以易于打印的形式存储输出(因为打印需要时间)(请参见下面的程序),字符串,变量,字符数组等。 编辑: 您的程序必须为所有程序提供正确的输出n:1 <= n <= (your highest n) 编辑2: 我不想明确地说这句话,但是使用您语言的内置阶乘函数属于标准漏洞http://meta.codegolf.stackexchange.com/a/1078/8766 对不起,Mathematica和Sage 我的程序 from __future__ import print_function import time def factorial( n ): return reduce( ( lambda …

2
用文字造词云
该代码应从标准输入中获取文本: The definition of insanity is quoting the same phrase again and again and not expect despair. 输出应该是一个PNG文件,其中包含与该文本相对应的词云: 以上词云创建使用专门的在线应用程序,它过滤词The等常用词(of,is,and,not,和the)。由于这是代码高尔夫,因此不会过滤常见的单词,因此我将单词云的次要美学留给每个编码者选择。与此处示例的图像不同,任何单词都不应被排除,无论是普通单词还是其他形式。单词的定义如下。 在这种情况下,单词是字母数字。数字不充当分隔符。因此,例如,0xAF有资格作为一个单词。分隔符将是非字母数字的任何内容,包括.(点)和-(连字符)。因此i.e.或pick-me-up将分别产生2或3个字。应区分大小写- This并且this是两个不同的词, '也将是如此隔膜wouldn,并t将会从2个不同的字wouldn't。 标签应成簇出现,但不能重叠,字体大小应与该单词在文本中的出现次数成正比。这个词应该只出现一次。在这种情况下,不需要特定的字体颜色。语义关联不是必需的。 提示 -此其他代码可以帮助您: 计算文本中的单词并显示它们

3
建立3分频电路
TCS中的布尔电路基本上是由“与”,“或”,“非”门组成的DAG,通过“功能完备性”已知,它们可以计算所有可能的功能。例如,这是ALU中的基本原理。 挑战:创建一个电路以确定8位二进制数是否可以被3整除,并以某种方式可视化您的结果(即某种形式的图片) 选民的判断标准基于生成电路的代码是否能很好地推广到任意大小的数字,以及算法创建的可视化是否紧凑/平衡但仍然可读(即不允许人工可视化)。也就是说,可视化仅适用于n = 8,但理想情况下,代码将适用于所有'n'。获奖作品只是最高票数。 有点类似的问题:使用NAND逻辑门构建乘法器

7
这个数字会成为一个很好的2048组合吗?
受xkcd启发。 您的挑战是确定一个数字在2048游戏中是否会很好地组合在一起。您的输入将是一个数字,例如: 8224 输出将是该数字是否将构成一个很好的2048组合,对于此输入,它将是true或yes或1或任何其他表示肯定结果的方式。 对于不熟悉游戏的人,这里有一个简单的解释:将两个的幂排列在一个网格上,如下所示:[2] [2]。磁贴可以向任意方向移动,如果两个相同的磁贴相遇,它们将成为两个的下一个幂(因此[2] [2],向左或向右移动时变为[4])。或者,您可以在这里尝试游戏。 “好的2048组合”是什么意思?它表示任何数字,如果在游戏“ 2048”中可以将其组合为一个数字。(零表示空格,如果需要可以忽略。)请注意,数字可能是多个数字!但是,移动之间的数字一定不能改变。以下是一些示例/测试用例(“好”表示组合很好,“坏”表示不好): 好:8224(8224-> 844-> 88-> 16) 良好:2222(2222-> 44-> 8) 良好:22048(22048-> 448-> 88-> 16) 错误:20482(不能将外部2组合在一起,也不能将2048和2组合在一起) 良好:20482048(20482048-> 4096) 错误:210241024(210241024-> 22048,但这现在是[2] [2048],由于数字不能在两次移动之间改变,因此无法合并) 好:2048(已经是一个数字) 错误:2047年(不是2的幂) 错误:11(游戏中没有1) 好:000040000000(零是空白) 杂项规则: 输入可以来自任何合理的地方,例如STDIN,函数参数,文件等。 输出也可以在任何合理的地方,例如STDOUT,函数返回值,文件等。 忽略网格大小- 22222222应该仍然输出true。 只要是2的幂,最大数就没有最大值。因此,可能的数字是大于0的任意2的幂。 对于那些担心零会引起歧义的人,情况并非如此。例如,22048可以解析为[2] [2048]或[2] [2] [0] [4] [8]。第一个无效,但是第二个有效,因此应输出true。 这是代码高尔夫球,因此最短的代码(以字节为单位)将获胜!
12 code-golf 

3
以ASCII艺术显示星星的爆炸
目标是为ASCII艺术中爆炸的恒星设置动画,从单个恒星角色*到超新星,最后到太空空隙。 规则: 您仅需在24行上每行显示80个字符(这是Linux上的默认终端大小) 仅允许这95个ASCII可打印字符 脚步: 初始恒星必须在*水平和垂直方向上居中 恒星必须成长以表明它爆炸了 最后,屏幕必须为空(星星消失了) 代码或语言的长度无关 投票将决定最有创意和最美丽的结果。你见过一颗爆炸的星星吗?让我们看看你如何想象的。 我已经添加了一个使用Python作为示例的答案,但是建议您创建一些不同或更好的东西。 您有一个星期的参赛时间,获奖者将于2014-04-01入选。 输出样本(仅带有某些帧): # start * # during explosion ****#**** ***#@##*#@#**** *@**@@@*##**#*#**#* **@@*#**#@*#@****#*** ****@*@***#****@**@@* *******@***@@***#****#* *#***#*##@****##@@@** **#@###****@********* *****@**@*@*****@** ************@** ****#**** # star is expanding * ********* **@****** **** **#**@ #**#*# **** *** ** **##** *@@*@* ** *** ** * @@ …

5
计算块熵
我曾经需要编写一个函数,计算给定块大小下给定符号系列的块熵,结果很短。因此,我正在挑战您对这种功能进行编码。我没有告诉您我现在所做的事情(以及使用哪种语言),但是如果没有人首先提出相同或更好的想法,我会在一周左右的时间内告诉您。 块熵的定义: 给定一个符号序列A = A_1,…,A_n和块大小m: 大小为m的块是符号序列的m个连续元素的分段,即,对于任何合适的i,A_i,…,A_(i + m-1)。 如果x是大小为m的符号序列,则N(x)表示与x相同的A的块数。 p(x)是来自A的块与大小为m的符号序列x相同的概率,即p(x)= N(x)/(n-m + 1) 最后,A的块大小为m的块熵是A中所有大小为m的块x的-log(p(x))的平均值或-p(x)·log(p (x))在A中出现的每x个大小为m的x上。(您可以选择任意合理的对数。) 限制和澄清: 您的函数应将符号序列A以及块大小m作为参数。 您可以假定符号表示为从零开始的整数或其他方便的格式。 您的程序应该在理论上能够接受任何合理的论据,而实际上应该能够在标准计算机上计算示例案例(见下文)。 允许内置函数和库,只要它们在一次调用中不执行大部分过程,即从A中提取大小为m的所有块,计算给定块x的出现次数或计算熵从一系列p值中–您必须自己做这些事情。 测试: [2, 3, 4, 1, 2, 3, 0, 0, 3, 2, 3, 0, 2, 2, 4, 4, 4, 1, 1, 1, 0, 4, 1, 2, 2, 4, 0, 1, 2, …
12 code-golf 

2
您在墨水瓶中看到什么?罗夏(Rorschach)世代[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 因此,我希望您尝试生成Rorschach图像,如下图所示: 这是进一步启发的链接。 这是一次人气竞赛,但我会说,颜色和质地可能比黑白更受欢迎。 罗夏墨迹图像是通过用墨水折叠纸张而创建的,因此一个标准是对称性。 ASCII艺术作品是有效的,但必须遵循与上述相同的标准。

4
最糟糕的CSS滥用?[关闭]
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加细节并通过编辑此帖子来澄清问题。 2年前关闭。 什么是最酷/最好/最糟糕的CSS滥用? 例如,这些形状,或使用多个框阴影制作像素图。 人气竞赛结束于14/04/14。

1
为Stack Exchange网站创建狂热机器人
今天的挑战是欺骗徽章! 您将构建一个机器人,该机器人将连接到Stack Exchange网站,以您的身份登录,访问/ questions页面,访问一个问题,然后在“相关”侧边栏中访问其他9个问题(因为这足以算作“活动”,并且我需要对某些事情进行标准化)。 该漫游器必须每天执行一次此过程,而无需用户进行任何输入或采取任何操作。它应该可以继续运行,用户应该永远不能触摸计算机,并且连续的天数仍将增加。“访问”该站点后,必须打印“已访问”。 您将假定用户正在使用Stack Exchange提供的OpenID。 该程序的输入将是站点URL,SE OpenID电子邮件和SE OpenID密码。例如: /programming// doorknob@doorknob.doorknob password 您可以根据需要输入。 您的程序必须至少满足以下条件: /programming// https://meta.stackoverflow.com/ /superuser// /codegolf// (只是确保它是通用的。) 这是代码高尔夫球,因此最短的代码(以字节为单位)将获胜!
12 code-golf 

2
ASCII艺术逻辑门图
我要求您编写一个代码,以便为等式的乘积和形成一个(扩展的)ASCII艺术逻辑门图。 使用以下表示法来表示门: 和 INPUT───|&& |&&───OUTPUT INPUT───|&& 要么 INPUT───|OR |OR───OUTPUT INPUT───|OR 具有超过2个输入的门 INPUT───|OR |OR INPUT───|OR───OUTPUT |OR INPUT───|OR 不 INPUT───│>o───OUTPUT 字符集 请注意,这│不是ASCII管道符号,而是方框图字符。使用方框图字符,例如─ │ ┌ ┐ └ ┘用于连接。 例 输入值 A'*B'+B*C 输出量 A────│>o────│&& │&&─────┐ B────│>o────│&& └│OR │OR─────A*B+B*C B───────────│&& ┌│OR │&&─────┘ C───────────│&& 优胜者 获胜者是5天内投票最多的答案

9
分开并保持快乐。谁在乎征服部分?
好吧,当我为两个妻子购买礼物时,我希望它们对我来说同样重要,但是很难以固定的预算购物。取而代之的是,我买了一堆东西,将它们分成两组,并尽可能地赋予它们相等的价值。然后我买了一束巧克力来修复其余的巧克力。 但是我不想在我的计算机可以做到的时候做所有的努力。而且你也不是。因此,请解决此问题,以便下次您需要在妻子之间分配礼物时,您会知道这很容易。 输入值 (N * 2)个元素的1个数组,其中在第一行中指定了N * 2。 下一行中数组的元素。 输出量 N个元素的2个数组,每个数组使得:( 数组1的元素之和)与(数组2的元素之和)的差尽可能接近0。 例 输入值 4 1 2 3 4 输出量 1 4 2 3 diff=0 免责声明:我没有两个妻子。但是当我感到难过时,我想象有两个妻子。突然,我很感激和高兴,因为我只有一个。:D

2
实施反向引擎
对于本次高尔夫,您的工作是编写一个程序,该程序将进行黑白棋游戏(othello)的操作并将结果显示给用户。 输入值 一串数字,取值范围为[0-7]。每对数字首先代表X坐标,然后代表Y坐标。不在该范围内的任何字符都应忽略。 输出量 游戏结果的视觉表示,包括输入结束时谁在领先。这可能是图形输出或按键输出,但必须是游戏的可视网格,并带有不同的字符/图形符号,分别表示黑色,白色和空白。 此外,您的代码应输出一条错误消息,并在输入非法举动时停止(相同的方块不止一次,或者不会翻转任何方块的方块)。 跳过应该优雅处理。如果一种颜色没有合法移动,则跳过该回合,而另一位玩家开始比赛,则会发生跳过。 黑色总是最重要的。 例子 23 ........ ........ ........ ..bbb... ...bw... ........ ........ ........ b 232425140504032627 ........ ........ ........ b.bbb... bbbww... b.b..... ..b..... ..b..... b 2324322513 ........ ........ ........ ..bbb... ..www... ........ ........ ........ e 23242555 ........ ........ ........ ..bbb... ..bbw... ..b..... ........ ........ e

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.