编程拼图和代码高尔夫

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

6
相互排斥的奎因
您的挑战很简单。编写两个互不输出字符的程序。 例 如果满足以下条件,则两个程序P和Q是互斥的。 P输出Q Q输出P 没有字符c属于P和Q 每个程序P和Q都是适当的 这会将空的quines和读取自己(或其他)源代码的quines视为invalid。 更多规则 这些程序的总长度最短者获胜。也就是说,大小(P)+大小(Q)是您的得分,最低得分获胜。 两种程序使用相同的语言 每个程序可以是完整的程序或功能,而不必相同。 例如,P可以是完整程序,而Q可以是函数。 验证 这可以在线进行!此处的代码段可以验证两个程序是否互斥。输入将放在前两个参数中。

13
废墟中的冒险家
测试驾驶员 • 挑战讨论 • 提交冒险家 (图片来源) 几个竞争对手冒险者正在废墟中寻宝,但他们一次只能携带这么多东西,而且承受力有限。他们希望获得最有价值的宝藏,并在他们变得疲倦而无法继续之前走出去。他们正设法从掠夺的恶作剧中致富。 游戏玩法 每个冒险家都从地牢的第一个房间开始,并获得1000点耐力点和背包中50公斤的空间。 游戏以回合制为基础,所有玩家同时解决回合。每转一圈,您可以执行以下操作之一: 移到下一个房间。 移到上一个房间。 竞买耐力拿宝。 丢下宝藏。 在各个房间之间移动需要10个耐力,而背包中当前每5公斤要加1个耐力。例如,一名冒险者携带3公斤宝藏需要移动11体力,而一名携带47公斤宝藏的冒险者需要移动20体力。 掉落宝藏需要1个耐力,无论掉落的宝藏如何。 离开废墟后,玩家将不再转弯。 如果玩家不能采取任何这些行动(由于缺乏耐力或缺少宝物),则冒险者会死于精疲力尽,将其持有的宝物洒入当前占用的房间。同样,如果玩家尝试执行无效操作,则冒险者将被陷阱杀死,从而导致相同的宝藏溢出。 投标 宝物的最低出价是每1公斤宝物称重1个耐力。您也可以出价额外的耐力点,以更有可能获得宝藏。不管结果如何,被消耗的耐力都会被消耗掉。 如果有多个玩家竞标购买同一宝藏,则出价最高的玩家将获得该宝藏。如果有一个以上的玩家出价最高,那么他们都将不会获得宝藏。 获胜条件 总资产最大的玩家是赢家。如果发生平局,领带的总重量最小,然后是最小数量的宝物,然后是最有价值的珍宝的价值,其次是最有价值的,第三...直到领带被打破。如果在这种情况下仍然有平局,测试驾驶员会说“拧”,从而任意确定获胜者。 在锦标赛中,玩家将排名第一,获得10分,第二名获得9分,第三名获得8分,依此类推,死者和没有宝藏的冒险家获得0分。 关于废墟 每个房间最初包含之间⌊ [R3⌋ + 3⌊[R3⌋+3\lfloor{r \over 3}\rfloor + 3和⌊ [R2⌋ + 5⌊[R2⌋+5\lfloor{r \over 2}\rfloor + 5珍品。([R[Rr是房间号) 有任意多个房间,仅受冒险者的耐力和探索意愿的限制。 每件宝物将具有货币价值(总计$)和重量(总计kg)。 当您深入废墟时,珍宝往往更有价值和更多。 生成宝物的具体公式如下:(对骰子使用X dÿXdÿxdy表示法) 重量首先产生利用下式2 天6 − 22d6-22d6 - …

14
两点之间的最短距离是一条线
对程序或函数进行编码,以在屏幕上构造至少400像素x 400像素的交互式画布。画布可以是您想要的任何颜色,有边框或无边框,有或没有标题栏等,仅是某种形式的显而易见的画布。 用户将单击画布的两个不同区域,并且程序必须以某种方式(STDOUT,显示警报等)输出两次单击之间的欧几里得距离(以像素为单位)。两次单击只能是左键单击,只能是右键单击,第一次单击是左键单击,第二次单击是右键,两次双击都以此类推,可以接受任何组合。特别说明:明确不允许单击和拖动(例如,使用MOUSEUP作为第二点);它们必须是两次不同的点击。 用户必须能够多次执行此操作,并且每次都必须获得输出,直到程序关闭/强制退出/被杀死/等等。您可以选择关闭的方法(单击X,Ctrl-C等),无论哪种代码适合您。 规则 完整的程序或功能都是可以接受的。但是,如果是函数,则仍必须以某种方式向用户显示输出(仅返回值是不可接受的)。 输出可以发送到控制台,显示为警报,填充到画布等。 禁止出现标准漏洞。 这是代码高尔夫球,因此所有常用的高尔夫规则都适用,并且最短的代码(以字节为单位)获胜。

9
ASCII菱形网格
给定以下参数,编写按字节数测量的最短代码以生成由菱形组成的ASCII网格: m-一行中完整菱形的数量 n-行数 s-最小菱形的一面 r-嵌套级别-“基本的”内部有多少个菱形(在网格的相交点之间喜欢) 例子 1. Input: 5 3 1 0 Output: /\/\/\/\/\ \/\/\/\/\/ /\/\/\/\/\ \/\/\/\/\/ /\/\/\/\/\ \/\/\/\/\/ A 5x3 grid of rhombi with side 1, no nesting 2. Input: 3 2 2 0 Output: /\ /\ /\ / \/ \/ \ \ /\ /\ / \/ \/ \/ …

13
Seqindignot序列
标题由“ Sequence Index Digit Not”组成。 挑战: 给定的整数n,其是>= 0,输出的n“日数以下序列组成。 以下是前50个项目,其上方是(0索引)索引: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 …

5
鼓泡括号!
这里有几个问题,在这个网站如何去平衡支架,并检查是否括号是平衡的。我建议现在是时候将那些平衡的括号用于某些东西了! 在数学和程序设计中,方括号就像气泡,将内部的所有事物与外部的所有事物隔离开,以便内部的任何事物都可以安心地做它的事情,而外部的任何事物只能看到一个对象。但是,一串括号是一维的,而气泡通常至少是二维的。这意味着只要气泡从不相互接触或在任何其他气泡的内部和外部之间交叉,它们就可以自由地在彼此之间移动。 挑战 输入是一串匹配的单一类型的括号,可以是圆形(),正方形[],卷曲{}或尖角<>。取决于您希望程序接受哪种类型,是否接受仅接受一种括号的程序。(如果您的程序可以处理其中的任何一个,则有虚构的奖励;如果它可以在同一个输入中处理所有的它们,则有虚构的奖励点。)尽管括号中可以包含空格,但输入不能包含任何括号。 输出是那些括号的所有可能的重组(以任意顺序,包括原始输入),产生相同的气泡配置,没有两个相同的字符串。这意味着,输入()()为时()(),即使从技术上讲可以交换位置的两个气泡,其输出也只是。对于巨大的想象中的奖金,{}[]()意志的输入当然会导致输出6个不同的元素/字符串/行。 如果您可以通过在周围移动气泡而不让任何气泡从另一个气泡内部到外部或从外部到内部交叉而使另一个气泡相互“形成”,则两种气泡是“相同的”。如果您将嵌套括号比作树(每个匹配对都是一个节点,并且每个匹配对都是一个子节点,并且每个匹配对中又有一个子节点,依此类推),那么给定节点的子节点是有序的,那么气泡的单个配置就是一棵树,其中的节点是无序的。 任何合理的输出格式都可以,例如返回字符串列表或单个字符列表或带有某种空白的单个字符串列表,或者在两者之间使用stdout或stderr以某种形式的可见空白字符(最常见的是换行符或空格)进行打印每个重组。 每次重组的尾随空格以及在实际输出之前和之后的尾随和换行符/空列表元素的位置。您应该在输出中使用与输入相同的括号。除了此处指定的方括号,换行符和空格以及您使用的任何分隔符,均不应打印任何内容(包括不可见/零宽度字符)。 分数是代码中的字节数。每种语言的最低计数获胜。您可能会注意到您是否获得了想象中的奖励,无论是常规奖励还是巨额奖励,但这都不会影响您的分数。实际的奖金太难平衡了。 输入输出示例 范例1: 输入: ()(()) 输出: ()(()) (())() 范例2: 输入: (()())()() 输出: (()())()() ()(()())() ()()(()()) 范例3: 输入: (()(()))() 输出: ((())())() ()((())()) (()(()))() ()(()(()))

9
感恩节盛宴
明天,11月23日,是美国的感恩节。要准备,您需要准备一些ASCII火鸡。但是,由于计划迟到,您需要一个程序(或功能)来帮助您准备多少只鸟。 .---. _ .' './ ) / _ _/ /\ =(_____) (__/_/== =================== 您发现的火鸡偏小,因此您已经确定了以下比率-一只火鸡会进食: 四个人只喜欢白肉,三个人只喜欢黑肉 或七个不在乎的人 或其组合。 意思是,在任何给定的火鸡中,总共有4份白肉和3份黑肉。此外,您不能购买和烹制部分火鸡。 例如,对于3个仅喜欢白肉的人,6个仅喜欢黑肉的人和3个无关的人,您将需要两只火鸡。这样就可以得到8份白色和6份深色,这足以满足每个人的需求,并剩下一些白肉: .---. _ .---. _ .' './ ) .' './ ) / _ _/ /\ / _ _/ /\ =(_____) (__/_/== =(_____) (__/_/== ===================================== 对于20个无关紧要的人,您将需要三只火鸡,并且剩下一点点白色或深色: .---. _ .---. _ .---. _ .' …

8
解串字符串
给定一个方形字符串,请在展开的每个阶段生成该字符串的所有输出。 字符串必须每次顺时针旋转四分之一圈。 例子 输入: A 输出: A 注意:仅在这有助于减少字节数的情况下,我也将接受此特定测试用例重复的输入。 输入: DC AB 输出: DC AB D ABC ABCD 输入: GFE HID ABC 输出: GFE HID ABC HG IF ABCDE IH ABCDEFG I ABCDEFGH ABCDEFGHI 输入: JIHG KPOF LMNE ABCD 输出: JIHG KPOF LMNE ABCD LKJ MPI NOH ABCDEFG NML OPK ABCDEFGHIJ …

30
模总和
我将此序列称为“耶稣序列”,因为它是mod的总和。</ pun> 对于这个序列,你把所有的正整数中号小于输入ñ,走的总和ñ模每米。换一种说法: an=∑m=1n−1nmodman=∑m=1n−1nmodma_n = \sum_{m=1}^{n-1}{n\bmod m} For example, take the term 14: 14 % 1 = 0 14 % 2 = 0 14 % 3 = 2 14 % 4 = 2 14 % 5 = 4 14 % 6 = 2 14 % 7 = 0 14 % …

20
是陈素吗?
如果数字满足两个条件,则它是Chen质数: 它本身就是素 本身加两个是素数或半素数。 质数是一个数字,其中恰好有两个除数,并且这些除数由自身和一个除数组成。 半素数是两个素数的乘积。(请注意,12 = 2 * 2 * 3不是半素数,而25 = 5 * 5是)。 您的任务是确定数字是否为Chen质数。您应将任何真实值输出为是,将任何虚假值输出为否。 输入将是大于或等于1的任何整数。也可以将其视为字符串,字符数组或数组或数字。 例子: 101 -> truthy 223 -> falsy 233 -> truthy 1 -> falsy 这是OEIS A109611。 这在一定程度上是受苏菲·日耳曼(Sophie Germain)总理的启发吗?不幸的是,它作为重复项目被关闭,所以我要发布一个与之相关的挑战,不是重复项目。

5
虚假统计
如果您要发明一些虚假新闻,则需要构造一些数据以进行备份。您必须已经有了一些先入为主的结论,并且想要一些统计数据来加强错误逻辑的论据。这一挑战将为您提供帮助! 给定三个输入数字: N-数据点数 μ-数据点的平均值 σ-数据点的标准偏差,其中μ和σ表示为: 输出数字的无序列表,𝑥 我,这会产生给定Ñ,μ,和σ。 我对I / O格式不会太挑剔,但是我确实希望μ,σ和输出数据点具有某种十进制形式。至少应支持至少3个有效数字和至少1,000,000的数量级。IEEE浮点数很好。 N始终是整数,其中1≤N≤1,000 μ可以是任何实数 σ始终≥0 数据点可以是任何实数 如果N为1,则σ始终为0。 请注意,大多数输入将具有许多可能的输出。您只需要提供一个有效的输出即可。输出可以是确定性的或不确定性的。 例子 Input (N, μ, σ) -> Possible Output [list] 2, 0.5, 1.5 -> [1, 2] 5, 3, 1.414 -> [1, 2, 3, 4, 5] 3, 5, 2.160 -> [2, 6, 7] 3, 5, 2.160 …


21
寻找主要差距
一个主要的差距是连续两个素数之差。更具体地,如果p和q是p<q且p +1,p +2,...,q -1不是素数的素数,则素数p和q定义了n = q - p的间隔。的间隙被认为是开始由p,并具有长度 Ñ。 已知存在任意大的主要间隙。即,给定n,则存在长度为n或更大的素数间隙。但是,可能不存在长度恰好为n的素数间隙(但会更大)。 挑战 给定一个正整数n,输出第一个素数,该素数开始于length n或更大的间隙。 例如,对于输入4,输出应为7,因为7和11是相差至少4的第一个连续质数(先前的间隔是1,从2到3; 2,从3到5;以及2,从5至7)。对于输入3,答案也应该是7(没有长度为3的间隙)。 附加规则 该算法在理论上应该适用于任意高n。实际上,如果程序受时间,内存或数据类型大小的限制,这是可以接受的。 输入和输出可以通过任何合理的方式进行。 允许使用任何编程语言编写程序或功能。禁止出现标准漏洞。 以字节为单位的最短代码获胜。 测试用例 Input -> Output 1 2 2 3 3 7 4 7 6 23 10 113 16 523 17 523 18 523 30 1327 50 19609 100 370261 200 20831323

11
我需要将这两个数字相加多少位数?
任务 给定两个正整数,输出以10为底加长加法将它们加在一起的进位数目。 例子 ¹¹¹ <-- carries 999 + 1 ---- 1000 需要三个进位。 ¹ 348 + 91 ---- 439 需要一个进位。 测试用例 999, 1 -> 3 398, 91 -> 1 348, 51 -> 0 348, 52 -> 2 5, 15 -> 1 999, 999 -> 3 505, 505 -> 2 计分 这是代码高尔夫球。以字节为单位的最短答案将获胜。有标准漏洞。

1
简化火车套装
存在许多不同类型的火车,从Brio之类的木制轨道到完全数字控制真实火车的完美小金属复制品,但它们都需要设计轨道,理想情况下,尽可能多地使用您的零件。 因此,您的任务是确定,在给定可用零件的输入的情况下,是否有可能使用所有元件构建一个完整的闭合回路,如果没有,则从最大可能回路中剩下多少零件。 由于这是简化的火车组,因此只有3个元素:大曲线,小曲线和直线。这些都是基于正方形网格的: “大曲线”是一个90度角,每个维度覆盖2个单位 “小曲线”是一个90度角,每个方向覆盖一个单位 “直线”是直线元素,长1个单位 这意味着可能的最小电路由4条小曲线组成-它是一个半径为1单位的圆。可以通过添加成对的直形元素以形成各种椭圆形来扩展它。通过添加更多曲线或混合曲线类型,还有其他电路可能。 该火车组不包含任何交叉点或轨道交叉的方法,因此两个元素连接到另一个元素的同一端(无Y形)或彼此交叉(无X形)是无效的。此外,它是火车,所以任何不允许火车通过的编队都是无效的:示例包括以90度角相交的直线(垂直直线之间始终必须有一条曲线)和以90度角相交的曲线(曲线必须流动)。 您还希望使用尽可能多的片段,而忽略它们是什么类型,因此您将始终选择包含更多位的电路。最后,您只有一列,因此导致多个电路的任何解决方案都是不可接受的。 输入项 由三个大于或等于0的整数组成的数组,分别对应于可用的大曲线,小曲线和直线的数量,或以相同顺序传递给程序的参数。 输出量 数量对应于构造用于所提供元件的最大可能电路时剩余的件数。 测试数据 Minimal circuit using big curves Input: [4,0,0] Output: 0 Slightly more complicated circuit Input: [3,1,2] Output: 0 Incomplete circuit - can't join Input: [3,0,0] Output: 3 Incomplete circuit - can't join Input: [3,1,1] Output: 5 Circuit …
27 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.