编程拼图和代码高尔夫

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

6
模拟我的键盘
我的键盘出现了问题(更有可能是浏览器出现了问题)。有时,当我单击一个新的文本字段并开始输入时,我所有的文本都会向后显示。经过很短的时间(出于挑战的目的,我们会说是10毫秒),它将恢复再次向前键入。似乎一开始我开始输入时光标没有移动,所以所有字母都插入了文本字段的开头。 例如,如果我输入的python内容pyt是在最初的10毫秒内输入的,则结果为 hontyp 任务 您的工作是在尽可能少的字节中模拟此行为。 输入值 您可以采用任何合理的方法进行输入。但是,您可能不能将输入作为两个单独的字段。当程序开始允许输入时,应开始10毫秒的延迟。也就是说,在允许输入之前,您可能需要进行预处理,这不应算作10毫秒。 在时间上允许一定的宽恕,只要它在合理配置的计算机上平均为10毫秒且偏离时间不超过1毫秒(不超过1%)即可。 输出量 您可以按照自己认为合适的任何方法输出字符串。您可以在用户输入时实时更新,也可以在完成输入后(通过换行符或文件结尾^D)输出结果。 测试用例 其中一些是由此CMC在第十九字节中生成的 First 10 | after | result bra in-flak in-flakarb ap ple plepa code- golf golf-edoc no ne neon we st stew ai med media draw back backward
15 code-golf  string  date 

10
木炭打高尔夫球的技巧
木炭是一种仅由ASCII和DLosc创建的语言,专门处理ASCII艺术挑战。 您在木炭上打高尔夫球有哪些技巧?显然,我在寻找与木炭特别相关的技巧,而不是那些可以应用于大多数(即使不是全部)语言的技巧。
15 code-golf  tips 

4
Sp | Lit wo(r)dS,S(P)lit wO | rds
m | Y bR | ain为We | iRd。F(o)RT(h)E La | sT fi(v)e YE | ars O | R s | o,(I)在h(a)lf wh | En中具有C(u)T wO | rds (I)s(e)e Th | em。当我开始执行操作时,我付出了很大的努力-B(u)TI几乎不会(n)T d | o。N(o)w,我将其放在脑后,几乎没有(| n | d)它。但是,我认为这将是一个巨大的挑战。 定义 对于这个挑战,根据我对Sans-Serif字体宽度的判断,每个字母都会得到一个满分。您将使用此宽度将一个单词切成相等宽度的两半。该挑战将使用的字符是小写和大写字母,撇号和连字符。 Width Characters 1 i l I ' 2 f j r …
15 code-golf  string 

15
Cheapo Enigma机(警察)
对于强盗帖子,Cheapo Enigma机器(Robbers) 警察的提交将包含一个程序/函数,该程序/函数接受一个字节的数据并返回一个字节的数据。每个可能的输入都必须产生唯一的输出。(换句话说,您的函数必须是双射的) 强盗将尝试使用尽可能短的代码来创建您的逆函数。因此,您的目标是使函数难以反转。 您不能使用仅用于哈希或加密目的的内置程序。 您的字节数不能超过64个字节。0字节的解决方案不符合获胜条件。 输入/输出格式 8位(0或1),或1-256、0-255或-128至127范围内的10进制整数。可以使用标准I / O或文件I / O。函数也可以返回一个值作为输出。输入和输出应属于同一范围(二进制,1-256、0-255或-128至127)。强盗也将需要使用此范围进行输入和输出。 计分 您的字节数与最强盗对您的尝试次数之比。最低分获胜。 仅当强盗试图击败您时,您才有资格赢得(作为警察)。(这个强盗可能是你) 例 C ++,使用0-255范围,31个字节 int x; cin>>x; cout<<(x+1)%256; C ++中可能的强盗提交,32字节 int f(int x) {return x?x-1:255;} 不需要使用相同的语言或类似的算法 这给警察和强盗的得分都是31/32 = 0.97。

30
暂停时间是原来的两倍
您面临的挑战是打印输入,等待任何时间,打印输入,等待两次您最初等待的时间,再次打印输入,依此类推。初始延迟必须小于1小时,并且后续延迟的精度必须为+/- 5%。除此之外,对延迟时间没有限制。 例: 输入:hi。 输出:hi(1ms暂停)hi(2ms暂停)hi(4ms暂停)hi(8ms暂停)hi(16ms暂停),等等 还允许: hi(暂停1分钟)hi(暂停2分钟)hi(暂停4分钟)hi(暂停8分钟)hi(暂停16分钟),等等。 输入必须在程序开始时提供(STDIN,命令行参数,函数参数等),并且必须是字符串。 初始延迟不能为0。
15 code-golf  string  date 

2
画一条直线
绘制包含直线的简单ASCII艺术图像。它类似于这个和这个,但不同的规格。 输入值 您可以修改此输入格式以适合您的代码。 整数 width 整数 height 整数 x0 整数 y0 整数 x1 整数 y1 输出量 填充的ASCII艺术图像,具有指定的宽度和高度,其中包含一条从像素(x0, y0)到像素的线(x1, y1)。 任何标准形式的文本输出都是可以接受的,但不要使用内置的线条绘制功能。 细节 该线条必须使用单个可打印字符(例如#)绘制,而背景则用不同的字符(例如.)填充。您必须打印必要的结尾字符,以便图像尺寸正确。 像素坐标可以是0索引或1索引,并且可以从图像的任何角落开始。应通过想象一条连接起始像素和终止像素中心的0宽度子像素线来绘制该线。该行输入的每个像素均应填写。 获奖 通常的代码高尔夫球规则。最短的代码获胜。 例子 IN: width, height, x0, y0, x1, y1 IN: 7, 6, 0, 0, 6, 5 OUT: .....## ....##. ...##.. ..##... .##.... ##..... IN: 3, 3, …

23
计算列表中集合的出现次数
给定一个非空的字符串集和一个字符串列表,请找出该字符串集在列表中出现的次数,即可以使用列表中的项创建该字符串集的次数。列表中的每个元素只能使用一次。 提示:集合是唯一项的无序列表。 默认输入/输出规则适用。 不允许外部库。编译器/解释器标准库是可以的。这是代码高尔夫,因此最短的解决方案很重要。 测试用例: ["apple", "banana"], ["apple", "pear", "apple", "banana", "banana"] => 2 ["apple", "banana"], ["apple", "pear", "apple", "banana", "apple"] => 1 ["apple", "banana", "pear"], ["apple", "banana", "kiwi", "apple"] => 0 ["coconut"], [] => 0 编辑:删除了一个句子,指出输入参数是在本地范围内定义的。这与上面链接的默认IO规则相矛盾。

7
检测近乎完美的车牌
注意:这是由@Willbeing这个问题启发的,该任务的任务是计算一定长度的完美板的数量,但略有不同。 我们称其为满足以下条件的完美车牌: 它由字符组成,可以是大写字母([A-Z])或数字([0-9]) 用1索引(即A=1,B=2,...,Z=26)将英文字母的字母位置相加得出整数n 获取每个数字块,将它们求和,然后将所有结果相乘得到相同的结果,n n是一个完美的正方形(例如:49 (7 2),16 (4 2)) 一个近乎完美的车牌符合完美牌照的条件,除了ñ是不是一个完美的广场。 输入值 代表车牌文本的字符串,以任何标准格式输入,硬编码除外。 输出量 如果给定的字符串表示接近完美的车牌,则返回真实值(例如:True/ 1),否则返回虚假值(例如:False/ 0)。请注意,严禁使用任何标准形式的输出,但请注意,此漏洞是绝对禁止的。 例子 licence plate -> output A1B2C3 -> 1 A + B + C = 1 + 2 + 3 = 6 1 * 2 * 3 = 6 6 is not a perfect …

12
二元分支
给定一个二进制数字,您的任务是创建一个深度为2的该数字的“分支”。 例如,0作为输入,您应该完全输出以下内容: /000 /00 / \001 0 \ /010 \01 \011 这应该是分支机构如何创建的完全自我解释。深度2表示我们计算最多2个数字的分支。我们还按顺序计算分支,顶部为零,底部为零。 更多测试用例: 0 /000 /00 / \001 0 \ /010 \01 \011 1 /100 /10 / \101 1 \ /110 \11 \111 00 /0000 /000 / \0001 00 \ /0010 \001 \0011 01 /0100 /010 / \0101 01 \ …

2
山丘之王:银行抢劫
示例运行已添加4/11 规则澄清4/8:所有参赛作品将参加一场巨大的免费比赛,其中包括我的计算机在48小时内可以完成的所有比赛。 任何花时间在Twitch上观看直播的人都知道DeepBot的盛行,甚至可能熟悉Bank Heist的下注游戏。这场山丘之王锦标赛直接受到该游戏的启发。不过不要担心。我认为我在该版本中投入了足够多的纽带,以使事情变得有趣。 一个简单的例子 #####GAME 13: 16 players###### Round 1: gunHeCK bet 0. PassivePanga bet 69. SnitcherKing bet 1. Lurker bet 0. OC'sRandomTpyos bet 1. MonisAddiction bet 69. RaysFive01K bet 28. LimeadeSneaktar bet 1. KaylorrCriterion bet 0. HardHatUmar bet 0. HeCKuSumer bet 185. Round 2 HeCKuSumer decided to !guncheck. …

2
用最少的火柴进行数学
元背景 这是关于Puzzling的一个问题,即时反应是“嗯,有人会用计算机解决这个问题”。对于要解决这个问题的程序到底有多复杂,存在争议。好吧,“这个程序必须有多复杂”几乎就是代码高尔夫的定义,所以也许PPCG可以解决这个问题? 背景 甲火柴方程基本上是一个正常的数学方程,但是其中数字和运营商通过将火柴到表物理构造。(这里的火柴棒的主要相关特征是它们相当坚固并且具有恒定的长度;有时人们会改用其他物体,例如棉签。) 对于这个挑战,我们不需要为火柴的排列方式定义特定的规则(就像链接的挑战一样)。相反,我们只关心表示一个计算为给定数字的表达式所需的火柴棍数量。 任务 这是您可以使用的数字字母和数学运算符,每个运算符的成本都包含在火柴棒中: 0,花费6条火柴 1,花费2个火柴棍 2,花费5条火柴 3,花费5条火柴 4,花费4个火柴棍 5,花费5条火柴 6,花费6条火柴 7,花费3个火柴棍 8,花费7根火柴 9,花费6条火柴 +,花费2个火柴棍 -,花费1个火柴棍 ×,花费2个火柴棍 (为了避免使用非ASCII字符,可以×根据需要*在程序的输出中表示为。在大多数编码中,×字节占用的字节数大于*,因此我想大多数程序都希望利用此余地) 您需要编写一个程序,该程序将非负整数作为输入(通过任何合理的方法),并生成一个计算结果为该整数作为输出的表达式(同样通过任何合理的方法)。此外,该表达式必须是平凡的:它必须包含至少一个运营商+,-或×。最后,就所有火柴棍成本而言,您输出的表达式在所有符合规范的输出中必须是最便宜的(或与最便宜的捆绑)。 澄清说明 您可以通过在一行中输出多个数字来形成多个数字(例如,11-1要产生的有效输出10)。完全准确地说,所得数字将以十进制表示。这种级联不是对中间结果起作用的操作;仅针对原始表达式中出现的文字数字。 为了这个挑战的目的。+,-和×是中缀运算符;他们需要左右左右有一个论点。不允许在前缀位置(例如+5或)中使用它们-8。 您没有可用的括号(或任何其他控制优先级的方法)。该表达式根据典型的默认优先级规则进行求值(首先进行乘法运算,然后从左至右对加法和减法求值)。 除上面列出的数学运算符或常量外,您无权访问任何数学运算符或常量;Puzzling经常接受“横向思考”解决方案,但是要求计算机自己提出这些解决方案是没有意义的,在PPCG上,我们希望客观地找到解决方案是否正确。 通常的整数溢出规则适用:您的解决方案必须能够在语言的假设(或实际)版本中使用任意大整数,默认情况下所有整数都是无界的,但是如果您的程序由于实现而在实践中失败不支持那么大的整数,这不会使解决方案无效。 如果您多次使用相同的数字或运算符,则每次使用时都要支付其火柴成本(因为,显然,您无法在桌子上的两个不同位置重复使用相同的物理火柴)。 没有时间限制;蛮力解决方案是可以接受的。(尽管您拥有比暴力破解还要快的解决方案,但即使更长,也可以随意发布;查看其他方法的比较总是很有趣的。) 尽管从不需要编写代码说明,但这可能是个好主意。代码高尔夫球解决方案通常很难阅读(尤其是对于不熟悉其编写语言的人),并且除非您了解其工作原理,否则很难评估(并对其投票)。 胜利条件 作为代码高尔夫球挑战,认为字节数更少的答案更好。但是,像往常一样,即使它们比某些其他语言更冗长,也可以用不同的方法或特定的语言发布答案。高尔夫的目标实际上是看您可以优化某个特定程序的程度,以这种方式进行操作可以为我们提供许多潜在的程序来优化。因此,如果有人使用完全不同的方法或完全不同的语言提交解决方案并获得更短的答案,不要气disc。很可能是您的答案得到了更好的优化,并且显示了更多的技巧,PPCG的投票者经常对此表示赞赏。

16
从不奇数或偶数
您是否注意到这是回文? 输入 非负整数或表示它的字符串 输出 4个可能的输出,代表数字的两个属性: 回文是否 棘手的#2 棘手的2号属性 如果数字不是回文,则此属性回答以下问题:“第一位和最后一位是否具有相同的奇偶性?” 如果数字是回文,则此属性回答问题“第一和中间数字是否具有相同的奇偶性?”。对于偶数长度,中间数字是中心两位数字之一。 例子 12345678-> False False 这不是回文,第一位和最后一位具有不同的奇偶校验 12345679->假 是不是回文,第一位和最后一位具有相同的奇偶性 12344321-> 是错是回文,第一个数字1和中间的数字4具有不同的奇偶校验 123454321-> True True 这是回文,第一个数字1和中间的数字5具有相同的奇偶校验 PS: 您可以决定输出类型和格式。它可以是任意4个不同的值。只需在您的答案中提及即可。

2
SchläfliConvex常规多面体解释器
背景 所述施莱夫利符号的形式为{P,Q,R,...}限定规则多面体和镶嵌的表示法。 Schläfli符号是递归描述,以p边的常规多边形为{p}开始。例如,{3}是等边三角形,{4}是正方形,依此类推。 {p,q}表示在每个顶点周围具有q个规则的p侧多边形面的规则多面体。例如,立方体在每个顶点周围有3个正方形,并用{4,3}表示。 {p,q,r}表示一个规则的4维多面体,每个边缘周围有r个{p,q}个规则多面体单元。例如,tesseract {4,3,3}在边缘周围有3个立方体,{4,3}。 通常,规则多面体{p,q,r,...,y,z}在每个峰周围都有z {p,q,r,...,y}个小面,其中一个峰是多面体中的一个顶点, 4多面体中的边,5多面体中的面,6多面体中的单元格和n多面体中的(n-3)面。 规则的多边形具有规则的顶点图形。正则多边形{p,q,r,... y,z}的顶点图为{q,r,... y,z}。 规则多面体可以具有五角星形的星形多边形元素,其符号为{5/2},由五边形的顶点表示,但交替连接。 根据构造的角度缺陷,Schläfli符号可以表示有限凸多面体,欧氏空间的无限细分或双曲空间的无限细分。正角缺陷使顶点图形可以折叠成更高的维度,并以多面体的形式循环回到自身。零角度缺陷会细分与小平面相同尺寸的空间。负角缺陷不能在普通空间中存在,而可以在双曲空间中构造。 竞争 您的目标是创建一个程序,该程序在通过SchläfliSymbol时将返回凸多面体的完整描述。这只是Schläfli符号的一个子集,但它是最简单的符号,我相信即使没有其他可能性,这也将是一项非常困难的任务,而多面体是镶嵌的起点。设计该问题的规则时要以将结果作为API的想法进行设计,而我无法在Internet上找到任何此类程序。 您的程序必须完成以下所有操作。 该程序必须能够生成任何有限尺寸的规则凸多面体。在2维中,这包括n个角。在3维中是柏拉图式固体,在4维中包括tesseract,orthoplex和其他一些实体) 程序必须(a)在原点上放置一个点,或(b)确保所有点的平均值是原点。方向无关紧要。整体大小无关紧要。 程序必须提供完整的描述,这意味着对于4维对象,程序将返回/打印顶点,边,面和多面体。这些报告的顺序无关紧要。对于多面体,这是渲染对象所需的信息。 你不会需要处理: 镶嵌 双曲几何 分数Schläfli符号(非凸) 嵌入式Schläfli符号(非均匀平铺) 如果要求您执行任何上述操作,则可能返回错误。 示例:多维数据集 输入: 4 3 输出: Vertices 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 …

15
索引一个数字
给定一个数字字符串或一个整数作为输入,您将不得不对其进行索引。 这是修改输入的方式。我们将以30043376111一个示例为例: 首先,找到各个数字每次出现的索引总和: 0: 1 + 2 = 3 1: 8 + 9 + 10 = 27 3: 0 + 4 + 5 = 9 4: 3 6: 7 7: 6 然后,构造一个新的整数或字符串,其中上面的数字按其索引的总和顺序排列。如果多个数字产生相同的总和,则较小的数字位于较大的数字之前: 047631 最后,删除所有前导零,然后返回或打印结果: 47631 您必须编写一个程序或函数来返回或打印索引的输入。 这是代码高尔夫球,因此以字节为单位的最短代码胜出! 如果需要,可以添加更多的测试用例。

5
模拟即时径流选举
这是选举!我们所在的区域实施称为即时径流的投票系统(有时称为替代投票或优先投票)。每个投票者从最喜欢的到最不喜欢的顺序对每个候选人进行排序,为他们的最喜欢的候选人标记一个“ 1”,为他们的第二个候选人标记一个“ 2”,依此类推,直到为每个候选人编号。我让这个友好的考拉解释其余的事情: (图像从改性原始通过帕特里克亚历山大,所述下使用CC BY-NC-SA 3.0 AU许可)。 如果您更喜欢文本形式的即时径流解释,也可以参考Wikipedia文章。 (注意:虽然可能不大,但也有可能有两个或两个以上投票最少的候选人。在这种情况下,请以相等的概率随机选择其中之一,并消除他们。) 在此挑战中,输入的第一行是字符串列表,这些字符串是选举候选人的名称。在这些示例中,尽管可以随意调整输入格式以适合您的语言,但我使用了管道分隔值。 The Omitted Anti-neutrino|Placazoa|Alexander the Awesome|Tau Not Two|Semolina Sorcerer 接下来是n输入行,也是行列表,每行代表一个表决。第一个条目表示投票#1优先,第二个投票#2,依此类推。例如: Alexander the Awesome|Semolina Sorcerer|Tau Not Two|Placazoa|The Omitted Anti-neutrino 这意味着该特定投票将亚历山大作为第一优先级,将Semolina Sorcerer作为其第二优先级,将Tau Not Two作为其第三优先级,依此类推。您可以假设每个投票都将包含每个候选人,并且不会有空白或不完整的投票。 给定选票作为输入,您的程序或功能应随后输出选举的获胜者。您可以在此处找到Python 3中未引用的参考实现。 输入和输出示例 输入值 Dionysius|Portal Butter|Alexander the Awesome|Red Trainmen Portal Butter|Alexander the Awesome|Dionysius|Red Trainmen Dionysius|Portal Butter|Alexander the Awesome|Red Trainmen …
15 code-golf 

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.