编程拼图和代码高尔夫

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

4
伪造预测
新的天气预报超级计算机已经到货,并且不起作用。 同时,您的老板希望您通过伪造每日风向图来花一些时间来购买技术人员。 您的任务是绘制代表风向的箭头网格。 网格为: 由15像素的正方形瓷砖组成 8瓦乘8瓦 总计120像素见方 000背景 每个网格图块都有8个可能的方向,代表风向: 北 东北 东 东南 南 西南 西方 西北 必须将其描述如下: N NE E SE S SW W NW 地图必须逐渐变化,以便可信。 这意味着每个图块可能仅与它的邻居相差一个步骤。特别: 一个图块只能与四个相邻图块中的每一个相差一个增量或减量。(或3个用于边砖,2个用于边砖)。 例如,与邻居E相邻的图块可以是NE,E或SE(假设它与其他邻居一致)。 方向可以回绕,即N-> NW和NW->N。 为了说明这一点,以下映射是有效的: NW N NE NE NE NE NE NE N NE NE NE NE NE NE E NE …

6
绘制同心ASCII六边形
编写尽可能短的程序,该程序采用一组不同的正整数,并输出由斜线,下划线,空格和换行符组成的具有那些边长的同心六边形的ASCII渲染。 以https://mothereff.in/byte-counter计数的最短程序(以字节为单位)获胜。 例子 (它们看起来更好,行距更少。) 如果输入为1输出,则应为边长为1的六边形: __ / \ \__/ 请注意,六边形的顶部和底部使用两个下划线,因此比例更好。 通常,大小为N的六边形在每个倾斜的侧面上包含N个斜杠,并且在顶部和底部上均包含2 * N下划线。 如果输入为1 2输出,则应为边长为1和2的同心六边形: ____ / __ \ / / \ \ \ \__/ / \____/ 如果输入是1 3输出,则应为: ______ / \ / __ \ / / \ \ \ \__/ / \ / \______/ 如果输入是1 3 2输出,则应为: ______ / …

4
链上的数字
可以显示一些正整数具有称为链可除性的属性。对于要被n整除的数字 ,它必须满足三个要求: 每个数字除以由 n个 数字数字。 例如,该数目是7143链被2整除,因为7划分114和分歧43.据不连锁被3整除,因为7不划分143。 考虑到可除性的每个子序列都不能有前导零。 例如,数字14208不能被2整除,因为08具有前导零。但是,它可以被3整除,因为208没有前导零。 数字中的所有数字必须唯一。 例如,数字14280可被2、3和4链除。如果我对链可除性的解释不清楚,请在评论中提出问题。 输入值 程序的输入包含一个整数n,后跟一个空格,然后是一个已将某些数字替换为下划线的数字。例如,以下是可能的输入: 3 6__2__4508 n将大于1。该数字永远不会完全下划线。您不能保证第一位不是下划线。第一个数字将永远不会为0。Ñ永远不会大于或等于在号码位数。 输出量 输出数字,并用整数替换数字,以使所得数字可被n整除。如果存在不止一种完成链可分割数的方法,则任何一种都可以用作输出。如果没有数字可以完成,请输出no answer。例如,示例输入的输出可能是: 6132794508 这是代码高尔夫球,所以最短的代码获胜。
15 code-golf  math 

16
Shortlex中的那个数字是多少?
大多数计算机以二进制形式存储整数,但以十进制形式输出它们。但是,十进制只是一种表示形式,我们碰巧发现它很方便。 挑战是编写一些代码以shortlex十进制输出整数值。 那是什么? http://en.wikipedia.org/wiki/Shortlex_order Shortlex将数字序列的长度作为值的主要指示符。该序列从代表零的空字符串开始,为... ε,0,1,...,8,9,00,01,...98,99,000,001,...,998,999,0000,... (请考虑使用Excel列,但仅使用十进制数字。) 如上所述,编写一个程序或函数,该程序或函数接受一个整数并返回与该整数的shortlex小数表示形式相对应的字符串。 测试值: 0→“”(空字符串) 1→“ 0” 10→“ 9” 11→“ 00” 42→“ 31” 100→“ 89” 800→“ 689” 1060→“ 949” 10270→“ 9159” 100501→ “ 89390”
15 code-golf  number 

5
ASCII架构师
您不想为昂贵的体系结构程序花钱,因此决定自己动手做。您决定使用ASCII设计建筑物。您的程序将采用以特定方式设置格式的单个字符串,并且程序将输出建筑物。 输入值 输入由单行字符组成。可以假定它仅包含字母a-j,数字1-9,符号-和+。 输出说明 对于每个字母a-j,程序将输出一条垂直线,如下所示。我们将其称为一列。 . .. ... **** ***** ****** ------- -------- +++++++++ ++++++++++ abcdefghij 例如,输入abcdefgfedefghgfedc将输出: . * *** *** ***** ***** ******* --------------- ----------------- ++++++++++++++++++ +++++++++++++++++++ 字母可以以正整数为前缀n,这将n在列下方添加空格字符。我们将其称为偏移量。例如,使用S注解空格,输入3b2b3b将输出: + + +++ S+S SSS SSS 字母也可以加上负整数作为前缀-m,这将删除列的底部m 非空白字符(不将其替换为空白,而是将其完全删除)。我们称其为片。例如,输入-1j-2j-3j-4j-5j-6j-7j-8j将输出: . .. ... *... **... ***... -***... --***... +--***.. 可以将偏移量和切片应用于同一行,但是偏移量必须先行。换句话说,字母可以以开头n-m,其中n偏移量m的大小是切片的大小。例如,使用S注解空格,输入“ 2-4j”将输出: . . …

3
每个字符多少个字符?
在http://shakespeare.mit.edu/上,您可以在一页上找到莎士比亚戏剧的全文(例如Hamlet)。 编写一个脚本,该脚本接收来自stdin的剧本的URL,例如http://shakespeare.mit.edu/hamlet/full.html,并输出每个与stdout对话的剧本字符的文本字符数,并根据谁进行排序说话最多。 戏剧/场景/动作标题显然不算作对话,角色名称也不算。斜体文本和[方括号文本]不是实际的对话,因此不应计算在内。对话中的空格和其他标点符号应计算在内。 (尽管我没有看全部,但是剧本的格式看起来非常一致。请告诉我是否忽略了任何内容。您的剧本不一定适合这首诗。) 例 这是Much Ado About Nothing中的模拟部分,以显示我期望的输出: 什么都不做 场景0。 信使 我会。 美丽 做。 莱昂纳托 你永远不会。 美丽 没有。 预期产量: LEONATO 15 Messenger 7 BEATRICE 6 计分 这是代码高尔夫。以字节为单位的最小程序将获胜。

3
查找最短的括号编号
括号号提供了一种仅使用左括号,空格和右括号([ ])表示大整数的简单方法。 括号号定义为一串或多对匹配的括号,[...]称为块,每串与它的邻居之间用零个或多个空格隔开。 每个块之间的空格数定义了它们之间的超操作。没有空格表示加法,1个空格表示乘法,2个空格表示乘幂,3个空格表示四次运算,依此类推。高阶超算术具有较高的优先级,因此四度运算发生在指数运算之前,指数运算发生在乘法运算之前,等等。它们也是右向关联的,因此a^b^c计算为a^(b^c)。(但a^b*c仍然是(a^b)*c。) 每个块可以为空([]),也可以包含另一个括号。空块的值为0。非空块的值为所包含的括号号加1。 实施例:(^^是迭代幂次,^^^是pentation) [[]]具有值1,因为它是0([])加1 [[[]]]的值为2,但是[[]][[]]因为两个([[]])相加,所以也是如此 [[[]]] [[[[]]] [[[[]]]]][[[]]] 值20 =(2 *(((2 ^ 3)+1))+ 2 [[[]]] [[[[]]]] 具有值65536 = 2 ^^^ 3 = 2 ^^(2 ^^ 2)= 2 ^^ 4 == 2 ^(2 ^(2 ^ 2)) [[[[]]]] [[[]]] [[]] 具有值7625597484987 = 3 ^^^(2 ^^^ 1)= 3 ^^^ 2 …

9
编写程序以验证Erdős–Straus猜想
编写程序,以验证Erdős-Straus猜想。 程序应该采取作为输入一个整数n(3 <= n <= 1 000 000),并打印三重身份满足整数4/n = 1/x + 1/y + 1/z,0 < x < y < z。 最短的代码获胜。 一些例子: 3 => {1, 4, 12} 4 => {2, 3, 6} 5 => {2, 4, 20} 1009 => {253, 85096, 1974822872} 999983 => {249996, 249991750069, 62495875102311369754692} 1000000 => {500000, …

10
如何减慢酒鬼回家的速度
考虑一个看起来像这样的正方形乘n的网格图。 重要的是要注意此图是11 x 11。 在任何给定的点,一个人站在一个十字路口,他一次只能垂直或水平移动一步到下一个十字路口。可悲的是他喝得太多了,所以他从最多4个可能的方向(上,下,左,右)中随机选择方向。最多可以达到4个,就好像他站在墙上时,他只有3个选项,而在角落里,他只有2个选项。 他从左下角开始,目标是回家,即右上角。时间只是他采取的步骤数。 但是,您是一个恶意的对手,希望他尽可能慢地回家。您可以在走动过程中随时删除图形中的任意数量的边。唯一的限制是,您必须始终为他留下回家的某种方式,并且不能删除他已经使用过的边缘。 面临的挑战是设计一个尽可能恶意的对手,然后使用一个随机的醉酒步行者在100 x 100 20 x 20的图形上对其进行测试。您的分数只是随机步行者回家10 000次以上所花费的平均时间。 您可以使用任何喜欢的语言和库,只要它们在Linux中免费可用并易于安装即可。 我需要执行什么? 您应该为随机游走者和对手实施代码,并且应该对代码进行组合,以使运行时的输出只是使用您的对手代码进行1000次运行的平均值。随机沃克代码应该非常简单,因为他只需从(x-1,y),(x + 1,y),(x,y-1)和(x,y + 1)中进行选择即可这些都没有被删除或超出范围。 对手的代码当然要困难得多,还需要记住酒鬼已经走过的边缘,因此他不会尝试删除其中的任何一条,并确保酒鬼还有回家的路,这有点棘手快做。 附录 10的跑位还不够,但是我不想惩罚那些设法长途跋涉的人。由于受欢迎的要求,我现在将其增加到1000。但是,如果步行时间太长,您将无法在现实的时间内进行1000次跑步,请仅报告您可以跑步的最大次数。 高分表100 x 100。 优化程序976124.754。 彼得·泰勒(Peter Taylor)的103000363.218。 编辑1.将图形大小更改为20 x 20,以帮助人们进行测试。当人们提交分数时,我将为该大小做出新的高分。 高分表20比20。 230,794.38 (100k runs) by justhalf 227,934 by Sparr 213,000 (approx) by Peter Taylor 199,094.3 by stokastic …

7
计算手机按键
您的任务是计算在旧手机上输入给定文本所需的按键总数。 键映射为: 1:1 2:abcABC2 3:defDEF3 4:ghiGHI4 5:jklJKL5 6:mnoMNO6 7:pqrsPQRS7 8:tuvTUV8 9:wxyzWXYZ9 0:<space><newline>0 要输入exaMPle TExt 01,您将33 99 2 6666 77777 555 33 0 8888 33333 99 8 0 <a 1-sec pause here in real life but we'll ignore it>000 1总共按下37次按键。 该*键将显示一个特殊字符映射: .,'?! "-()@ /:_;+ &%*=< >£€$¥ ¤[]{} \~^¡¿ §#|` 并.突出显示第一个()。您可以使用矩形导航键移动以突出显示所需的字符,然后再次按下该键即可选择。 因此,要插入$,您将按,*↓↓↓↓→→→<select>即总共9次按键。 …
15 code-golf 

5
RadioASCII元素:在缓慢丢失字符的同时输出元素周期表的元素
这是周期表中118个(当前)元素的列表(为了方便起见,在折叠的堆栈代码段中): 显示代码段 Hydrogen Helium Lithium Beryllium Boron Carbon Nitrogen Oxygen Fluorine Neon Sodium Magnesium Aluminium Silicon Phosphorus Sulfur Chlorine Argon Potassium Calcium Scandium Titanium Vanadium Chromium Manganese Iron Cobalt Nickel Copper Zinc Gallium Germanium Arsenic Selenium Bromine Krypton Rubidium Strontium Yttrium Zirconium Niobium Molybdenum Technetium Ruthenium Rhodium Palladium Silver Cadmium …

11
在您的答案上方输出答案
编写一个程序,<code>...</code>当按投票对答案进行排序时,该程序输出该问题的答案的第一个HTML 块的内容,该内容就在您的问题上方。Top!如果您是最佳答案,请输出。 忽略投票否定或没有<code>...</code>标签的答案。程序的源代码必须出现在<code>...</code>帖子的第一块中。当您use backticks或 indent things with 4 spaces. 这是代码高尔夫球,用最少的字符赢得的答案。 附加规则(已更新) 以您想要的任何编程语言进行回答,但是如果您多次回​​答,则使用不同的语言。 您可能没有对输出进行硬编码。您的程序正常运行的能力不应取决于它的投票数或上面的答案是什么。如果投票分配发生了巨大变化,您的程序仍应正确输出其上方答案的代码。 你可能通过答案的某些独特属性(例如用户名(如果只有一个答案)或答案的直接链接)对程序进行硬编码,以便在该页面上自行搜索(以便查找下一个最高的名称)。 如果两个答案的票数相等,您仍应使用高于您的答案(我相信它将是最新的)。 您<code>...</code>的答案中可能有多个块,但第一个必须包含程序的源代码。
15 code-golf 

24
为我生成一些合适的车牌!
场景:您是一家在政府开办的公司工作的软件设计师,该公司为汽车和其他车辆设计车牌。您被要求开发可生成车牌的软件。在开始工作之前,您的老板制定了这些基本规则。 车牌不能包含: ASS 666 69<any number here> <any number here>69 KKK SHT 规则和要求: 车牌必须随机生成。 一旦生成了随机牌照,就不能再次生成相同的牌照。 您必须输出至少200个唯一的车牌。如果需要,您可以生成更多。 您可以将生成的板存储在文件中以“记住”它们。 车牌分为两部分,一个部分仅包含三个字母,一个部分仅包含三个数字,中间用破折号分隔,例如:233-ADF或ADF-233。 您只能使用数字和大写字母。 车牌可以写入标准输出或文件。 车牌的每个“侧面”将包含三个数字或字母。 这是一个代码高尔夫,因此最短,最受欢迎。7天后将选出优胜者。 通用规则 答案应包括但不限于以下内容。 语言名称。 字符数。 文件大小。 代码如何运行。 代码本身。 示例:Python 234个字符或Python 23mb。 如果我需要澄清任何其他细节,请在评论中提及它,并将其添加到我的帖子中。无论如何,祝您好运,并为我生成一些合适的车牌! 更新1:优胜者将被提前选择。 事实证明,我必须很快去旅行,所以我将在7月25日世界标准时间00:00左右选择一位获奖者。选定获奖者之后,您仍然可以提交全部作品,只知道已经选择了一位获奖者。白 更新2:优胜者! 我们有赢家!好极了!奶酪和美酒给参加的每个人!这是谁赢了。 第一名:Àngel-Bash(95个字符) 第二名:MartinBüttner-Mathematica(182字节) 第二名:Emilio M Bumachar-Pyg(92?) 第二名:Peter Taylor-Golfscript(98个字符) 第三名:马克·托马斯-鲁比(127个字符) 哇,三个亚军。哇。比赛结束了,但是如果您愿意,可以随时提交参赛作品。白!

2
病理分选
病理分选 您的老板要求您开发一种排序算法,以提高公司应用程序的性能。但是,编写该应用程序后,您知道您不可能使其速度大大提高。不想让您的老板失望,您决定开发一种新算法,该算法对某些数据集的效果甚至比* sort好。当然,您不能使该算法仅在某些情况下起作用是显而易见的,因此您希望使其模糊。 竞赛的目的是用您选择的语言编写一个排序例程,该例程在某些数据集上的表现要优于其他数据集,并具有可重复的结果。确定速度的分类越具体越好。该算法必须进行某种排序,因此依赖于已完全排序的数据的算法(例如,什么都不做的算法)或依赖于已完全反向排序的数据的算法都是无效的。排序算法必须正确地对任何数据集进行排序。 介绍完例程后,请说明为什么它仅适用于某些数据集,并包括对至少一组良好(快速)数据和一组不良(缓慢)数据的测试。这里的目的是要向老板证明,您偶然发现了一种更好的排序方式,因此,更多的测试数据会更好。当然,您只会向老板展示来自良好数据的测试结果,因此所需测试数据中的缺陷不会太明显。如果适用于您的语言,请说明您的算法比语言的内置排序算法更快。 例如,可能会提交一种插入排序算法,其中好数据是已经接近排序的数据,坏数据是完全随机的数据,因为插入排序对接近排序的数据接近O(n)。但是,这不是很好,因为我的老板可能会注意到所有测试数据几乎都是从头开始排序的。 这是一场人气竞赛,因此7天(5月21日)后获得最高票数的答案将获胜。 如果没有人能击败我,我想提交一个利用统一分布的数据集的社区Wiki答案。

5
堆放甲板!
爱丽丝(Alice)和鲍勃(Bob)喜欢玩纸牌游戏,其中一副纸牌用连续的非负整数编号。 不过,爱丽丝有一种非常特殊的方式来洗牌。首先,她从卡组中取出顶卡,并将其放在卡组的底部。然后,她取出下一张卡片,并开始堆放。然后,她再次将顶部卡循环到底部,然后将新的顶部卡放到堆上。她重复此过程,直到排空甲板为止,此时堆垛就是新甲板。 deck | pile -----------+----------- 3 1 4 0 2 | 1 4 0 2 3 | 4 0 2 3 | 1 0 2 3 4 | 1 2 3 4 | 0 1 3 4 2 | 0 1 4 2 | 3 0 1 2 4 …

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.