Questions tagged «permutations»

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

7
构造雅可比矩阵
取未知向量,并应用一些通用的微分函数。的雅可比然后通过矩阵给出,使得: 例如,假设m=3和n=2。然后(使用基于0的索引) 雅可比f然后 这个挑战的目标是打印这个雅可比矩阵。 输入值 你的程序/功能应该采取作为输入两个正整数m和n,其代表的部件的数目f和u分别。输入可以来自任何所需的来源(stdio,功能参数等)。您可以指定接收顺序,对于输入的答案必须一致(请在答案中指定)。 输出量 代表雅可比矩阵的东西。此表示形式必须明确拼出Jacobian矩阵的所有元素,但是每个术语的确切形式都是实现定义的,只要明确区分什么以及关于什么进行区分,并且每个条目均以逻辑顺序输出。用于表示矩阵的示例可接受形式: 列表列表,其中外部列表​​的每个条目都对应于雅可比行的一行,内部列表的每个条目都对应于雅可比行的列。 字符串或文本输出,其中每行是Jacobian行,每行中由定界符分隔的条目对应于jacobian的列。 矩阵的一些图形/视觉表示。示例:使用MatrixForm命令时Mathematica显示的内容 其他每个条目都已存储在内存中并且可以查询的密集矩阵对象(即,您不能使用生成器对象)。例如,Mathematica如何在内部表示Matrix对象 条目格式示例: 形式为的字符串d f_i/d u_j,其中i和j是整数。例如:d f_1/d u_2。请注意,d和f_1或之间的这些空格x_2是可选的。此外,下划线也是可选的。 形式为d f_i(u_1,...,u_n)/d u_j或的字符串d f_i(u)/d u_j。也就是说,功能组件的输入参数f_i是可选的,并且可以明确地拼写出来或以紧凑形式保留。 格式化的图形输出。例如:计算表达式时Mathematica会打印什么D[f_1[u_,u_2,...,u_n],u_1] 您可以选择起始索引u和目标索引f(请在答案中指定)。输出可以是任何所需的接收器(stdio,返回值,输出参数等)。 测试用例 以下测试用例使用约定m,n。索引显示为从0开始。 1,1 [[d f0/d u0]] 2,1 [[d f0/d u0], [d f1/d u0]] 2 2 [[d f0/d u0, d f0/d u1], [d f1/d u0, d …

2
心不在a的语言学家
背景 您的朋友是一名语言学家,已记录并分析了各种语言的一些简单对话片段。由于心不在a,他们忘记了每个摘录使用哪种语言。您必须通过创建一个程序来分析句子结构并排除可能出现的情况,来帮助他们。 输入值 您的输入是一个非空字符串SVO,其中包含字符,分别代表subject,verb和object。它代表语言学家分析的对话摘要。 输出量 您的任务是将字符串分成多个句子,并.在每个句子后输入句点。一个句子包含一个动词,或者一个动词和一个主语,或者一个动词,一个主语和一个宾语。但是,您不知道原始语言使用的单词顺序。英语使用subject-verb-object,但是其他语言(例如拉丁语)使用subject-object-verb。实际上,所有六个排列都以自然语言存在,因此您必须检查每个排列。 您的输出应以换行符分隔的字符串包含每个适用的单词顺序,冒号:和根据该顺序分成句子的输入字符串。如果无法按某些单词顺序解析字符串,则应省略相应的行。行的顺序无关紧要,并且保证至少可以解析一个单词顺序。 例 考虑输入 VSVOSV 按VOS顺序,可以将片段的解析为VS.VOS.V.,按SVO顺序,可以将其解析为V.SVO.SV.。该命令OSV也有效,完整的输出为 VOS:VS.VOS.V. SVO:V.SVO.SV. OSV:V.SV.OSV. 规则和计分 您可以编写完整的程序或函数。最低字节数获胜,并且不允许出现标准漏洞。允许使用正则表达式和所有内置函数。 测试用例 Input: V Output: VSO:V. VOS:V. SVO:V. OVS:V. SOV:V. OSV:V. Input: SVV Output: SVO:SV.V. SOV:SV.V. OSV:SV.V. Input: VSVOV Output: SVO:V.SVO.V. Input: VSOVS Output: VSO:VSO.VS. OVS:VS.OVS. Input: SVOSV Output: SVO:SVO.SV. OSV:SV.OSV. Input: VSVOSV Output: VOS:VS.VOS.V. …

4
重排不等式
背景 该排序不等式是基于重排数的不平等。如果我有两个长度相同的数字列表,则x 0,x 1,x 2 ... x n-1和y 0,y 1,y 2 ... y n-1相同长度,其中I允许重新排列列表中的数字,最大化和x 0 y 0 + x 1 y 1 + x 2 y 2 + ... + x n-1 y n-1的一种方法是对2个列表进行排序非递减顺序。 在此处阅读Wikipedia文章。 任务 您将编写一个从STDIN接受输入的程序,或者接受2个数字(长度相同)的数组(或相关容器)的函数。 假设您编写了一个接受两个数组(a和b)的函数,您将找到重新排列第二个数组(b)中的数字以最大化的方法: a[0]*b[0]+a[1]*b[1]+a[2]*b[2]+...+a[n-1]*b[n-1] 在这种情况下,如果阵列b为[1 0,2 1,2 2,3 3,3 4 ](指数为清楚起见), [1 0,2 1,2 2,3 …

5
任意长度的甲板完美洗净的循环长度
挑战 用最短的代码: 计算的任何大小的一副牌上的完美洗牌排列周期的长度Ñ(其中Ñ ≥2和Ñ是偶数)。 输出所有周期长度的2≤表Ñ ≤1000(Ñ偶数)。 请注意,定义完美混洗有两种基本方法。有一个out-shuffle,将第一张卡放在顶部,最后一张卡在底部,还有in-shuffle,将第一张和最后一张卡向中心移动一个位置。您可以选择进行混洗还是混洗。两者之间的算法几乎相同。 10张牌的随机洗牌次数:[1,2,3,4,5,6,7,8,9,10]↦[1,6,2,7,3,8,4,9,5, 10]。 10张牌的随机洗牌:[1,2,3,4,5,6,7,8,9,10]↦[6,1,7,2,8,3,9,4,10, 5]。 图形示例 在这里,我们看到20张卡片组的洗牌周期为18个步长。(这仅用于说明;您的解决方案不需要以图形方式输出周期。)另一方面,经典的52张卡座的洗牌周期只有8个步长(未显示)。 一个在洗牌 20卡甲板上具有仅6步骤的循环长度。 输出的表格示例 您的程序应该输出与此类似的内容,尽管您可以选择最喜欢的任何表格格式。这是为了洗牌: 2 1 4 2 6 4 8 3 10 6 12 10 14 12 16 4 18 8 20 18 22 6 24 11 26 20 28 18 30 28 32 5 34 …

7
高尔夫代码:弗雷序列(I)
挑战 在此任务中,您将得到一个整数N(小于10 ^ 5),输出N阶的Farey序列。 输入N在单行中给出,输入由EOF终止。 输入项 4 3 1 2 输出量 F4 = {0/1, 1/4, 1/3, 1/2, 2/3, 3/4, 1/1} F3 = {0/1, 1/3, 1/2, 2/3, 1/1} F1 = {0/1, 1/1} F2 = {0/1, 1/2, 1/1} 约束条件 输入数量不会超过10 ^ 6个值 您可以使用任何选择的语言 最短的解决方案获胜!
10 code-golf  math  code-golf  math  code-golf  number  number-theory  code-golf  math  arithmetic  repeated-transformation  code-golf  geometry  popularity-contest  code-golf  code-golf  tips  haskell  math  fastest-algorithm  code-golf  combinatorics  code-golf  math  polynomials  rational-numbers  code-golf  code-golf  popularity-contest  javascript  code-golf  kolmogorov-complexity  code-golf  code-golf  math  combinatorics  permutations  code-challenge  restricted-source  random  array-manipulation  code-challenge  generation  code-golf  code-golf  ascii-art  arithmetic  division  code-challenge  number  code-golf  math  number  binary  code-golf  ascii-art  code-golf  interpreter  stack  code-golf  internet  networking  code-golf  math  code-golf  ascii-art  code-golf  math  sequence  code-golf  hello-world  restricted-source  code-golf  ascii-art  code-golf  geometry  code-golf  kolmogorov-complexity  pi  code-golf  math  combinatorics  permutations  code-golf  math  code-challenge  ascii-art  code-golf  string  code-golf  quine  code-golf  math  floating-point  golfscript  code-golf  string  code-golf  sliding-puzzle  code-challenge  arithmetic  code-golf  math  code-golf  geometry  optimized-output 

2
Quarto中有多少次平局?
介绍 此挑战类似于欧拉计划问题。我之所以提出这个建议,是因为我在玩一个看似简单的棋盘游戏,却无法提出一个有效的解决方案来回答有关其机制的简单问题。 Quarto是连续4个有趣的变体。它在4 x 4板上演奏,有16个独特的乐段(没有乐段重复)。每位玩家每回合将1个棋子放在棋盘上。每块都有4个二进制特征(短/高,黑/白,正方形/圆形,空心/实心)。目标是针对四个特征中的任何一个,水平,垂直或沿2个对角线连续制作四个!因此有4个黑​​色块,4个白色块,4个高块,4个短块,4个正方形块,4个圆形块,4个空心块或4个实心块。 上图显示了完成的游戏,由于有4个正方形棋子,所以连续有四个。 挑战 在Quarto中,某些游戏可能以平局结束。 可能的最终头寸总数16!约为20万亿。 这些平局中有多少是平局? 规则 解决方案必须是一个程序,该程序计算并输出绘制的最终位置总数。正确答案是414298141056 您只能使用人工推导的游戏规则信息(无计算机辅助证明)。 可以对问题进行数学简化,但是必须在解决方案中(手动)进行说明和证明。 赢家是在CPU运行时间方面最优化的解决方案。 为了确定获胜者,我将在MacBook Pro 2.5 GHz Intel Core i7和16 GB RAM上运行每个报告的运行时间少于30m的解决方案。 提出与其他尺寸的电路板都兼容的解决方案没有任何加分。即使那会很好。 如果适用,您的程序必须在1分钟内在上述硬件上编译(以避免滥用编译器优化) 不允许默认漏洞 意见书 请发表: 该代码或指向该代码的github / bitbucket链接。 代码的输出。 您本地测量的运行时间 您的方法的说明。 最后期限 提交截止日期为3月1日,因此还有很多时间。

6
输出向量的所有不同排列
挑战: 输出一个可能很长的正整数列表的所有不同排列。您可能会假设测试时向量的数目少于1,000,但是从理论上讲,该过程应适用于任何一个数目大于一个的向量,而不论大小。 限制条件: 您必须将内存使用量限制为O(n ^ 2),其中n是输入向量中元素的数量。您不能拥有O(n!)。这意味着您无法将所有排列存储在内存中。 您必须将时间复杂度限制为O(result size * n)。如果所有数字相等,则为O(n);如果所有数字均不同,则为O(n!* n)。这意味着您无法创建一个排列并将其与所有其他排列进行检查以确保唯一性(这将是O(n!^ 2 * n))。 可以接受表明满足时间和内存限制的经验度量。 您实际上必须打印/输出排列(因为不可能存储它们)。 如果您运行程序足够长的时间,那么所有排列都应输出(理论上)! 不同的排列: 列表[ 1,1,2 ]具有三个排列,而不是六个:[ 1,1,2 ],[1,2,1]和[2,1,1]。您可以选择输出的顺序。 可管理的测试用例: Input: [1, 2, 1] Output: [1, 1, 2] [1, 2, 1] [2, 1, 1] Input: [1, 2, 3, 2] Output: [1, 2, 2, 3] [1, 2, …

7
打假素!
简介/背景 在最近一次关于加密聊天的讨论中,我被挑战去讨论/帮助Fermat素数测试和Carmichael数字。该测试基于a^(p-1) mod p==1始终适用于素数p而不适用于复合材料的前提。现在,carmichael号码本质上是Fermat考验的最大敌人:您必须选择一个号码,a以使其不与素数p相抵a^(p-1) mod p!=1。现在,如果a不是互质,则基本上可以发现一个非平凡的因子p众所周知,保理可能相当困难。特别是在所有因素都足够大的情况下。您现在可能已经意识到,为什么在实践中不经常使用Fermat测试(还有更好的算法),这是因为作为防御者(在安全性方面)您需要为某些数字做与攻击者(即数量)。 因此,既然我们知道为什么这些数字有些引人入胜,我们将以最短的方式生成它们,因此只要需要,我们就可以记住生成的代码! Carmichael编号在OEIS上也称为A002997。已经 存在一个相关的挑战,但是这里的条目没有竞争力,因为它们是针对速度而非大小进行了优化的。同样的论点也适用于反方向,此处的输入可能会在速度上做出取舍,而有利于大小。 规格 输入项 这是一个标准 序列挑战,因此您将正整数或非负整数n作为输入。n可以根据需要选择0或1的索引(请指出)。 输出量 根据需要,您的输出将是n-th carmichael数或第一个ncarmichael数(请指出)。 规格 一个整数x是卡迈克尔数当且仅当x是复合材料和所有的整数y与gcd(x,y)=1,它认为y^(x-1) mod x==1。 谁赢? 这是 代码高尔夫球,因此以字节为单位的最短代码获胜!适用标准IO和漏洞规则。 测试用例 前几个carmichael号码是: 561,1105,1729,2465,2821,6601,8911,10585,15841, 29341,41041,46657,52633,62745,63973,75361,101101, 115921,126217,162401,172081,188461,252601,278545, 294409,314821,334153,340561,399001,410041,449065, 488881,512461
9 code-golf  math  sequence  number-theory  primes  code-golf  string  code-golf  math  combinatorics  permutations  restricted-complexity  code-golf  array-manipulation  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 

13
扩大比较链
与大多数语言不同,Python a<b<c会像在数学中一样进行评估,实际上是比较三个数字,而不是将布尔值a<b与进行比较c。用C(以及许多其他语言)编写此代码的正确方法是a<b && b<c。 在这个挑战中,您的任务是将这样任意长度的比较链从Python /直观表示扩展到如何用其他语言编写。 技术指标 您的程序必须要处理运算符:==, !=, <, >, <=, >=。 输入将具有仅使用整数的比较链。 不用担心一路比较的真实性,这纯粹是语法/语法上的挑战。 输入将没有任何空格,以防止答案因分割空格而使解析变得琐碎。 但是,您的输出可能只有一个空格,要么仅包含&&,要么包含比较运算符和&&,或者两者都不包含,但是要保持一致。 测试用例 Input Output --------------------------------------------------------------- 3<4<5 3<4 && 4<5 3<4<5<6<7<8<9 3<4 && 4<5 && 5<6 && 6<7 && 7<8 && 8<9 3<5==6<19 3<5 && 5==6 && 6<19 10>=5<7!=20 10>=5 && 5<7 && 7!=20 15==15==15==15==15 …
9 code-golf  parsing  conversion  syntax  code-golf  sequence  primes  code-challenge  geometry  optimization  code-golf  graph-theory  code-golf  number-theory  primes  integer  code-golf  source-layout  cops-and-robbers  code-golf  source-layout  cops-and-robbers  code-golf  sequence  primes  integer  code-golf  math  number-theory  primes  rational-numbers  code-golf  math  sequence  number-theory  primes  code-golf  string  code-golf  math  combinatorics  permutations  restricted-complexity  code-golf  array-manipulation  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 

30
给定int输入n,输出n * reversed(n)
给定一个整数n,打印输出n * reversed(n) reversed(n)是当您reverse的数字为时得到的数字n。 reverse(512) = 215 reverse(1) = 1 reverse(101) = 101 >>>>>>>> func(5) = 5*5 = 25 func(12) = 12*21 = 252 func(11) = 11*11 = 121 func(659) = 659*956 = 630004 最短的代码胜出! 排行榜 显示代码段 var QUESTION_ID=144816,OVERRIDE_USER=71625;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var …
9 code-golf  math  arithmetic  code-golf  math  integer  code-golf  arithmetic  integer  code-golf  sequence  base-conversion  palindrome  code-golf  math  primes  integer  code-golf  parsing  conversion  syntax  code-golf  sequence  primes  code-challenge  geometry  optimization  code-golf  graph-theory  code-golf  number-theory  primes  integer  code-golf  source-layout  cops-and-robbers  code-golf  source-layout  cops-and-robbers  code-golf  sequence  primes  integer  code-golf  math  number-theory  primes  rational-numbers  code-golf  math  sequence  number-theory  primes  code-golf  string  code-golf  math  combinatorics  permutations  restricted-complexity  code-golf  array-manipulation  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 

11
构造一个置换器
对于这个挑战,您将要制作一个函数(您的函数可能是一个完整的程序),该函数将列表作为输入并返回该列表的排列。您的功能必须遵守以下要求。 它必须是确定性的。 将函数本身与变量进行组合的次数应该可以使列表包含其所有排列。 这是一个代码问题,因此答案将以字节计分,字节越少越好。 进一步规定 你可以采取任何类型的列表,( ,,[Integer] 只要),因为它[String][[Integer]] 可以为非空 可以包含具有至少16个可能值的不同对象。(您不能使用Haskell [()]并声称您的函数是id) 可以包含重复的对象(无集合) 您可以编写程序或函数,但必须遵守标准IO。

2
一百个最常用的单词
之所以写这个问题,是因为“ Thing Explainer”很有趣,并且给了我一个主意。 编写“使计算机做事的东西”,以读取/获取一组字母,数字和类似的东西"#%|?,True / 1如果所有单词都属于该集合,则返回。 如果所有单词都不属于该集合,请返回不属于该集合的单词。 在任何情况下都可以认为本网站是正确的。编写规则是为了遵守该站点上的规范。 例子: Truthy: 如果将第一条水平线上方的整个文本粘贴为输入,则代码应返回真实值。 以下几行应返回真实值(输入之间用分隔###) This returns "Hello, World!" ### tHiS rEtUrNs TrUe... ### Thing Explainer is a book written by a man. The man writes books with simple words. ### This set of stuff "#!^{>7( must return true 虚假的: 在以下示例中,输入和输出用分隔***。不同的测试用例用分隔###。 This code …
9 code-golf  string  parsing  code-golf  array-manipulation  random  permutations  code-golf  string  code-golf  parsing  code-golf  string  quine  code-golf  string  parsing  comment  code-golf  string  counting  natural-language  code-golf  string  decision-problem  code-golf  math  code-challenge  metagolf  test-battery  code-golf  string  code-golf  math  number  arithmetic  source-layout  code-golf  number  primes  decision-problem  code-golf  math  arithmetic  code-golf  date  code-golf  string  cryptography  code-golf  code-golf  chess  board-game  code-golf  geometry  grid  puzzle-solver  set-partitions  code-golf  number  natural-language  code-golf  ascii-art  code-golf  math  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  string  natural-language  code-golf  game  board-game  tic-tac-toe  code-golf  ascii-art  hexagonal-grid  code-golf  string  comment  code-golf  internet  code-golf  sorting  code-golf  kolmogorov-complexity  unicode  code-golf  tips  code-golf  string  natural-language  code-golf  string  kolmogorov-complexity  source-layout  hello-world  code-golf  string  kolmogorov-complexity  counting  natural-language  code-golf  random  quine  code-golf  string  math  bitwise  code-golf  permutations  code-golf  string  code-golf  arithmetic 

15
随机映射
我们将地图定义为一组键值对。对于此挑战,您需要获取每个值并将其分配给随机选择的键。 您必须随机调整值,然后输出结果图。这意味着每次我们运行您的程序时,我们都有机会获得不同的输出 值的每个可能排列都必须具有非零的出现机会。 所有原始键和原始值必须出现在结果数组中。重复的值在结果数组中必须出现相同的次数。 例如,如果您的地图是: [0:10, 1:10, 5:5] 以下所有条件都必须有出现的机会: [0:10, 1:10, 5:5] (original map) [0:10, 1:5, 5:10] [0:10, 1:10, 5:5] (technically the same map, but I swapped the two tens) [0:10, 1:5, 5:10] [0:5, 1:10, 5:10] [0:5, 1:10, 5:10] 可接受的输入/输出: 您语言的母语地图 您可以输入键值对数组。您可能无法输入2个数组,一个数组带有键,另一个数组带有值。 您可以使用上述任何形式的字符串表示形式 如果输入数组或地图,则可以修改原始对象,而无需返回 输入类型必须与输出类型匹配 如果输入数组,则必须保持键的顺序。 您可以假设键是唯一的,但是不能假设值是唯一的。 这是一个 代码高尔夫球,因此回答越短越好

6
以循环符号打印对称组Sn的“偶数”排列
任务 定义 考虑点{1,2,3,4,5}及其所有排列。我们可以通过一个简单的技巧找到这5个点的可能排列总数:成像用这些点填充5个插槽,第一个插槽将具有5个可能的数字,第二个插槽将具有5个可能的数字(因为已经使用一个填充了第一个插槽)第三三个,依此类推。因此,置换的总数为5 * 4 * 3 * 2 * 1;这将是5!排列或120个排列。我们可以将其视为对称组S5,然后对称组Sn将具有n! or (n*n-1*n-2...*1)置换。 “偶数”排列是偶数个偶数长度周期的排列。以循环表示法(例如(1 2 3)(4 5)置换)书写时最容易理解1->2->3->1,4->5->4并且具有1个3个长度的周期(1 2 3)和1个2个长度的周期(4 5)。当将排列归类为奇数或偶数时,我们忽略奇数长度的循环,并说此排列[ (1 2 3)(4 5)]为奇数,因为它具有偶数长度循环的奇数{1}。甚至示例: (1)(2 3)(4 5)=两个2长度循环| 偶数 (1 2 3 4 5)=没有均匀的长度循环| 偶数 *请注意,如果不存在偶数长度循环,则排列是偶数。 奇怪的例子: (1 2)(3 4 5)= 1个2个长度周期| 奇数| (1)(2 3 4 5)= 1个4个长度的周期| 奇数| 由于在任何对称组中恰好一半的排列是偶数,因此我们可以将偶数组称为交替组N,因此S5 = …

4
策展人的困境
介绍 您是一家美术馆策展人的朋友,他最近很高兴能从四位艺术家那里获得现代艺术(其中有些人会为策展人提供零艺术品,年轻的流氓)。由于这是现代艺术,因此任何给定艺术家的作品都看起来完全一样。您的朋友想使用计算机来帮助确定这些零件的放置顺序。 课程要求 您的程序必须使用五个整数(传递给函数或通过stdin输入(或以其他方式输入))。前四幅是四位艺术家各自提供的绘画数量。最后一个值是排列索引i(从1开始计数,而不是0)。策展人希望i按字典的顺序查看绘画的排列。 您的程序必须以任何合理的格式输出此排列:例如abbccd或[0 1 1 2 2 3]。总输入少于十幅画的运行时间必须少于一个小时(希望这不会有问题)。 不允许使用任何内置函数来计算排列 例子 输入:0 1 2 0 2 假设我们有艺术家B的一幅画和艺术家C的两幅画(它们看起来都一样),则按字典顺序排列是: ['bcc',' cbc ','ccb'] 高亮显示的排列将是正确的输出,因为它是按字典顺序排列的第二个。 输入:1 2 0 1 5 [“ abbd”,“ abdb”,“ adbb”,“ babd”,“ badb ”,“ bbad”,“ bbda”,“ bdab”,“ bdba”,“ dabb”,“ dbab”,“ dbba”] 测试中 这是一些应该正确的测试。 1 2 4 1 5 - ABBDCCCC …

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.