Questions tagged «code-golf»

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

8
生成蚂蚁排列
介绍 我在较早的挑战中定义了蚂蚁排列的类别。作为提醒,置换p的数字从0到R-1是坐立不安,如果对于每一个条目P [I]除了第一,有一些较早条目P [IK] ,使得P [I] == P [ ik]±1。作为一个有趣的事实,我还说过,对于r≥1,正好有2个r-1长度为r的蚁群。这意味着长度为r的蚂蚁排列与长度为r-1的二元向量之间存在一一对应的关系。在这个挑战中,您的任务是实现这种对应关系。 任务 你的任务是写一个程序或函数,它在长度的二元载体1≤N≤99,并输出长度的坐立不安排列的n + 1。排列可以是基于0的基于1的(但是必须一致),并且输入和输出可以采用任何合理的格式。此外,不同的输入必须始终提供不同的输出。除此之外,您可以自由返回任何想要的蚂蚁排列。 最低字节数获胜。 例 长度为4的(从0开始)蚁群排列是 0 1 2 3 1 0 2 3 1 2 0 3 1 2 3 0 2 1 0 3 2 1 3 0 2 3 1 0 3 2 1 0 并且您的程序应针对长度3的八个位向量中的每一个返回其中之一: …

4
帮我在作弊作弊
作弊是一种纸牌游戏,您想摆脱它。转弯大致如下所示: 确定您该回合必须打的卡等级。在大多数变体中,这比上一回合高一等级。 面朝下播放1-4张牌。这些不必匹配有效等级。如果他们不这样做,就被视为作弊。此时,任何玩家都可以挑战您。 如果没有人挑战您,则继续玩下一位玩家。 如果有人挑战您并且您没有作弊,那么他们必须拿走所有已玩过的纸牌。 如果有人挑战您并且您作弊,则您必须拿走所有已玩过的纸牌。 该策略主要是虚张声势和纸牌计数的组合。不过我数学不好,所以我要欺骗作弊者并带一个机器人。 输入值 输入将采用您想要的任何顺序或格式: 玩家的手。如果我知道他们必须有卡(例如,我看过他们捡起它们),则这些卡将以升序排列。任何未知内容将在之后列为?。例如,如果他们有6张牌,并且我知道2张为1,一张为4张,则该手的有效表示为114???。?总是会在已知卡之后列出。 141???并且11???4都是无效输入,您的代码不需要处理它们。 我绝对不知道这些卡不是他们手的一部分(我有它们,我看到有人捡起它们,等等)。该列表将按升序排列。该列表可能为空。 玩家声称玩的纸牌。如果他们声称玩3 7,则可能输入777。卡将始终处于同一等级。 所打牌的数量将始终为1-4,等级始终为0-9。等级在他们手中不会出现超过四次,而不会出现在手中。 这是一个有效输入示例: 33577?? 01555688 55 这是一个无效输入示例: 35377?? # Out of order 7779 # Five 7's in total 23 # Two separate ranks played 输出量 如果我们一定要挑战的话,这是一个真实的价值。如果我们不想挑战,则为假值。 如果我们知道他们被骗了,我们就会一直挑战。我们知道,如果他们打出不可能的牌,他们就会作弊: 12 3 # They don't have any 3's or ?'s …

5
解拉普拉斯方程
数值数学导论 这就是“你好,世界!” PDE(偏微分方程)。拉普拉斯方程或扩散方程经常出现在物理学中,例如热方程,变形,流体动力学等。由于现实生活是3D,但我们要说的是“世界,你好!” 而不是唱“ 99瓶啤酒,...”,此任务以1D形式给出。您可以将其解释为两端都绑在墙上的橡胶长袍。 在一个[0,1]域中找到一个函数u在给定源功能f和边界值u_L和u_R这样的: -u'' = f u(0) = u_L u(1) = u_R u'' 表示的二阶导数 u 这是可以解决的纯粹theoritical但你的任务是它数值求解一个离散域X的N要点: x = {i/(N-1) | i=0..N-1}或从1开始:{(i-1)/(N-1) | i=1..N} h = 1/(N-1) 是间距 输入值 f 作为函数或表达式或字符串 u_L,u_R作为浮点值 N 作为整数> = 2 输出量 阵列,列表,某种形式的分离式串u这样的u_i == u(x_i) 例子 例子1 输入:f = -2,u_L = u_R = …
13 code-golf  math  number 

4
帮我万圣节装饰
万圣节快到了,我还没有装修房子,所以我需要您的帮助才能完成此任务 输入 输入将是4位数字的列表,其中每个数字代表装饰的一部分: EMBU |||| |||+-upper decoration ||+-bottom decoration |+-mouth/nose +-eyes 眼睛: 0 - ° 1 - ¯ 2 - - 3 - ^ 4 -' 口/鼻 0 - v 1 - w 2 - o 3 - _ 4 -- 底部装饰 0-无 1-骨架 2-南瓜 上装 0-没东西 1-蝙蝠 2-蝙蝠 3-蜘蛛 …

6
到四的距离
此挑战基于此视频。我建议您在尝试此挑战之前先观看一下。 首先我们定义一个函数。此函数(OEIS)以整数n作为输入,并输出n的英语表示形式的字母数(不带空格或连字符)。例如,“三个”有5个字母,因此3个映射到5。 如视频中所示(以任何数字开头),重复此过程最终将得到4,该数字将永远映射到其自身。 这是一个粗略的有向图,显示了小于16的数字的轨道。 12 11 \| 15 2 6 1 10 14 13 \ \|/ / / / 7 3-/ 8--/ \| / 9 0 5--/ \ \| \-4 您面临的挑战是确定一个数字将要达到的四个步骤(即,有向图上的水平),然后确定一个数字将要执行的步骤数(或此功能必须应用于一个数字的次数)。 形成英文数字 以下是有关如何应对这一挑战的英文单词的简要说明: 数字1到19是: 一,二,三,四,五,六,七,八,九,十,十一,十二,十三,十四,十五,十六,十七,十八,十九 对于大于19的数字,过程如下: 如果数字有百位,则以百位中的数字名称开头并“百位”。 例如 100 -> "onehundred" 如果余数少于20,则附加余数的英语表示。 例如 714 -> "sevenhundredfourteen" 否则,如果十位数不为零,请附加适当的表示形式: 2-> twenty 3-> …

4
六面体:Validagons
挑战 给定ASCII艺术形状,您必须找出形状是否为正六边形。 六边形 使用两个规则定义正六边形: 它有六个侧面 每边有相等数量的字符 例如,以下形状是规则的,但没有六个边,因此不是规则的六边形: B a a h s a i d y o u r g a o t 类似地,以下形状具有六个边,但是具有不同长度的边,因此不是正六边形: * * * * * * * * * * * * * * 但是,以下形状具有六个边,并且所有边均具有相同数量的字符,因此它是正六边形: T h e h e x a g o n s …

10
ASCII奇/偶密码
我们将通过以下伪代码定义ASCII奇/偶密码: Define 'neighbor' as the characters adjacent to the current letter in the string If the one of the neighbors is out of bounds of the string, treat it as \0 or null Take an input string For each letter in the string, do If the 0-based index of the …

11
解释松散范围
解释松散范围 ListSharp是一种解释型编程语言,具有许多功能,其中一个功能是基于1索引的范围创建器,其工作方式如下: 您可以将范围定义为(INT) TO (INT)或仅定义(INT)两个int可以从min到max int32值的范围 然后,您可以使用这些范围来提取数组的元素,而不必担心会超出其边界 因此: 1 TO 5 产生: {1,2,3,4,5} 3 产生: {3} 范围可以使用AND运算符相加 1 TO 5 AND 3 TO 6 产生: {1,2,3,4,5,3,4,5,6} 记住这也适用于负数 3 TO -3 产生: {3,2,1,0,-1,-2,-3} 挑战如下: 输入值 字符数组和先前定义的range子句作为字符串 输出量 范围中基于1索引位置的元素(不存在/负索引会转换为空字符) 如何取胜 作为代码高尔夫球挑战,您应该创建具有最少字节数的程序以获胜 有人指出不存在空字符,因此您应该忽略它们(我仅在此处显示它们是为了使它们更易于理解,但却使人感到困惑) 测试用例: input array is: {'H','e','l','l','o',' ','W','o','r','l','d'} range clause: "1 TO …
13 code-golf  array-manipulation  parsing  code-golf  string  ascii-art  kolmogorov-complexity  code-challenge  code-golf  sequence  code-golf  number  array-manipulation  sorting  code-golf  string  function  code-golf  arithmetic  code-golf  math  sequence  number-theory  primes  restricted-source  javascript  code-challenge  polyglot  rosetta-stone  code-golf  code-golf  regular-expression  code-golf  math  code-golf  math  primes  code-golf  ascii-art  kolmogorov-complexity  binary  code-golf  math  sequence  code-golf  sequence  subsequence  code-golf  string  code-golf  parsing  music  code-golf  grid  game  path-finding  board-game  code-golf  string  binary  code-golf  array-manipulation  balanced-string  code-golf  code-golf  algorithm  code-golf  string  number  arithmetic  array-manipulation  code-golf  array-manipulation  binary-tree  tree-traversal  code-golf  code-golf  tips  code-golf  string  base-conversion  code-golf  tips  s.i.l.o.s  code-golf  string  ascii-art  code-golf  code-challenge  code-golf  game 

5
找到正确的道路
给定路径列表,输出正确的路径。 路径示例: /\ ----+/ | -并且|是水平和垂直路径。 /并\转90°。 +根据当前方向被视为a -或a |。 路径可以沿任何方向前进,并且可以在多个路径中使用一个字符。 输入将如下所示: /--\ A------+--+--# B------/ \--: C------------# D------------# A,B,C和D是路径开始 # 是一堵墙(路径不好) : 是终点(路径正确) 因此,这里的输出将是B。 您可以假设: :并且#总是从左边到达。 路径开头右侧的字符将始终为-。 路径将永远形成良好。 #并且:将始终位于同一列中。 始终只有一个:和四个路径。 测试用例 A------# B------# C------# D------: => D A-\ /---: B-+-/ /-# C-+---+-# D-+---/ \-----# => B /-\ A-+\\---# B-/\-\/-# C----++-# …

7
世界就像一面镜子:微笑,它将ll
输入: 一个仅包含以下字符的字符串:( abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.?!末尾加空格)和两个特殊字符(_和|) 输出: 镜的基础上的位置(一个或多个)文本_和|。 _水平|镜像,垂直镜像。 镜像过程 第一个_指示该子字符串的镜像开始,第二个指示_结束。 如果只_存在一个,则可以继续进行到字符串末尾。 如果_存在两个以上,则重复相同的过程。 |字符串中只能有一个,这会颠倒第一个子字符串并删除第二个子字符串。 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.?!(结尾处的空格)将通过以下方式转换为ɐqɔpǝɟɓɥıɾʞlɯuodbɹsʇnʌʍxʎz∀𐐒ƆᗡƎℲ⅁HIſ⋊⅂WNOԀΌᴚS⊥∩ΛMX⅄Z0⇂ᘔƐ߈ϛ9ㄥ86˙¿¡(结尾处的空格)_(单击unicode值的链接-需要unicode v8.0 +)。 示例输入1: _Will I be mirrored?! 输出1: Mıll I qǝ ɯıɹɹoɹǝp¿¡ 示例输入2: Wi_ll I be mi_rrored?! 输出2: Will I qǝ ɯırrored?! 当它被镜像时,|我们只需将子字符串从0反转为index-of- |。 示例输入1: Will I be mirror|ed?! 输出1: Will I be mirrorrorrim eb I lliW 字符串中可以同时存在两个镜像(_和|)。 …
13 code-golf  string 

4
交错开始
在其中赛车手绕弯的弯道至少转一圈的比赛中,每个赛车手的起始位置都是错开的,因此每个赛车手在赛道上行驶相同的距离(否则,最里面的车道上的赛车手将具有巨大的优势)。 给定椭圆轨道的长轴和短轴(或半长轴和半短轴,如果您愿意的话)的长度和轨道中的车道数,请输出距每个车道的最里面车道起点的距离应该错开。 技术指标 每个泳道是一个椭圆形,具有半长轴,比下一个最短的泳道长5个单位。为简单起见,假设通道的宽度为0。 最里面的通道始终从0开始,其他每个起点都是一个大于或等于前一个起点的正整数。 输入和输出可以采用任何方便且合理的格式。 输入将始终是整数。 您必须计算出轨道的周长,使其不超过实际值的0.01单位。 输出将四舍五入到最接近的整数(有底)。 终点线是最里面的赛车手的起点。比赛只有一圈。 轴的长度是使用轨道的最里面的车道测量的。 为最内通道的偏移量输出0是可选的。 测试用例 格式: a, b, n -> <list of offsets, excluding innermost lane> 20, 10, 5 -> 30, 61, 92, 124 5, 5, 2 -> 31 15, 40, 7 -> 29, 60, 91, 121, 152, 183 35, 40, 4 …

9
两个列表的未分类主化
定义 一种载体,一含有Ñ元件据说 majorize或 支配的矢量b与Ñ 元件当且仅当对于所有的值ķ使得1≤ ķ ≤ Ñ,的第一个元素的总和一个↓通过ķ的第i个元素一个↓是更大等于或等于b ↓的第一个到第k个元素的和 ,其中v ↓表示按降序排序的向量v。 那是, a_1 >= b_1 a_1 + a_2 >= b_1 + b_2 a_1 + a_2 + a_3 >= b_1 + b_2 + b_3 ... a_1 + a_2 + ... + a_n-1 >= b_1 + b_2 + ... + b_n-1 a_1 …

19
实施此关键密码
实施此关键密码 目标 使用算法(在“算法”部分中有说明)来实现特定密码。 该程序必须从STDIN或最接近的可用等效项中读取输入,使用该算法生成密文和密钥。 密文和密钥将被写入STDOUT或最接近的等效密钥。允许任何格式,只要它输出密文和密钥即可。 算法 将字符串中的字符转换为相应的ASCII值。例如: Hello -> 72 101 108 108 111 接下来,您将需要生成一个密钥,只要该字符串的随机数在0-9范围内即可。 Hello -> 62841 将随机数序列中的整数添加到字符串的ASCII值。在上述示例中,72将变为78,而101将变为104。 72 + 6 = 78, 101 + 2 = 103, 108 + 8 = 116, etc 接下来,将新值转换回字符。在上述示例中,文本Hello变为Ngtpp。 例子 (这些仅仅是输出什么样的例子可能看起来像,输出可以且将会变化。) Hello World Lfrlu)_supg 41606984343 This will be encoded Zhjs$~koo gj$iuhofgj 60104723305544750226 规则 …

4
使用N个硬币和每个面额的硬币找零问题枚举
该硬币找零问题是非常有据可查。由于币值的硬币的无限供给x_1到x_m你需要找到这加起来的组合的数量y。例如,给定x = {1,2,3}和y = 4我们有四个组合: {1,1,1,1} {1,1,2} {1,3} {2,2} 介绍 硬币找零问题有几种变体。在此变体中,我们还有两个其他限制: 每个面额必须至少使用一次。 总共总共必须使用固定数量的硬币。 例如,给定x = {1,2,3},y = 36并n = 15在那里n是必须使用硬币的总数,我们得到四种组合: {1,2,2,2,2,2,2,2,3,3,3,3,3,3,3} (1个,7个2、7个3) {1,1,2,2,2,2,2,3,3,3,3,3,3,3,3} (2个,5个二,8个三分) {1,1,1,2,2,2,3,3,3,3,3,3,3,3,3} (3个,3个二,9个三分) {1,1,1,1,2,3,3,3,3,3,3,3,3,3,3} (4个,1个二,10个三分) 挑战 面临的挑战是用enumerate您选择的语言编写一个函数,该函数枚举上述所有组合: 面额列表。例如{1,5,10,25}。您可以使用列表或数组。 一个非负整数y,表示每个组合的总和。 一个非负整数n,表示硬币总数。 参数的顺序无关紧要。允许无点功能。 enumerate函数的输出必须是组合列表。每个组合都必须是唯一的,并且必须是n加在一起为的整数列表y。每个面额在每个组合中必须至少出现一次,并且不得丢失任何组合。整数及其组合的顺序无关紧要。您可以使用列表或数组作为输出。 请记住以下情况: 如果y和n均为零,并且面额列表为空,则输出为一个组合的列表,即空组合(即{{}})。 否则,如果y为零,n为零或面额列表为空,则输出为零组合的列表(即{})。 更一般而言,如果y小于面额之和或n小于面额数,则输出为零组合的列表。 计分将基于整个程序的大小(以字节为单位)。请注意,这包括enumerate函数,辅助函数,导入语句等。它不包括测试用例。

8
收集和放置物品
这项挑战的目标是收集列表中的选定项目并将其移动到列表中的特定位置。 作为一个直观示例,请使用输入值(用黑框整数表示)和相应的真值列表,其中true表示已选择项目(用蓝色框表示,其中T真是F虚假): 逻辑上的第一步是将标记为“真”和“不真”的项目分成相应的列表。请注意,必须保持每个列表中的相对顺序(即,所选项目的顺序必须为1,4,5,而未选中项目的顺序必须为2,3,6,7)! 第二个逻辑步骤是在未选择项的其余列表中指定一个索引,在给定索引处将所有选择的项插入到该项之前。假设索引从0开始,假设您要在索引3处插入选择。这对应于7框前的位置,因此所选项目应插入之前7。 最终的解决方案是2,3,6,1,4,5,7。 注意,此逻辑图描述了可以完成此操作的一种方法。只要输出始终产生相同的可观察结果,您的程序就无需采取相同的逻辑步骤。 输入值 您的程序有3个输入: 代表项目的整数列表。这可能是一个空列表。此列表将始终由唯一的正整数组成,而不必按排序顺序排列(即,列表中5不会出现两次)。 真/假值列表,其长度与项目列表的长度相同,其中真值表示已选择具有相同索引的项目。 一个整数,表示要插入选择的位置。您可以选择列表中第一项的索引,只要它在程序的每次运行中都保持不变即可(例如,第一项可以是索引0或索引1)。请指定您的程序遵守的约定。该索引应在范围内[starting_idx, ending_idx+1],即它将始终是有效索引。如果案例索引为ending_idx+1,则选择内容应插入列表的末尾。您可能会认为此整数适合您语言的本机整数类型。 输入可以来自任何所需的来源(stdio,功能参数等) 输出量 输出是代表项目最终顺序的列表。这可以是任何所需的源(stdio,返回值,函数输出参数等)。允许您就地修改任何输入(例如,给定一个可修改列表作为函数参数,并让您的函数在该列表上就地操作)。 测试用例 以下所有测试用例均假定基于0的索引。我使用0和1分别表示选择蒙版的虚假/真实值。 测试用例碰巧具有格式为的列表[a,b,c],但是只要您的输入列表表示一个有限的有序序列就可以了。 输入: [] [] 0 输出: [] 输入: [1,2,3,4,5,6,7] [1,0,0,1,1,0,0] 3 输出: [2,3,6,1,4,5,7] 输入: [1,2,3,4,5,6,7] [1,0,0,1,1,0,0] 0 输出: [1,4,5,2,3,6,7] 输入: [1,2,3,4,5,6,7] [1,0,0,1,1,0,0] 4 输出: [2,3,6,7,1,4,5] 输入: [1,2,3,4,5,6,7] [1,1,1,1,1,1,1] 0 输出: [1,2,3,4,5,6,7] 输入: [1,2,3,4,5,6,7] …

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.