Questions tagged «permutations»

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

10
具有不可区分项目的排列
给定一个整数列表,输出整数的排列数量,其中不可区分的排列计数一次。如果有n整数,并且每组不可区分的数字都有length n_i,则为n! / (n_1! * n_2! * ...) 规则 输入将以某种形式的列表作为具有1到12个非负整数的函数或程序的参数。 输出将是打印或返回如上所述的排列数量。 没有标准漏洞或内置函数(生成排列,组合等)。允许析因。 测试用例 输入: 1, 3000, 2, 2, 8 1, 1, 1 2, 4, 3, 2, 3, 4, 4, 4, 4, 4, 1, 1 输出: 60 1 83160

8
排版多维标签
在一个蒸汽朋克的多维世界中,我们的老板想在集团的多维文件柜中的每个抽屉上粘贴打印的索引标签。 老板希望使用仅为此目的而购买的字体将整个标签纸排版为单个表格,因此我们必须订购分类(金属符号片)。由于排序非常昂贵,因此我们的订购必须针对每个数字符号的准确计数。 对于给定的(以任何方式)长度≥0的一组长度,返回(以任何方式)我们的命令,这是排版所有笛卡尔坐标所需的数字频率表。它必须按键盘的出现顺序排列(即9之后为0),并且可能不包含0种排序的顺序,因此,如果根本不排序(因为尺寸的长度为0),则不能排序。什么都不打印。 如果您的代码也可以处理(即不打印任何内容)0个维度,则-3分的奖励。 最终换行符是可以接受的。 禁止使用标准漏洞。 如前所述,排序很昂贵,因此是codecolf。 善良的灵魂可能会编辑此挑战,以包括自动评分,因此请添加标题,例如:# LanguageName, 123 sorts 测试用例 给定11,打印: 1 4 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 0 1 因为所需要的标签1,2,3,4,5,6,7,8,9,10,和11。 给定2 3,打印: 1 5 2 5 3 2 因为所需要的标签1 1, 1 2, 1 3, 2 1, …

3
计算Hankelable矩阵的数量
背景 二元汉克尔矩阵是具有仅包含0s和1s的恒定斜对角线(正倾斜对角线)的矩阵。例如,一个5x5二进制汉克矩阵看起来像 a b c d e b c d e f c d e f g d e f g h e f g h i 其中a, b, c, d, e, f, g, h, i要么0或1。 让我们定义一个矩阵中号为Hankelable如果有行和列的顺序的排列中号,使中号是汉克尔矩阵。这意味着可以对行顺序应用一种排列,对列应用一种可能的排列。 挑战 我们面临的挑战是要算多少Hankelable n通过n矩阵有全部n达到尽可能大的价值成为可能。 输出量 对于每个整数n从1个向上,输出的数目Hankelable n通过n基质与作为条目0或1。 对于n = 1,2,3,4,5答案应该是2,12,230,12076,1446672。(感谢orlp提供产生这些代码的代码。) 时限 我将在计算机上运行您的代码,并在1分钟后将其停止。输出正确答案的代码,最大n次取胜。时间限制是所有问题的答案,从n = 1最大的价值到n您给出的答案。 …

7
打个好字的高尔夫给你!
任务 在这个挑战中,您的任务是编写一些代码,以随机分布的方式输出随机选择的七巧板之一,但永远不要输出。 细化 如果没有输入,您的程序应输出其源代码的任何字谜。您的程序永远都不要输出自己的源代码,即,永远不要成为奎因。 输入值 您的程序不得输入任何内容。但是,如果您的语言需要输入,则可以假定将其小写a。但是,您不得以任何方式使用输入。 输出量 您的程序可以以任何方式输出,除非将其写入变量。允许写入文件,控制台,屏幕等。功能return也是允许的。 附加规则 程序的源代码必须至少包含3个字符(而不是3个字节)。 程序的源代码必须至少包含3个字谜(不包含其自身)。例如,aab由于(和)aab以外只有两个字谜,因此不算作有效提交。aabbaaaba 您的程序不得产生任何错误。 您的程序应准确输出其字谜。 适用标准漏洞和标准奎因规则。 例 假设程序的源代码是abc。它应该随机输出以下任意一项(均匀分布): acb bca bac cba cab 并且,它永远都不应输出abc。 获胜标准 这是代码高尔夫球,因此以字节为单位的最短代码胜出!如果出现平局,则以较早发布的解决方案为准!

5
排列的组成–集团产品
给定两个不连续循环形式的排列,以不连续循环形式输出其乘积/组成。 要查找组成,请将不相交的循环转换为两行符号的排列。循环的不连续部分中的每个数字都映射到同一部分中跟在其后的数字。它环绕。所以1 -> 5,5 -> 1,2 -> 4,4 -> 2。如果找不到数字3 -> 3,则会将其映射到自身。第一个不相交的周期也可以写成(1 5)(2 4)(3)。这些映射将转换为两行,如下所示(请注意,P和Q的顺序相反): 通过重新排列第二个(最左)排列的列,使其第一行与第一个(最右)排列的第二行相同,可以得到两个排列的乘积。然后可以将乘积写为修改后的第二排列的第二行上的第一排列的第一行。 维基百科文章 规则: 输入将以列表形式或类似格式给出 您可能不会采取类似(1 5)(2 4)as之类的[5, 4, 3, 2, 1]已经两行的形式(将索引映射为值) 并非每个组中都必须有所有数字,所以您可能会有(1 5)·(1 2),导致(2 5 1)。 您的输出应该可以用作输入。 您不需要使用空循环来支持输入(1 5)·()。取而代之的是(1 5)·(1)或等价的。 由于循环回绕,因此顺序不重要,只要结果正确即可。 您可以从零或一开始。没关系,因为结果相同。 数字可以大于9。 您可能在输出中多次包含相同的数字。所以[[1],[1]]是不允许的。 注意,该操作不是可交换的!我将Q放在P之前,因为这是Wikipedia所做的。您可以选择任何顺序,但要指定不同的顺序。 最短的代码胜出 允许内置,但是如果您使用内置的,请在不使用的情况下显示解决方案。 例子: 并未显示所有等效的输出可能性 Input Output [[1, 5], [2, 4]], [[1, …

5
最小未使用数量共享一个因素
这是工厂问题的一个很好的解决方案。我将定义一个序列,然后您浏览一些代码以输出给定索引的条目。 序列中的第一项是2。 序列中的第n个项目是除n和1以外的最小正整数,与n共享至少一个因子(除1之外),该因子尚未出现在列表中。 测试用例 以下是序列中的前25个项目: 1 2 2 4 3 6 4 8 5 10 6 3 7 14 8 12 9 15 10 5 11 22 12 9 13 26 14 7 15 18 16 20 17 34 18 16 19 38 20 24 21 27 22 11 23 …

7
查找具有各种长度的循环的函数
的功能被说成具有一个长度的周期n如果存在一个X在其结构域,使得˚F Ñ(X)= X和˚F 米(X)≠X为0 <M <N ,其中,上标Ñ表示ñ - f的折叠应用。请注意,长度为1的循环是不动点f(x)= x。 您的任务是实现从整数到其自身的双射函数,该函数正好具有每个正长度n的一个周期。双射函数是一对一的对应关系,即每个整数都恰好映射到一次。具有一个长度为n的正好一个周期意味着正好有n个不同的数字x,对于0 <m <n,f n(x)= x且f m(x)≠x。 这是x = 0周围的此类函数的示例: x ... -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 ... f(x) ... 2 4 6 -3 -1 1 -4 0 -2 5 7 …

3
可能的俄罗斯方块序列
编写代码以弄清楚官方的Tetris算法是否可以生成一系列Tetris。最少的字节数获胜。 官方的俄罗斯方块游戏以特殊方式生成掉落序列。IJLOSTZ以随机顺序删除这七个片段,然后删除另一个随机排列,依此类推。 JTLOISZ STJOLIZ LISJOTZ ... 此示例包含连续的片段 SZSTJOLIZLIS 请注意,它跨越了一个由7组组成的边界。 SZOTLZSOJSIT 不能是任何俄罗斯方块序列的子字符串,因此在正式的俄罗斯方块游戏中永远不会看到它。 输入:一个非空的字母字符串IJLOSTZ。 输出:一个True或Falsey值,表示输入是官方Tetris Random Generator可以生成的序列的子字符串,即七个字母的排列的串联。 测试用例: 真正: T JJ (unique breakdown: J J) JTJ (possible breakdown: JT J) LTOZIJS SZSTJOLIZLIS (possible breakdown: SZ STJOLIZ LIS) JTLOISZSTJOLIZLISJOTZ (possible breakdown: JTLOISZ STJOLIZ LISJOTZ) LIJZTSLIJZTS (unique breakdown: LIJZTS LIJZTS) 假: SZOTLZSOJSIT ZZZ ZIZJLJ …

1
构造正交对角希腊拉丁广场
考虑一个由Nx个N唯一元素组成的网格。每个元素都有一个字母(从A到第Nth个字母,包括端点)和一个数字(从1到N,包括端点)。因此,每个数字/字母对恰好在网格中一次。 您的工作是安排一个网格,以便: 每行,每列和对角线(包括换行)仅包含每个字母和数字一次。 通过包装,我的意思是 * * * # * * * # * * * # * * * # * * * * * * * * # 是对角线,以及碰到边缘的所有类似对角线。 一个示例5x5网格是: A1 B2 C3 D4 E5 C4 D5 E1 A2 B3 E2 A3 B4 C5 D1 B5 C1 D2 E3 …

2
X大于3,且X和Y之间至少相差2
我试图打败一些C ++。是否可以使这种情况更短? X > 3 & X - Y > 1 (当然,除了删除空白。) 所以,X至少4,但X >= Y + 2。 X和Y是[0,5]间隔中的整数。 我试图找到一些按位公式,但失败了。
11 code-golf  number  tips  c++  code-golf  popularity-contest  obfuscation  code-golf  c  code-golf  board-game  hexagonal-grid  code-golf  game  grid  code-golf  number  permutations  popularity-contest  math  graphical-output  number-theory  king-of-the-hill  code-challenge  compression  code-challenge  fastest-code  code-golf  math  ascii-art  animation  code-golf  popularity-contest  generation  counting  fastest-code  fastest-code  popularity-contest  image-processing  king-of-the-hill  code-golf  conversion  binary-tree  code-golf  math  number  rational-numbers  division  code-golf  restricted-source  hashing  atomic-code-golf  logic-gates  code-golf  function  code-challenge  puzzle-solver  ai-player  test-battery  popularity-contest  music  compression  code-golf  number  stack  atomic-code-golf  logic-gates  ascii-art  popularity-contest  code-golf  date  grid  code-challenge  game  code-golf  parsing  code-golf  math  geometry  sequence  popularity-contest  code-trolling  code-golf  string  restricted-source  code-golf  quine  king-of-the-hill  code-golf  math  code-golf  simulation  code-golf  ascii-art  code-challenge  sorting  optimization 

5
拓扑总数
对于给定的DAG(有向无环图),其每个拓扑排序都是所有顶点的排列,其中,对于DAG 中的每个边(u,v),在排列中,u出现在v之前。 您的任务是计算给定DAG的拓扑种类总数。 规则 您可以使用任何格式来表示图,例如邻接矩阵,邻接列表或边列表,只要您不对编码进行有用的计算。如果有用,您也可以在输入中包含诸如顶点数或顶点列表之类的东西。 您可以假设输入中的图形始终是DAG(没有任何循环)。 理论上,您的程序应该可以进行任何输入。但是,如果它溢出您语言中的基本整数类型,它可能会失败。 顶点名称可以是任何类型的任何连续值。例如:以0或1开头的数字。(当然,仅当您不使用该数字存储代码时)。 这是代码高尔夫球。最短的代码获胜。 例 这是相同的输入,但格式不同。您的程序不必全部接受。顶点始终是从0开始的整数。 Adjacency list: [ [1 2 3 5] [2 4] [] [2] [] [3] ] Adjacency matrix: [ [0 1 1 1 0 1] [0 0 1 0 1 0] [0 0 0 0 0 0] [0 0 1 0 …

7
七巧板奎因斯(Robbers'Thread)
这是一个 警察和强盗挑战警察的线索可以在这里找到 作为强盗,您要面对的挑战是从警察的线程中获取输出,并找到输出的字谜,当程序运行该字谜时,会提供原始输出。 获胜者将是在这个问题上最有效的人。 规则 您可能无法破解提供的程序标记为安全的答案。 如果警察提供了您想要的解决方案所用的语言,则您必须使用该特定语言来破解它,如果他们选择不这样做,则您可能会以任何竞争性语言来破解它。 适用Quines的标准规则。 裂缝一定不是完美的奎因。也就是说,他们不得输出其确切来源,而应重新排序(该顺序由警察提供)。

5
阿弥陀签(Amidakuji)的简化
如果您曾经接触过日本或东亚文化,那么您肯定会遇到过Amidakuji游戏: 正如Wikipedia解释的那样,这是一种抽签在纸上的彩票,用于随机选择N个项目的排列。 例如,它可以用于将开始顺序随机分配给N个人,或者将N个奖赏分配给N个人,依此类推。 了解游戏为何代表排列的诀窍是要意识到每个水平笔划(称为“腿”)都会将其两个项目交换到位。 同一Wikipedia页面还解释了N个项的每个排列P对应于无数个Amidakuji图。水平笔画(腿)最少的那个被称为那个特定排列P的“素数”。 您的任务是使用以下格式(减去字母)接收带有2条或更多垂直线(在本示例中为6条)的Amidakuji图: A B C D E F | | | | | | |-| |-| |-| | |-| |-| | | | | | |-| | |-| |-| | | | |-| |-| | | |-| | | |-| | |-| | |-| |-| | …

5
这是Anagram Quine,而不仅仅是Quine!
任务 在这个挑战中,您的任务是编写一个程序,该程序不输入任何内容,而要使用尽可能多的拼写形式。 您的分数将是程序源代码中有效有效字词的字谜数量除以可能的正确字谜总数,即有效字谜的字谜百分比。 适用标准漏洞和标准奎因规则。 注意:您的程序必须至少包含3个字符(而不是3个字节)。 输入值 程序本身的每个字谜(或排列)(即分数中包含的字谜)都不得输入任何内容。如果您的语言需要输入,那么可以假定您的程序将获得由小写字母A组成的字符串。但是,您不得以任何方式使用输入。 输出量 n程序源代码的不同字谜的数量必须是有效的quines,其中n代表您要包含在乐谱中的那些字谜的数量,即 那些quina-anagarams可以以任何方式输出,除非将输出写入变量。允许写入文件,控制台,屏幕等。功能return也是允许的。 计分范例 假设程序的源代码是code。和, code输出code。 coed输出coed。 cdoe输出cdoe。 cdeo输出cdeo。 cedo输出cedo。 ceod输出ceod。 ocde输出ocde。 oced输出oced。 odce输出odce。 odec不输出odec或产生错误。 oedc不输出oedc或产生错误。 oecd不输出oecd或产生错误。 doce不输出doce或产生错误。 doec不输出doec或产生错误。 dcoe不输出dcoe或产生错误。 dceo不输出deco或产生错误。 deco不输出deco或产生错误。 deoc不输出deoc或产生错误。 eodc不输出eodc或产生错误。 eocd不输出eocd或产生错误。 edoc不输出edoc或产生错误。 edco不输出edco或产生错误。 ecdo不输出ecdo或产生错误。 ecod不输出ecod或产生错误。 该解决方案的分数将是 获胜标准 得分最高的解决方案获胜!如果出现平局,则具有较高字符数(而不是字节数)的答案将获胜(因此,代码保龄球就可以了!)如果平局仍然存在,那么早先发布的解决方案将获胜!

5
排列步骤
编写一个函数,该函数采用一组整数并打印该组的每个排列,并在每个步骤之间执行交换 输入值 一组整数,例如(0,1,2) 输出量 格式(set)(交换)(set)的排列和交换列表... 测试用例 Input: (3, 1, 5) Output: (3, 1, 5) (3, 1) (1, 3, 5) (3, 5) (1, 5, 3) (1, 3) (3, 5, 1) (3, 5) (5, 3, 1) (3, 1) (5, 1, 3) 规则 您可以根据需要格式化数字集。 您可以按任何顺序进行交换 您可以重复排列和交换以获得新的排列 您的代码不必实际执行交换,输出仅需要显示在最后一个输出和当前输出之间进行了哪些交换 您的代码仅需要对包含2个或更多元素的集合起作用 您获得的集合将没有重复的元素(例如(0,1,1,2)无效) 这是代码高尔夫球,所以最短的代码胜出!

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.