Questions tagged «code-golf»

Code-golf是在最小的源代码字节中解决特定问题的竞赛。

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 

30
查找百分比
一段时间以来,我们没有遇到任何轻松,轻松的挑战,所以我们开始吧。 给定一个整数列表,每个整数均大于并有一个索引作为输入,请输出该项目在列表总和给定索引处的百分比。000 输出应该是您的语言(浮点数/整数)的自然表示形式(一元,十进制,教堂数字等)。如果选择轮以任何方式输出,它必须有最低2位小数(合理时,并不需要是圆形的,但也完全可以接受的)。1.21.21.21.201.201.201.20 索引可以是1索引或0索引,并且将始终在数组的范围内。 这是代码高尔夫球,因此以字节为单位的最短代码胜出! 例子 使用1索引并四舍五入为2 dp list, index => output [1, 2, 3, 4, 5], 5 => 5 / 15 => 33.33 [7, 3, 19], 1 => 7 / 29 => 24.14 [1, 1, 1, 1, 1, 1, 1, 1, 1], 6 => 1 / 9 => 11.11 …

16
攻击九头蛇
这次您不是一个能够杀死九头蛇的熟练战士(请参阅此处和此处),而是您是一个不了解如何杀死一种生物或使用哪种武器对付该生物的战士。 在这个问题上,每当切断一个头时,两个头就会在同一位置长出。由于您没有同时切断许多头的机制,因此头的数量只会增加。在这种情况下,我们的Hydra可以从N(N⩾1)个头开始。让我们将第一个遇到的世代称为世代,我们将来自第一世代的头像表示为0,将第一次打击后创建的头像表示为1,依此类推。 输入值 您将得到一个整数,该整数N表示Hydra最初具有多少个头,以及一个N包含要在其中使用哪个索引的大小列表(在示例中,我将使用0索引格式)。您始终可以假设给定的索引是有效的-请记住,列表(即:heads)会随着您削减heads而增长。 例 输入:N = 4和[0,4,2,5] 第0代-攻击指数0 0 0 0 0 => 1 1 0 0 0 ^ ^ ^ 第1代-攻击指数4 1 1 0 0 0 => 1 1 0 0 2 2 ^ ^ ^ 第2代-攻击指数2 1 1 0 0 2 2 => 1 1 3 3 …
15 code-golf 

14
在地图内的指定矩形之外生成随机点
介绍 鉴于此公平的竞争环境: (0,0) +----------------------+(map_width, 0) | A | |-----+-----------+----| | D | W | B | |-----+-----------+----| | C | +----------------------+(map_width, map_height) (0, map_height) 玩游戏的整个地图是带有角坐标(0,0)和(map_width,map_height)的矩形。有资格产生敌人的点是联盟S=⋃(A,B,C,D)S=⋃(A,B,C,D)S = \bigcup (A, B, C, D) 挑战 编写返回肯定位于S内的随机点(x,y)的代码。您的代码不能引入任何其他偏差,这意味着每个坐标的概率为 假设您选择生成随机性(例如函数)均匀分布的| library | dev / urandom)。 以字节为单位的最短解决方案获胜! 输入值 您将按顺序总共得到6个正整数输入变量: map_width, map_height, W_top_left_x, W_top_left_y, W_width, W_height。您可以假设所有区域(A,B,C,D,W)的(计算出的)表面积均> 10,因此没有空白/区域。 输入示例: …
15 code-golf  random  game 

6
生成一个
您的任务是生成一个带有指定数量的“音节”的合理发音的无意义的单词。每次运行程序都可能导致一个不同的废话。 发音能力 可发音的单词由音节组成,而音节又由可能夹在两个辅音组之间的元音组组成。并非所有声音在所有位置都能发音,并且由于这取决于语言,因此我们将使用英语使用者可以理解的模式 起始辅音组: b c d f g h j k l m n p r s t v w y z bl br ch ch cl cr dr fl ghgh gn gr kn ph pl pr qu sc sh sk sl sm sn sp st st th tr …

11
自动反预测地组装替代性咏叹调
感谢@ComradeSparklePony的标题。 这个挑战应该非常简单。给出三个列表。 第一个是名字的列表,在标题的情况下。 第二个是小写的形容词列表。 第三个是小写的名词列表。 请随机选择一个名称,可选的形容词和名词,然后输出<Name>'s <adjective> <noun>。但是,每个单词必须以相同的字母开头。您可以假设所有单词都以字母开头。您还可以假设(但是请注意在答案中): 所有单词都完全由字母字符组成 每个名字至少有一个名词 每个名词至少有一个名字 但是,您不能假定名称和名词的特定对存在形容词,因为形容词是可选的,因此输出仍然有效。 您不必统一选择共享字母,尽管所有可用字母都必须具有非零的出现机会。但是,您必须确保给定字母的所有输出在您语言的随机数生成器的限制范围内,具有尽可能接近发生的机会。在形容词的情况下,这等同于有一个额外的条目,意思是“此字母没有形容词”,与该字母的所有其他形容词有相同的机会。 输入列表示例: Joan Neil Nicola Oswald Sherman Stephanie new novel old original second silent jeep noun novel output second sheep snake 这些输入的示例输出(每行是一个单独的示例): Stephanie's second second Sherman's silent snake Oswald's original output Nicola's novel novel Neil's noun Joan's jeep …
15 code-golf  random 

30
写一个函数[关闭]
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加细节并通过编辑此帖子来澄清问题。 6个月前关闭。 老实说,我不敢相信这个挑战还不存在。 挑战 编写一个函数。 细节 您的程序必须定义某种可调用的函数。这包括通常称为函数,lambda函数或子例程的任何内容。所有这些类型的可调用对象在本文中均称为“功能”。 该功能的输入是可选的,不是必需的。 该函数的返回值也是可选的,不是必需的,但控制必须返回到调用程序。 该函数必须分配给某种变量,以便以后可以访问。这包括间接赋值(在大多数常见的语言中,声明命名函数会自动将名称添加到当前作用域中)和直接赋值(将匿名函数直接赋给变量)。 该函数无需命名。 该函数必须由您创建-您不能仅将语言的默认函数分配给变量。 请不要使用标准漏洞。 这是代码高尔夫球,因此以字节为单位的最低分数获胜。

9
滚地毯
这个问题的灵感来自凯文·克鲁伊森的问题。 现在地毯已经铺好了,我们要卷起来。您的任务是编写一个程序,该程序接受一个字符串并返回由该字符串制成的螺旋线(代表从侧面看的卷起的地毯)。 滚动地毯的一个步骤如下。有一个例子可以说明我的意思。请注意,该示例以部分卷起的地毯开始,以更好地理解: ac rpet 将“头”与地毯的“尾巴”分开:头是到目前为止已经滚过的东西,尾巴是还有待滚过的东西。 Head: ac Tail: rp et 将头顺时针旋转90°。 Rotated head: ra Tail (unchanged): pc et 如果新头的宽度(在此2)小于或等于尾巴的长度(在2) 然后把它放在尾巴上 否则,地毯(如该步骤开始时一样)被卷起 New carpet: ra pc et 根据需要重复该过程多次。 两个示例显示了地毯滚动的所有步骤: carpet c arpet ac rpet ra pc et 0123456789 0 123456789 10 23456789 21 30 456789 432 501 6789 一些精度: 您不需要显示所有中间步骤,而仅显示卷起的地毯(例如,如果您找到一种非迭代的方法来计算结果,那是完美的)。另外,您不需要打印任何前导空格,在上面的示例中,我仅显示它们以对齐内容。 …
15 code-golf  string 

11
新订单2:改变方向
简介(可以忽略) 将所有正数按其常规顺序(1、2、3,...)有点无聊,不是吗?因此,这是围绕所有正数的排列(重新排列)的一系列挑战。这是本系列的第二个挑战。第一个挑战可以在这里找到。 在此挑战中,我们使用格雷码重新排列自然数。格雷码或“反射二进制码”是以这样的方式进行二进制编码的,即两个连续的值仅相差一位。这种编码的一个实际应用是在旋转编码器中使用它,因此我对“ Turn My Way”的引用。 注意,这种编码留下了一定程度的自由度。例如,以下这些二进制1100,存在四种可能的以下代码:1101,1110,1000和0100。这就是为什么我将定义a(n)a(n)a(n)为最小,而不是先前使用的值,该值不同之处仅在二进制编码一个字符。该序列与A163252相对应。 由于这是一个“纯序列”质询,因此任务是针对给定的输出作为输入,其中是A163252。a(n)a(n)a(n)nnna(n)a(n)a(n) 任务 给定一个整数输入,以整数格式(而不是二进制格式)输出)。nnna(n)a(n)a(n) a(n)a(n)a(n)被定义为至少正整数不早的顺序,使得在发生a(n−1)a(n−1)a(n-1)和a(n)a(n)a(n)写入二进制时仅在一个位相差。 注意:此处假定基于1的索引;您可以使用基于0的索引,因此a(0)=1;a(1)=3a(0)=1;a(1)=3a(0) = 1; a(1) = 3,等等。如果您选择使用它,请在答案中提及。 测试用例 Input | Output -------------- 1 | 1 5 | 4 20 | 18 50 | 48 123 | 121 1234 | 1333 3000 | 3030 9999 | 9997 规则 输入和输出是整数(您的程序至少应支持1到32767之间的输入和输出) 无效的输入(0,浮点数,字符串,负值等)可能导致无法预测的输出,错误或(未定义的)行为。在A163252中,a(0)a(0)a(0)定义为0。对于此挑战,我们将忽略它。 默认的I …

9
在日期范围内寻找差距
给定日期范围列表r作为输入,输出或返回在中找不到的任何范围r。 为了这个示例,输入将采用YYYY-MM-DD格式。 假设您有三个日期范围: [2019-01-01, 2019-02-01] [2019-02-02, 2019-04-05] [2019-06-01, 2019-07-01] 您会看到2019-04-05和之间存在缝隙2019-06-01。 输出将是该差距: [2019-04-06, 2019-05-31] 规则 输入和输出可以采用任何合理的日期或收集格式,只要保持一致即可。 假设输入未排序。 您的日期范围不必为[latest, earliest],但必须遵循规则2。 假设输入中没有重叠的日期 测试用例: 输入: [[2019-01-01, 2019-02-01],[2019-02-02, 2019-04-05],[2019-06-01, 2019-07-01]] 输出: [[2019-04-06, 2019-05-31]] 输入: [[2019-01-01, 2019-02-01],[2018-02-02, 2018-04-05],[2019-06-01, 2019-07-01]] 输出: [[2018-04-06, 2018-12-31], [2019-02-02, 2019-05-31]] 输入: [[2019-01-01, 2019-02-01],[2019-02-02, 2019-03-02],[2019-03-03, 2019-07-01]] 输出: [] 输入: [[2019-01-01, 2019-02-01], [2019-11-02, 2019-11-20]] …
15 code-golf  date 

22
发牌给玩家
今晚是纸牌游戏之夜!您是发牌人,您的任务是编写一个程序以将牌分发给玩家。 给定纸牌阵列和玩家数量,您需要将每个玩家的纸牌阵列分成一手。 规则 您的程序将收到一个非空数组A,以及一个非零正整数n。然后应将阵列拆分为n双手。如果字符串的长度不能被n剩余的卡片所整除,则应尽可能均匀地分配。 如果为n==1,则您需要返回的数组,A因为它是唯一元素 如果n大于的长度A,则需要退回每手和空手。如果n = 4和array A = [1,2,3],您应该返回[[1],[2],[3]]或 [[1],[2],[3],[]]。您可以自由处理空,未定义或空值的空手。 数组可以包含任何类型,而不是数字。 您不应在处理时更改数组的顺序。例如if n = 2和A= [1,2,3],任何结果而不是[[1,3],[2]]无效的。 测试用例 n A Output 1 [1,2,3,4,5,6] [[1,2,3,4,5,6]] 2 [1,2,3,4,5,6] [[1,3,5],[2,4,6]] 3 [1,2,3,4,5,6] [[1,4],[2,5],[3,6]] 4 [1,2,3,4,5,6] [[1,5],[2,6],[3],[4]] 7 [1,2,3,4,5,6] [[1],[2],[3],[4],[5],[6]] // or [[1],[2],[3],[4],[5],[6],[]] 演示程序 def deal(cards, n): i = 0 players = [[] …

8
旋转不变指纹
假设我们有一些多米诺骨牌,并且想唯一地标识它们,但是多米诺骨牌可以旋转,因此盲目地对它们进行散列将不会为我们提供相同的指纹及其旋转(通常)。 例如,如果我们有L-tetromino x x xx 我们希望它具有与以下任何一个相同的指纹: xx x x xxx xxx , x or x 注意:我们只允许在平面上旋转(即,它们是单面的多米诺骨牌),因此以下多米诺骨牌将是不同的: x x xx 挑战 对于这一挑战的任务是实现一个指纹函数/程序,其需要一个m×nm×nm\times n布尔/ 0,10,10,1列出/串-valued矩阵/列表/ ..编码四角并返回一个字符串-一个四角的指纹。对于所有可能的旋转,指纹必须相等(通常为4)。 输入输出 m≥1m≥1m \geq 1和n≥1n≥1n \geq 1(即没有空四角) 您可以确保m,nm,nm,n尽可能小(即将所有000修剪为适合mmm和nnn 您可以确保输入为 只需连接 没有孔 输出必须是一个字符串,该字符串对于多米诺骨牌的每次可能旋转都相同 例子 这是一些等效类,对于每个类,指纹必须相同;对于来自两个不同类的任何两个多胺,它们必须不同。 示例中的左旋四聚体的旋转: [[1,0],[1,0],[1,1]] [[0,0,1],[1,1,1]] [[1,1],[0,1],[0,1]] [[1,1,1],[1,0,0]] J-tetromino: [[0,1],[0,1],[1,1]] [[1,1,1],[0,0,1]] [[1,1],[1,0],[1,0]] [[1,0,0],[1,1,1]] 单位多胺: [[1]] 阿5×15×15\times …

16
复利…与Wizard Money
Gringotts不仅是一个保险库,而且知名的金融机构和巫师也需要贷款。由于您不想被Gringotts妖精所困扰,因此您决定编写一个计算兴趣的程序是一个好主意。利息仅每年复利一次。 您的任务是在给定本金,利率和时间(全年)的情况下,计算利息后的总欠款,以向导货币的总面额进行操作,向下舍入到最接近的整数Knut。银色镰刀中有29枚青铜螺母,金色帆船中有17根镰刀。 例 Loan taken out: 23 Knuts 16 Sickles 103 Galleons @ 7.250% For 3 years Total owed after interest: 24 Knuts 4 Sickles 128 Galleons 注释和规则 输入和输出可以采用任何方便的格式。您必须输入Knuts,Sickles,Galleons,利率和时间。除利率外,所有都是整数。利率以0.125%的增量递增。 不能保证所输入的金额是标准的(即,您可以有29个或更多的Knuts和17个或更多的Sickles。) 输出必须是规范表示。(即少于29公斤和少于17镰刀) 与任意精确度计算相比,所欠的总计(不超过1,000加仑)的年精确度应为每年感兴趣的1 Knut。 您可以在感兴趣的每一年之后或仅在结束时四舍五入。参考计算可将此考虑在内,以进行准确性检查。 打高尔夫球快乐!
15 code-golf  math 

4
Code Golf:Letter-Ception
挑战: 输入一个字母X(从A到Z的大写或小写)和一位数字N(0-9)时,打印由N * X组成的相应字母X。 这封信必须来自以下列表: AAA BBBB CCCC DDDD EEEEE FFFFF GGG H H A A B B C D D E F G H H AAAAA BBBB C D D EEEE FFFF G GG HHHHH A A B B C D D E F G G H H A …

13
这个数字有多少个音节?
我很想拿一个数字,用英语说的时候知道其中有多少个音节。 让我们将其限制为小于一千的正整数。 我是英国人,所以当后面有任何非零数字时,我们将在百列后面加上“和”。 挑战 编写一些代码,该代码将接受小于1000的正整数,并在代表英式英语的数字的单词中输出音节的数量。 它不需要生成代表数字的单词,只需生成它们包含的音节的数量即可。 这是代码高尔夫,尝试以最少的字节数实现。 使用您喜欢的任何语言。 禁止使用标准漏洞。 测试用例 | N | In words | Syllables | | 1 | one | 1 | | 2 | two | 1 | | 3 | three | 1 | | 4 | four | 1 | | 5 | five …

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.