Questions tagged «permutations»

排列是某些对象列表的特定顺序。用置换标记的问题通常涉及查找或生成置换,包括文本的字谜。

11
源排列
集合S = { s 1,s 2,… ,s n }的置换是一个双射函数π :S → S。例如,如果小号= { 1 ,2 ,3 ,4 }那么函数小号= { s1个,秒2,… ,sñ}小号={s1个,s2,…,sñ}S = \{s_1, s_2, \dotsc, s_n\}π:S→ Sπ:小号→小号\pi: S \to S小号= { 1 ,2 ,3 ,4 }小号={1个,2,3,4}S = \{1,2,3,4\}π:x↦1+(x+1mod4)π:x↦1+(x+1mod4)\pi: x \mapsto 1 + (x + 1 \mod 4)是一个置换: π(1)=3,π(2)=4,π(3)=1,π(4)=2π(1个)=3,π(2)=4,π(3)=1个,π(4)=2 \pi(1) = …

9
块重排
因此,您的任务是采用一个3x3的块,其中-的平均空格和*的平均填充空格,例如: -** -*- *-* 并重新排列该块,以使*形成一个X,如下所示: *-* -*- *-* 输入: 3x3个正方形,如上面,它们可以是3条线,一个数组,也可以是您想要的。 输出:重新排列成X的最短动作量。每个动作都翻转了两个相互接触的字符,这些字符彼此水平,彼此垂直或彼此对角线。如果不可能,则返回任何不可能的输出,例如999或-4242。5是最小的此类数字。 测试用例: 1)输出:1 -** -*- *-* 2)输出:-1 -*- -*- *-* 3)输出:3 --- -** *** 4)输出:0 *-* -*- *-* 您可以替换空白和非空白字符,但请确保在帖子中包括哪个字符 高尔夫代码 请记住,这是最短代码胜利的代码高尔夫球!

12
从回文子串中缝合回文
给定一个字符串l,找到所有回文子p的l(包括重复和单一字符串)。接下来,将所有子字符串重新排列p为有效回文(可能有多个正确答案)。如果不可能重新排列p为单个回文,则您的程序可能具有不确定的行为(错误,堆栈溢出,退出,John Dvorak的挂起/过早杀害等)。 例子 有效的测试用例 l = anaa p = ['a', 'n', 'a', 'a', 'aa', 'ana'] result = anaaaaana or aanaaanaa or aaananaaa l = 1213235 p = ['1', '2', '1', '3', '2', '3', '5', '121', '323'] result = 1213235323121 l = racecar p = ['r', 'a', 'c', 'e', 'c', 'a', …

8
混乱的重排
您的任务是编写一个计算机程序,以便将其切成几行(用换行符分隔)时,行的每种排列将输出1到n之间的不同数字!(其中n是总行数)。两种不同的布置均不得输出数字,并且每种布置均应在此范围内输出数字。既然有n!排列程序行的方式,这意味着每个数字应通过一次重新排列输出。 例如python程序 print 1;""" print 2;""" 有两种安排 print 1;""" print 2;""" 和 print 2;""" print 1;""" 第一输出1和第二输出2。 您可以使用所使用语言的标准输出格式。您可能不会假设任何样板。我认为,如果您必须解决语言所坚持的任何格式,那么这一挑战将变得更加有趣。 计分 您的分数将是程序中的行数,分数越高越好。如果愿意,您可以选择输出0到n!-1之间的数字。

15
生成合计为目标值的组合
挑战 假设您有一个数字列表和一个目标值。查找所有数字组合的集合,这些组合的总和等于目标值,并将它们作为列表索引返回。 输入输出 输入将采用数字列表(不一定是唯一的)和目标求和数字。输出将是一组非空列表,每个列表包含对应于原始输入列表中值位置的整数值。 例子 Input: values = [1, 2, 1, 5], target = 8 Output: [ [0,1,3], [1,2,3] ] Input: values = [4.8, 9.5, 2.7, 11.12, 10], target = 14.8 Output: [ [0,4] ] Input: values = [7, 8, 9, -10, 20, 27], target = 17 Output: [ [1,2], …

11
子集总和的N位变化
对于我正在编写的另一个挑战,我需要验证测试用例是否可以用有界整数解决。具体来说,对于整数A和整数位宽度的非空数组,我需要验证以下内容n: 中的所有整数a都A满足-2**(n-1) <= a < 2**(n-1)(用n-bit二进制数的补码整数表示)。 的长度A小于2**n。 A满足的总和-2**(n-1) <= sum(A) < 2**(n-1)。 元素的所有组合均A满足所有上述条件。 自然,我决定将这个问题外包给您! 给定一个整数数组A和一个正整数位宽度n,请验证是否A满足上述条件。 测试用例 [0, 0, 0], 2: True [0, 0, 0, 0], 2: False (violates #2) [1, 2, 3, 4, 5], 8: True [1, 2, 3, 4, 5], 2: False (violates all conditions) [1, 2, 3, 4, …

14
递归级联[N]的累积和与M次迭代
取两个正整数N,M并[N]通过M迭代创建的串联累积和。输出最后一次迭代的结果。 串联累积和的定义: 以数字开头N并定义顺序X = [N] 追加到X的累积和X 重复步骤2 M次。 向量的累加和X = [x1, x2, x3, x4]为:[x1, x1+x2, x1+x2+x3, x1+x2+x3+x4]。 N = 1和的示例M = 4: P =累积和函数。 M = 0: [1] M = 1: [1, 1] - X = [1, P(1)] = [[1], [1]] M = 2: [1, 1, 1, 2] - X …
14 code-golf  number  sequence  code-golf  number  sequence  code-golf  binary-matrix  code-golf  math  tips  javascript  algorithm  code-golf  string  code-golf  number  sequence  code-golf  math  arithmetic  parsing  code-golf  number  sequence  primes  code-golf  string  ascii-art  geometry  integer  code-golf  geometry  code-golf  number  array-manipulation  code-golf  math  geometry  code-golf  number  sequence  arithmetic  integer  code-golf  string  kolmogorov-complexity  code-golf  number  code-golf  number  chess  code-golf  sequence  decision-problem  subsequence  code-golf  math  number  primes  code-golf  primes  permutations  code-golf  integer  probability-theory  statistics  code-golf  string  code-golf  sequence  decision-problem  parsing  board-game  code-golf  binary  graph-theory  code-golf  board-game  classification  tic-tac-toe  code-golf  ascii-art  polyglot  code-golf  date  code-golf  geometry 

5
生成所有Brain-Flak片段
这个问题是旨在庆祝Brain-Flak的第一个生日的几个Brain-flak Birthday挑战中的第二个!您可以在此处找到有关Brain-Flak诞辰的更多信息 挑战 对于这个挑战,您将从括号列表中生成所有完全匹配的字符串。借用DJMcMayhem对完全匹配的字符串的定义: 出于此挑战的目的,“括号”是以下任意字符:()[]{}<>。 如果左括号和右括号的顺序正确且其中没有字符,则将一对括号视为“匹配” () []{} 或者,如果其中的每个子元素也都匹配。 [()()()()] {<[]>} (()()) 子元素也可以嵌套几层深。 [(){<><>[()]}<>()] <[{((()))}]> 当且仅当每对括号中的正确开/右括号正确且顺序正确时,才将字符串视为“完全匹配”。 输入值 您的程序或函数将采用任何方便且一致的格式列出四个非负数的列表。这包括(但不限于)整数列表,非数字定界字符串或单独的参数。这四个数字代表每种类型的括号的匹配对数。例如,[1,2,3,4]将代表: 1对 () 2对 {} 3对[]和 4对 <> 您可以选择每个输入对应的一对括号,只要它们是一致的即可。 输出量 您应该输出可以从此括号列表中形成的所有完全匹配的字符串,而不重复。输出可以采用任何合理的格式,包括将非括号分隔的字符串打印到STDOUT或将字符串列表作为函数的返回值。 您的算法必须适用于任何任意输入,但是您不必担心内存,时间或整数大小限制(例如,如果答案是C,则不会得到2 33作为输入)。 这是代码高尔夫球,因此最短的答案以字节为单位。 输入和输出示例 对于这些示例,我将使用与上面相同的输入顺序。 对于每个示例,第一行将被输入,随后几行将被输出 Example 0: [0,0,0,0] Example 1: [1,0,0,0] () Example 2: [0,2,0,0] {}{} {{}} Example 3: [0,0,1,1] []<> …

21
高尔夫球位编织
注意:此挑战的前半部分来自Martin Ender的先前挑战, Visualize Bit Weaving。 深奥的编程语言 Evil对字节值进行了有趣的操作,称之为“编织”。 本质上是字节的八位的排列(因为模式是对称的,所以我们从哪一端开始计数并不重要): 位0移至位2 位1移至位0 位2移到位4 位3移至位1 位4移至位6 位5移至位3 位6移至位7 位7移至位5 为方便起见,这是置换的其他三种表示形式。作为一个周期: (02467531) 作为映射: 57361402 -> 76543210 -> 64725031 并作为映射对的列表: [[0,2], [1,0], [2,4], [3,1], [4,6], [5,3], [6,7], [7,5]] 后 8织品,字节基本复位。 例如,编织数字10011101(157以10 为底)将产生01110110(118以10底)。 输入值 只有256有效输入,即0和之间的所有整数255。可以采用任何基数,但是必须保持一致,并且如果选择的基数不是十进制,则必须指定它。 你可能不会对输入进行零填充。 输出量 您应该以任何基数输出位编织的结果,该结果还必须一致,并且如果不是十进制,则必须指定。 您可以将输出零填充。 相关:可视化位编织

6
来信,动起来!铂 2
首字母,动起来!非常受欢迎,但参与度有限。这个问题将更容易解决,但希望在打高尔夫球时能有一些技巧。 只给您提供一串小写字母。对于每个字母,在字母表中的位置m,将其移动,使其从末尾成为第m个字母。如果m的值比字符串的长度长,请将其移到最前面。仅输出完全转换的字符串。 例子: “长颈鹿” 'g'是字母表中的第7个字母,它已经是背面的第7个字母,因此请保留。 “ i”是第9个字母,由于9大于单词的长度,因此它位于最前面,因此字符串变为 igraffe “ r”是第18个字母,就像“ i”一样,它位于前面: rigaffe “ a”是第一个字母,它一直到最后: rigffea “ f”是第6个字母,从背面变成第6个字母: rfigfea 下一个'f'也是第6个字母,因此它也从后面移到第6个字母: rffigea “ e”是第5个字母,从背面到第5个字母: rfefiga “花” 'f'(6)=> flower 'l'(12)=> lfower 'o'(15)=> olfwer 'w'(23)=> wolfer 'e'(5)=> weolfr 'r'(18)=> rweolf “菠萝” 'p'(16)=> pineapple 'i'(9)=> ipneapple 'n'(14)=> nipeapple 'e'(5)=> nipaepple 'a'(1)=> nipepplea 'p'(16)=> pnipeplea 'p'(16)=> …

17
代码高尔夫:转发sdrawkcaB sdrawkcaB转发转发sdrawkcaB
任务 用户输入一个句子-仅单词。除字母或空格外的任何输入(包括整数和标点符号)都应引发异常:“句子只能使用字母”。 输出具有一种模式,其中某些单词是反向的,而其他单词是正常的。 模式从正常单词开始,接下来的两个单词反转,然后接下来的两个单词正常,模式继续。 以下是单词应为正常位置和单词经反转位置的示例: 正常-反转-反转-正常-正常-反转-反转-正常... 输入范例 她在海边卖贝壳 输出范例 她在海岸边偷走贝壳 附加规则 如果使用大写字母,则它们应保留在最初张贴的字母上。 最初在输入上发布的任何多个空格都应减少为一个空格。例如Programming Puzzles and Code Golf变成Programming selzzuP dna Code Golf 最短的代码胜出!! 祝您编程愉快...

8
按字母顺序排列的Fannkuch
Fannkuch是一个经典的基准程序。该名称来自德语“ Pfannkuchen”(煎饼),该算法类似于翻转煎饼叠。Fannkuch的数字序列形成如下: 以{1 ..... n}的排列为例,例如:{4,2,1,5,3}。取第一个元素(这里为4),并颠倒前四个元素的顺序:{5,1,2,4,3}。重复此操作,直到第一个元素为1,这样翻转就不再更改:{3,4,2,1,5},{2,4,3,1,5},{4,2,3, 1,5},{1,3,2,4,5} 您将要编写一个程序或函数来为字母字符串计算出类似于Fannkuch的序列。应该使用字母在字母表中的位置,而不是使用数字来指示每次应翻转列表中的多少元素。例如,前导c表示您应该颠倒前3个元素的顺序,而前导a表示序列已完成。 输入值 输入将通过stdin作为字符串或作为函数参数提供。该字符串将包含1到26个不同的小写字母。字符串将不包含字母,这些字母的等效索引将导致Fannkuch算法翻转比现有数量更多的元素。 输出量 程序或函数应返回或打印以输出通过应用Fannkuch算法产生的术语序列,直到a遇到前导为止,包括初始字符串。例如,如果输入为bca,则可以打印: bca cba abc 打印的结果可以使用任何合理的分隔符-逗号,换行符等。可以选择任何空白。 再举一个例子,如果输入的是eabdc您可能会返回: ("eabdc" "cdbae" "bdcae" "dbcae" "acbde") 规则和计分 这是代码高尔夫球 -最短的程序获胜。不允许使用标准漏洞。

11
输出不同因子长方体
输出不同因子长方体 今天的任务非常简单:给定一个正整数,输出可通过其因子形成的每个长方体的代表。 说明 长方体的体积是其三个边长的乘积。例如,第4卷,其边长是整数可以具有侧面的长方体[1, 1, 4],[1, 2, 2],[1, 4, 1],[2, 1, 2],[2, 2, 1],或[4, 1, 1]。但是,其中一些代表相同的长方体:例如[1, 1, 4]和[4, 1, 1]旋转相同的长方体。只有两个不同的长方体,分别是体积4和整数边:[1, 1, 4]和[1, 2, 2]。输出可以是第一个长方体的任何表示形式,也可以是第二个长方体的任何表示形式。 输入值 程序必须采用一个正整数1≤n≤231−11≤n≤231−11 \le n \le 2^{31}−1。 输出量 您将需要以列表或任何其他可接受的方式输出所有可能的长方体。例如 Input Output 1 [[1, 1, 1]] 2 [[1, 1, 2]] 3 [[1, 1, 3]] 4 [[1, 1, 4], …

8
排列奇偶
背景 所述置换的奇偶性,由维基百科所定义,如下: 排列σ的符号表示为sgn(σ),如果σ为偶数,则定义为+1,如果σ为奇数,则定义为-1。 排列的符号可以明确表示为 sgn(σ)=(-1)^ N(σ) 其中,N(σ)是σ中的求逆数。 替代地,可以从置换成分解为换位的乘积来定义置换的符号 sgn(σ)=(-1)^ m 其中,m是分解中的换位数。 对于那些在数学上不喜欢希腊字母汤的人,我将尝试通过一个示例(也从维基百科窃取)来简化定义。 例 考虑输入数组{1, 2, 3, 4, 5},以及它的一个排列,比如说{3, 4, 5, 2, 1}。为了从原始数组获取其排列,您必须交换索引0和2,1和3,然后交换2和4。尽管这不是唯一的解决方案,但奇偶校验定义明确,因此适用于所有情况。 由于需要进行3次交换,因此我们用odd奇偶校验标记此排列。如您所料,要求偶数交换的排列具有even奇偶性。 挑战 您面临的挑战是编写尽可能少的字节的程序以确定排列的奇偶性。您的程序或函数必须: 接受两个输入数组(或字符串)作为参数,分别表示排列前后的集合。 给定排列,返回或打印e偶数或o奇数字符。 应该假设数组或字符串中的所有索引都具有唯一值。 测试用例 假设您声明了一个名为的函数f: f([10], [10]) == "e" f([10, 30, 20], [30, 20, 10]) == "e" f([10, 30, 20, 40], [30, 20, 40, 10]) …

6
矩形内的独特砖瓦
我在浏览#1,看到这个问题有关平铺显示M×N的矩形,我认为这将是伟大的高尔夫球场。这是任务。 给定尺寸M和N,编写一个程序,输出在给定这些约束的情况下可以平铺MxN矩形(N是行数,而不是列数。这并不重要)有多少种独特方式。 所有图块均为2x1或3x1 所有图块都留在其行内(即它们都是水平的) 每两个相邻的行之间,除了两端之外,磁贴不应对齐 M和N保证至少为1 例如,有效的8x3矩阵切片将是 2 3 3 | | | v v v _______________ |___|_____|_____| |_____|_____|___| |___|_____|_____| 但是以下内容将无效,因为行对齐 2 3 3 | | | v v v _______________ |___|_____|_____| |_____|___|_____| |_____|_____|___| 测试用例: 8x3:4 3x1:1 1x1:0 9x4:10 编码高尔夫,最短的答案将获胜。

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.