编程拼图和代码高尔夫

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


2
43亿个排列
我们可以按如下方式将Rubik's Cube表示为网络(求解时): WWW WWW WWW GGGRRRBBBOOO GGGRRRBBBOOO GGGRRRBBBOOO YYY YYY YYY 每个字母代表相应的颜色(W白色,G绿色等) 它已被证明有恰好43 ,252 ,003 ,274,489 ,856 ,00043,252,003,274,489,856,00043,252,003,274,489,856,000(〜434343百万的三次方)不同的排列,一个魔方可以英寸 你的任务是把一个整数之间1个1个1和43 ,252 ,003 ,274,489 ,856 ,00043,252,003,274,489,856,00043,252,003,274,489,856,000和输出对应的置换,在上述所示的方式。您可以选择排列的顺序,但是必须显示您使用的算法为每个可能的输入生成唯一且正确的排列。 无效的排列规则 取自此页面 首先,每个3x3面的中心必须保持相同,因为魔方立方体上的中心正方形无法旋转。可以旋转整个多维数据集,更改面的显示位置,但这不会影响多维数据集的网格。 如果我们说每个置换都有一个奇偶校验,那么根据达到该置换的交换次数的奇偶校验,我们可以说 每个角件都有三个可能的方向。可以正确地设置其方向(0),顺时针(1)或逆时针(2)。拐角方向的总和始终保持为3的整数倍 魔方上的每次合法旋转都总是翻转偶数个边,因此不会只有一个方向错误。 考虑到所有拐角和边缘的排列,整体奇偶校验必须为偶数,这意味着每个合法举动始终执行相等数量的互换(忽略方向) 例如,以下三个网是无效的输出: WWW WWW WWW GGGWWWBBBOOO GGGRRRBBBOOO GGGRRRBBBOOO YYY YYY YYY (Too many whites/not enough reds) WRW WRW WRW GGGRWRBBBOOO …

10
数字日期范围
注意:由于我本人是荷兰人,dd-MM-yyyy因此挑战说明和测试用例中的所有日期均为荷兰语格式。 挑战: 输入: 开始日期;结束日期;数字sssËeeñnn 输出: 范围内的所有日期(包括双方),其日期中包含位数的唯一数字。[ s ,e ][s,e][s,e]ñnn 例: 输入:开始时间:12-11-1991; 结束日期:02-02-1992; 数字:4 输出: 天/月的前导0: [20-11-1991, 23-11-1991, 24-11-1991, 25-11-1991, 26-11-1991, 27-11-1991, 28-11-1991, 30-11-1991, 01-12-1991, 02-12-1991, 09-12-1991, 10-12-1991, 13-12-1991, 14-12-1991, 15-12-1991, 16-12-1991, 17-12-1991, 18-12-1991, 20-12-1991, 23-12-1991, 24-12-1991, 25-12-1991, 26-12-1991, 27-12-1991, 28-12-1991, 31-12-1991, 01-01-1992, 02-01-1992, 09-01-1992, 10-01-1992, 11-01-1992, 12-01-1992, 19-01-1992, 20-01-1992, 21-01-1992, …
16 code-golf  number  date 

13
引用大哥
任务:让您的程序在运行时随机选择以下两个引号之一,并完全按照所示打印该引号。 1: Under the spreading chestnut tree I sold you and you sold me. There lie they, and here lie we Under the spreading chestnut tree. 2: WAR IS PEACE. FREEDOM IS SLAVERY. IGNORANCE IS STRENGTH. 限制:字spreading,chestnut,PEACE,FREEDOM,和STRENGTH 必须出现在你的代码。以上两个引号中的任何单词都不能多次出现在您的代码中。 最短的解决方案获胜。

29
微笑!只是笑一下
众所周知,Brainf * ck在解决Kolmogorov复杂性问题方面非常糟糕,例如,仅打印“ Hello world”就需要大约100个字符。 但是,在某些文本中Brainf * ck可能非常擅长。 现在,您的任务是编写一个无需输入的程序,并显示以下内容: ☺ 也就是说,是笑脸(如果您的浏览器未渲染,则为ASCII 1)。 Brainf * ck可以用2个字符完成此操作。 +. 尝试找到一种胜过它的语言! 我们假设您的控制台可以实际显示该字符(或您的字体具有该字符,等等)。 最短的代码获胜。如果还有更多相同的长度,则第一个获胜,但我也会对其他人投票。 编辑:非常抱歉,我不认为第一篇文章会很快到达。快速编辑:语言必须是图灵完整的!

10
编写最短程序以检查二叉树是否平衡
对于平衡二叉树中的每个节点,左子子树和右子子树的高度最大差值为1。 二叉树的高度是指从根节点到最远离根节点的子节点的距离。 下面是一个示例: 2 <-- root: Height 1 / \ 7 5 <-- Height 2 / \ \ 2 6 9 <-- Height 3 / \ / 5 11 4 <-- Height 4 二叉树的高度:4 以下是二进制树和有关它们是否平衡的报告: 上面的树是不平衡的。 上面的树是平衡的。 编写尽可能短的程序,该程序接受二叉树的根作为输入,如果树不平衡,则返回假值,如果树平衡,则返回真值。 输入值 二叉树的根。这可能是以对根对象的引用或什至是二叉树的有效表示形式的列表的形式。 输出量 返回真实值:如果树是平衡的 返回falsey值:如果树为un平衡。 二叉树的定义 树是一个对象,其中包含一个值以及另外两个树或指向它们的指针。 二叉树的结构如下所示: typedef struct T { …

5
自计分程序
要输出您自己的分数,我们遇到了挑战,但似乎所有答案都只是对输出进行了硬编码,这很无聊1。因此,让我们面临新的挑战。您的程序必须输出自己的长度(以字节为单位),后跟字符串" bytes",但如果要防止硬编码的解决方案(如果我们通过删除任何一个字节来减小其大小),则新程序还必须输出其新的字节数,其后仍为" bytes"。输出不必区分大小写。您也可以选择输出尾随换行符。 您的答案将以字节计分,而字节数越少越好。 1:我实际上很喜欢那里的一些答案。

5
我忘了毛巾日
我忘了毛巾日 沙盒链接 两个示例的PHP脚本(错误,格式化字符串) 更正了PHP脚本,输入内容为自解释 PHP脚本具有更多输入注释/注释$argv,可查看不同结果 如您所知,5月25日被称为“ 毛巾日”,因为毛巾有很多用途。 摘自《银河系旅行者指南》一书的简单摘录(我个人认为这本书是《日常指南》),其中指出: “毛巾是星际旅行者可以拥有的最有用的东西。部分它具有很大的实用价值。” 如果您需要有关毛巾的更多信息,请检查此SE.scifi答案 挑战 希望您能用一条毛巾作为腿毛做毛巾。 用任何需要两次输入的有效编程语言编写完整的程序或函数 size Integer : #The size message string : #A sentence 如何用这些值画一条毛巾? 首先使用size: 根据输入的尺寸画一条毛巾,我们的毛巾采用ASCII技术 width = 12*size #the line that has the "bar" its always present with different sizes Width is defined as: from the first | to …

2
编程非圆度分数
您的任务是编写一个数学函数s,该函数A在2D平面中采用一组非空的有限点,并输出s(A)满足以下属性的非圆度分数: 正定性:如果有一个包含所有点的圆或直线A,则s(A) = 0。除此以外s(A) > 0 排斥性:它对非负实数是排斥的,这意味着对于每个非负实数,平面r的有限子集A使得s(A) = r。 平移不变性: s如果s(A) = s(A + v)对于每个向量v和所有,则平移不变A。 标度不变性: s是尺度不变,如果s(A) = s(A * t)每一个t≠0和所有A。 连续性。 s被说成是连续的,如果函数f(p) := s(A ∪ {p})(映射的点p到的实数)是连续使用的实数的标准绝对值,并且在该平面的各点的标准欧几里得范数。 直观地讲,这种非圆度得分可以认为与线性回归中的相关系数相似。 细节 理论上,您的函数必须在实际中起作用,但是出于此挑战的目的,您可以使用浮点数代替。请提供您提交的内容的解释,并说明这五个属性为何成立。您可以将两个坐标列表或一个元组或类似格式的列表作为输入。您可以假设输入中没有点重复,即所有点都是唯一的。

4
没有“半空杯子”之类的东西
您可能知道玻璃是半满还是半空的反问。我对这个词感到有些厌倦,所以我决定是时候以编程方式消除对玻璃充满或空虚的困惑了。 您的任务是编写一个程序,该程序采用 丑陋的玻璃杯并输出相应的精美玻璃杯的ASCII艺术作品。它也必须决定玻璃是否是full,mostly full,mostly empty或empty和输出这个问题,以及(4任何恒定的,不同的输出值做)。 TL; DR 输入是玻璃(#字符)和液体(a-z)在玻璃内部和外部随机分布的ASCII艺术。玻璃内的液体掉落并积聚在其底部,玻璃外的液体被丢弃。液体沉淀在底部后,输出玻璃的ASCII文字。确定玻璃杯已满并输出。 丑陋又漂亮的眼镜 通常,玻璃是由#字符制成的容器,该字符具有底部,两个侧壁且没有顶部。 有效的眼镜上没有孔。(#必须连接所有字符。) #输入ASCII文字的每行中至少要有两个字符,或者没有。没有一行恰好一条#。 输入的ASCII艺术作品的顶行将始终恰好有两个#。 有效的眼镜在其定界#字符壁中恰好有一个局部最小值。这意味着液体不会被困在某处。 玻璃的分隔墙将没有局部最大值。 #玻璃底部下方不会有任何东西。 玻璃的内部将始终是一个连通的空间。 输入中可能包含前导/后缀空格和换行符。 有效眼镜和无效眼镜的示例: VALID (possible input to your program): # # # # #### # # # # # # # # # # # # ## # # # # ### # # …

5
狼和鸡
有一条河,河的一侧有狼和鸡。他们有木筏,都需要走到另一边。但是,木筏不能自行行驶。如果上面有两只以上的动物,木筏将沉没。没有动物要弄湿,因为这条河又冷又脏。没有动物可以在河上跳跃或飞行。同样,如果一侧有鸡,那一侧的狼就不会多于那一侧的鸡,然后狼会决定吃掉这些鸡。这意味着您不能将两只狼和一只鸡放在木筏上。 您的任务是制作一个程序/函数,将多头狼和多只鸡(大于或等于多头狼)作为输入,并找出木筏在河上移动的最少次数。如果无法完成任务,则程序/功能应输出/返回空字符串。然后它将以以下方式打印/返回一种有关如何完成此操作的方法: W if a wolf crosses the river on its own C if a chicken crosses the river on its own CW if a chicken and a wolf cross the river -- WC is also fine CC if two chickens cross the river WW if two wolves cross the …

11
Triplegolf-不仅源代码的长度很重要!
挑战的目标是编写一个程序,其中以下三个的长度完全相同: 源代码的长度 打印到标准输出的输出长度 您选择的(未修改)编译器生成的编译器警告的长度 获胜者是满足所有这三个条件的最短代码,并且必须至少长1个字符。 更有趣的是,如果输出中少于三个不同的字符,则每个字符的长度加5点惩罚(如果只有一种,则为+10,两个为+5)。 (您可以选择以1或2个字符作为换行符,但是在所有这三个条件中换行符必须保持一致。在这三个条件的所有行中,前导空格和尾随空格都将被忽略) 如果得分相等,则赢得最有趣结果(而不是垃圾)的人将成为赢家。
15 code-golf 

1
用神经网络排序
以前的神经网络高尔夫挑战(这个和那个)启发了我提出一个新的挑战: 挑战 找到最小的前馈神经网络,以便在给定具有整数条目的任何4维输入向量(a ,b ,c ,d)(一种,b,C,d)(a,b,c,d),网络输出的坐标方向误差严格小于。[ - 10 ,10 ][-10,10][-10,10]排序(a,b,c,d)分类(一种,b,C,d)\textrm{sort}(a,b,c,d)0.50.50.5 可接纳性 为了应对这一挑战,将前馈神经网络定义为层的组成。的层的功能,其由矩阵指定的权重,一个矢量的偏见,以及一个激活函数并在坐标方向上应用:左:右ñ→ R米大号:[Rñ→[R米L\colon\mathbf{R}^n\to\mathbf{R}^m甲∈ řm × n一种∈[R米×ñA\in\mathbf{R}^{m\times n}b ∈ ř米b∈[R米b\in\mathbf{R}^m F:R → RF:[R→[Rf\colon\mathbf{R}\to\mathbf{R} L (x ):= f(A x + b ),X ∈ řñ。大号(X):=F(一种X+b),X∈[Rñ。 L(x) := f(Ax+b), \qquad x\in\mathbf{R}^n. 由于可以针对任何给定任务调整激活功能,因此我们需要限制激活功能的类别,以使这一挑战变得有趣。允许以下激活功能: 身份。 F(t )= tF(Ť)=Ťf(t)=t ReLU。 F(t )= 最大值(t ,0 )F(Ť)=最大值⁡(Ť,0)f(t)=\operatorname{max}(t,0) Softplus。 F(t …

5
当前的十二生肖是什么?
根据给定国家/地区显示给定时间东部生肖的表情符号。 东部十二生肖是一种分类方案,它将动物及其知名的属性分配给重复的12年周期中的每一年。它也分配给小时。 规则: 必须使用ISO 3166-1 alpha-3代码指定国家/地区。清单在这里。 输入格式必须是这样的:<ISO code> HH:MM。输入必须是单个字符串。任何不适合此格式的输入均属于无关情况。 如果给定时间在以下给定图表的边界内,则可以输出任一个十二生肖。 因为这是代码高尔夫,所以以字节为单位的最短代码获胜。 黄道十二宫: 没有指定国家/地区的黄道带是默认设置。 第一个十二生肖(23:00 – 01:00): 🐀(U + 1F400) 波斯(IRN)的Mouse🐁(U + 1F401) 第二个十二生肖(01:00 – 03:00): 牛🐂(U + 1F402) 越南(VNM)的水牛(U + 1F403) 波斯的(U + 1F404) 第三十二生肖(03:00 – 05:00): 虎🐅(U + 1F405) 波斯豹(U + 1F406) 第四十二生肖(05:00 – 07:00): 兔子🐇(U + 1F407) 越南的猫🐈(U …

7
十进制“ XOR”运算符
许多编程语言都提供了用于操作整数的二进制(以2为基数)的运算符。这是将这些运算符推广到其他基础的一种方法: 令x和y为基数B中的一位数字。定义一元运算符~和二元运算&,|以及^这样的: 〜x =(B-1)-x x&y = min(x,y) x | y =最大值(x,y) x ^ y =(x&〜y)| (y&〜x) 注意,如果B = 2,我们将得到熟悉的按位NOT,AND,OR和XOR运算符。 对于B = 10,我们得到“十进制XOR”表: ^ │ 0 1 2 3 4 5 6 7 8 9 ──┼──────────────────── 0 │ 0 1 2 3 4 5 6 7 8 9 1 │ 1 …
15 code-golf  math  number 

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.