Questions tagged «combinatorics»

对于涉及组合学的挑战。

3
一条河可以穿越多少条路?
想象一条直河和一条穿过桥梁穿越河N次的道路。这条路不会自行循环,并且会无限长。这条路将被视为一条蜿蜒的道路。一个开放的曲折是一个开放的曲线,该不相交本身和在两端,其交叉的线延伸无限Ñ次。 有效曲折可以完全通过其访问的交点的顺序来描述。 一个曲折可以与n个相交的相交的不同模式的数量为n 个平均数。例如,n = 4: 该序列的前几个数字是: 1, 1, 1, 2, 3, 8, 14, 42, 81, 262, 538, 1828, 3926, 13820, 30694, 110954... 这是OEIS序列A005316。 挑战 编写一个程序/函数,将正整数n作为输入并打印第n个平均数。 技术指标 适用标准I / O规则。 标准的漏洞被禁止。 您的解决方案可以是0索引或1索引,但是请指定。 挑战并不是要找到所有语言中最短的方法,而是要找到每种语言中最短的方法。 除非另有说明,否则您的代码通常以UTF-8编码形式以字节计分。 允许使用内置函数来计算此序列,但鼓励使用不依赖内置函数的解决方案。 鼓励甚至对“实用”语言进行解释。 测试用例 这些是0索引的。请注意,如果您的语言默认情况下无法处理这么大的数字。 Input Output 1 1 2 1 11 1828 14 30694 21 73424650 …

2
计算有多少距离序列与所有其他距离序列
等长的两个字符串之间的汉明距离是相应符号不同的位置数。 让P是长度为二进制串n和T是长度为二进制字符串2n-1。我们可以按从左到右的顺序计算到每个长度子字符串n之间的汉明距离,并将它们放入数组(或列表)中。PnT 汉明距离序列示例 让P = 101和T = 01100。从这对中得到的汉明距离的顺序为2,2,1。 亲密关系的定义 现在让我们考虑两个这样的汉明距离序列。说x = (0, 2, 2, 3, 0)和y = (2, 1, 4, 4, 2)作为例子。我们说是x,如果y是close,y <= x <= 2*y或者是x <= y <= 2*x。这里,标量乘法和不等式是按元素进行的。也就是说,对于两个序列A和B,A <= B iff A[i] <= B[i]为所有指数i。 注意,汉明距离序列通过这种比较方式形成了偏序。换句话说,许多序列对既不大于也不等于也不小于或等于彼此。例如(1,2)和(2,1)。 因此,使用上面的示例,(0, 2, 2, 3, 0) <= 2*(2, 1, 4, 4, 2) = (4, …

16
属于回文的字符串排列数
您的输入将是由小英文字母组成的字符串。 您的任务是确定作为回文的原始字符串的不同排列的数量。 输入字符串最多包含100个字母。在较长的字符串的情况下,结果可能会很大,因此输出应为模数666013的排列数。 例如, cababaa -> 3 可能的排列是: aabcbaa abacaba baacaab 这是代码高尔夫球,所以最短的答案会成功!

14
生成给定元素列表的所有组合,排序
编写一个将列表和数字作为输入的代码,并生成带有数字长度的所有可能组合。例如,使用列表{0,1}和数字2: 00 01 10 11 您的程序不必在列表中两次或多次出现字符,例如 {0,0,0,0,0,1,1,5,5} 确保按列表顺序打印出已排序的组合: 使用列表{0,1}和数字5(由我的某些代码生成,这是赢的时间太长了): 00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 11010 11011 11100 11101 11110 11111 但是使用列表{1,0}和数字2: 11 10 01 00 如您所见,反向列表表示反向顺序。 看一下结构,就像一棵树。 这是代码高尔夫球,因此以字节为单位的最短代码胜出!

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函数,辅助函数,导入语句等。它不包括测试用例。

11
区分大小写重要吗?
汤姆将实现他发明的一种新的编程语言。但是在实际开始研究之前,他想知道他的语言是否应该区分大小写。 一方面,对他而言,不区分大小写似乎更容易实现,但他担心这可能会导致缺少形成变量的字符组合的可能性,这意味着应使用更长的变量名来避免命名冲突(因为例如,你可以使用Hello,HEllo,heLLo和一堆其他的可能性,如果语言是大小写敏感的,但只HELLO如果没有)。 但是汤姆是一个细心的人,所以仅仅担心对他来说还不够。他想知道数字。 挑战 编写一个函数(或者完整的程序,如果您的语言不支持它们的话),给定一个整数n作为输入,输出(或返回)一个长度字符串的可能排列数量的差异(n不区分大小写)。 用汤姆的语言,变量名可以包括所有字母,下划线,以及从第二个字符开始的数字。 测试用例 Input (length of the variable) -> Output (difference between the possibilities with case sensitivity and the possibilities with case insensitivity) 0 -> 0 1 -> 26 2 -> 2340 5 -> 784304586 8 -> 206202813193260 9 -> 13057419408922746 非竞争性C ++参考实现 void diff(int n) …

4
获取吸气剂
任务 我想每个人都喜欢自动代码生成并节省工作时间。您白天必须创建许多类和成员,而又不想getters手动创建所有这些类和成员。 任务是编写一个程序或函数,该程序或函数getters将为您自动为所有类成员生成。 输入 在我们的语言中,对象非常简单。类和成员的名称必须以字符开头,[a-zA-Z]并且只能包含字符[a-zA-Z0-9]。这是一个例子: class Stack { public overflow; protected trace; private errorReport; } 输出 这是基于给定示例的有效输出: class Stack { public overflow; protected trace; private errorReport; public function getOverflow() { return this->overflow; } public function getTrace() { return this->trace; } public function getErrorReport() { return this->errorReport; } } 吸气剂 getter方法的要求是: …
13 code-golf  string  syntax  code-golf  math  primes  rational-numbers  code-golf  graphical-output  image-processing  code-golf  kolmogorov-complexity  music  audio  code-golf  string  code-golf  math  geometry  code-golf  math  sequence  combinatorics  code-golf  game  grid  board-game  code-golf  restricted-source  array-manipulation  source-layout  code-golf  base-conversion  binary  code-golf  math  physics  code-golf  math  number  date  expression-building  code-golf  array-manipulation  graph-theory  decision-problem  popularity-contest  error-correction  code-golf  kolmogorov-complexity  geometry  grid  code-challenge  arithmetic  combinatorics  set-partitions  code-golf  kolmogorov-complexity  sequence  fibonacci  code-golf  restricted-source  pristine-programming  code-golf  code-golf  string  kolmogorov-complexity  code-golf  arithmetic  code-golf  string  parsing  code-golf  code-golf  sorting  counting  permutations  3d  code-golf  code-golf  ascii-art  music  code-golf  string  code-golf  string  ascii-art  code-golf  string  code-golf  quine  polyglot  code-golf  math  string  code-golf  internet 


3
Brainfuck中的按位运算符
您的任务是为以下每个二进制运算符创建一个Brainfuck程序。每个程序应从输入中获取一个或两个8位数字(A和B)并计算指定的运算: A XOR B A AND B A OR B A Shifted Left by 1 (circular shift) NOT A 您不必全部实施5。得分的计算方式为: #totalCharacters + {4000 * #problemsNotCompleted} 因此,有效分数是从零(最佳)到20,000(未完成)。 我不在乎您将结果存储在哪里,也不管您是否保留输入。假设8位单元以及仅在右侧需要的空单元数。 您可能会认为数字已经在最适合您的任何内存位置中,因此您无需担心IO操作。
13 code-golf  binary  brainfuck  code-golf  code-golf  ascii-art  random  code-golf  code-golf  code-challenge  sorting  code-golf  code-challenge  java  code-golf  statistics  code-golf  code-challenge  fastest-code  code-golf  math  code-golf  math  kolmogorov-complexity  code-golf  code-golf  array-manipulation  combinatorics  code-golf  kolmogorov-complexity  popularity-contest  underhanded  code-golf  math  floating-point  code-golf  interpreter  code-golf  music  code-golf  code-golf  cryptography  code-challenge  scrabble  code-golf  code-challenge  popularity-contest  quine  code-golf  quine  cryptography  code-golf  kolmogorov-complexity  code-golf  printable-ascii  code-golf  chess  code-golf  math  number-theory  code-challenge  c  code-golf  random  popularity-contest  hello-world  code-shuffleboard  code-golf  compression  grammars  code-golf  tips  code-golf  sequence  code-golf  string  code-challenge  sorting  permutations  code-golf  string  code-challenge  optimization  code-golf  interpreter  code-challenge  string  code-golf  math  number  fibonacci  string  compression  c#  code-golf  chemistry  popularity-contest  math  c  c++  java  code-golf  math  function  code-golf  complex-numbers  code-golf  geometry 

7
写下所有可能的盲文字符
今天早上看着电梯按钮,一个有趣的难题传给我。 您需要生成一个适合2x3网格的所有盲文图案列表。使用散列#表示凹凸,使用连字符-表示平坦区域。 预期输出样本: #- -- -- ## -- -- #- #- -- (and so on...) 规则: 您的程序必须用至少一个字符或一行分隔每个模式。 图案可以以任何顺序生成。 不论盲文字母表实际使用什么样式,都应制作所有图案。完全空白的模式是可选的。 仅应生成唯一的凹凸图案。由于凸起的排列相同,因此以下图案被认为是等效的。在这些情况下,请使用最靠近左上角的图案(即,本示例中的第一个选项)。 #- -# -- -- #- -# #- -# -- -- #- -# 奖励积分,如果你可以把它用于任何工作,X由Ÿ大小的网格。(编辑:在合理范围内。最多4x4足以用于概念验证。) 阅读Wiki文章后,看来有45种模式(包括空白)符合该难题的规则。

2
计数广义多胺
这项挑战将使您在缓冲正方形平铺上计算伪多边形。 我认为该序列在OEIS上尚不存在,因此在为该序列计算尽可能多的项方面存在挑战。 更新:这现在在OEIS上显示为A309159:n个单元格的缓冲正方形平铺上的广义多形形式的数量。 定义 缓冲正方形平铺是由等边三角形和正方形组成的平面的半规则平铺。 缓冲正方形瓷砖上的伪多边形是通过将这些三角形和正方形沿着它们的共享边连接在一起而构造的平面图,类似于多米诺骨牌。这是一个六单元格和八单元格伪多边形的示例: 例子 因为n = 1有两个1单元格伪多边形,即正方形和三角形: 因为n = 2有两个2单元格伪多边形,即一个带有一个三角形的正方形和两个三角形。 因为n = 3有四个3单元伪多态。 挑战 挑战的目标是按此顺序计算尽可能多的项 2, 2, 4, ...且第n个项是直至旋转和反射的n单元伪多形式的数量。 只要您愿意,就可以运行您的代码。挑战的胜者将是发布序列中最多术语以及其代码的用户。如果两个用户发布相同数量的条款,则以最早发布最新条款的人为准。 (一旦有足够的已知术语证明该序列在OEIS中尚不存在,我将在OEIS中创建一个条目,并根据需要将投稿人列出为合著者。)

4
用适当的总和计算矩阵数
在Steenrod代数的Milnor基中乘以单项式时,该算法的一部分涉及枚举某些“可允许矩阵”。 给定两个非负整数r 1,...,r m和 s 1,...,s n的列表,一个非负整数X的矩阵 如果是允许的 第j列的总和小于或等于s j: 第i行乘以2的幂进行加权的总和小于或等于r i: 任务 编写一个程序,该程序采用一对列表r 1,...,r m和s 1,s 1,...,s n并计算这些列表的允许矩阵数。如果需要,您的程序可以选择将m和n作为附加参数。 这些数字可以按喜欢的任何格式输入,例如分组到列表中或以一元编码或其他形式输入。 输出应为正整数 有标准漏洞。 计分 这就是代码高尔夫:以字节为单位的最短解决方案获胜。 例子: 对于[2]和[1],有两个允许的矩阵: 对于[4],[1,1]存在三个允许的矩阵: 对于[2,4],[1,1]有五个允许的矩阵: 测试用例: Input: [1], [2] Output: 1 Input: [2], [1] Output: 2 Input: [4], [1,1] Output: 3 Input: [2,4], [1,1] Output: 5 Input: …

6
找出有理生成函数的系数
如果我们写一个数字序列作为幂级数的系数,则该幂级数称为该序列的(普通)生成函数(或Gf)。也就是说,如果对于某些函数F(x)和整数系列,a(n)我们有: a(0) + a(1)x + a(2)x^2 + a(3)x^3 + a(4)x^4 + ... = F(x) 然后F(x)是的生成函数a。例如,几何级数告诉我们: 1 + x + x^2 + x^3 + x^4 + ... = 1/(1-x) 因此,的生成函数1, 1, 1, ...为1/(1-x)。如果我们对上面方程的两边求和并乘以x得到以下等式: x + 2x^2 + 3x^3 + 4x^4 + ... = x/(1-x)^2 因此,的生成函数1, 2, 3, ...为x/(1-x)^2。生成函数是一个非常强大的工具,您可以使用它们来做很多有用的事情。在这里可以找到简短的介绍,但是要获得真正彻底的解释,请参见惊人的图书生成功能学。 在此挑战中,您将有理函数(两个具有整数系数的多项式的商)作为两个整数系数数组的输入作为输入,首先是分子,然后是分母。例如,功能f(x) = x …
12 code-golf  math  integer  polynomials  code-golf  math  abstract-algebra  restricted-time  code-golf  math  primes  code-golf  math  number  arithmetic  code-golf  quine  code-golf  number  sequence  code-golf  string  number  code-golf  array-manipulation  code-golf  number  code-golf  string  code-golf  arithmetic  code-golf  string  array-manipulation  rubiks-cube  code-golf  math  number  code-golf  tips  bash  code-golf  ascii-art  music  code-golf  arithmetic  code-golf  math  number  arithmetic  integer  code-golf  number  array-manipulation  code-golf  geometry  grid  set-partitions  code-golf  math  number  code-golf  combinatorics  code-golf  regular-expression  code-golf  permutations  code-golf  ascii-art  code-golf  number  array-manipulation  matrix  code-golf  kolmogorov-complexity  compile-time  cops-and-robbers  polyglot  cops-and-robbers  polyglot  code-golf  string  code-golf  string  ascii-art  matrix  animation  code-golf  ascii-art  code-golf  string  balanced-string  code-golf  integer  integer-partitions  expression-building 

13
有几种方法可以将数字写成平方和?
任务 给定两个整数d和n,找到表示n为d平方和的方式数。也就是说,,对于所有整数n == r_1 ^2 + r_2 ^2 + ... + r_d ^2,r_m都是一个整数1 ≤ m ≤ d。请注意,交换两个不同的值(例如r_1和r_2)被认为与原始解决方案不同。 例如,数字45可以写为2平方和的8种不同方式: 45 == (-6)^2 + (-3)^2 == (-6)^2 + 3^2 == (-3)^2 + (-6)^2 == (-3)^2 + 6^2 == 3^2 + (-6)^2 == 3^2 + 6^2 == 6^2 + (-3)^2 == 6^2 + …

14
用零填充文件
今天的任务是获取一个现有文件,并将零添加到该文件,直到达到一定大小为止。 您必须编写一个程序或函数,该程序或函数采用当前目录中文件的名称f和字节数b。在保留的原始内容的同时f,您必须在末尾写入零(空字节,而不是ascii 0),以便其新大小为b字节。 您可以假设名称中f仅包含字母数字的ascii,您对此具有完全权限,其初始大小不大于b,但可能与一样大b,并且有无限的可用磁盘空间。 您可能不会假设f它是非空的,或者它不已经包含空字节。 执行结束后,不应修改其他现有文件,也不应该存在新文件。 测试用例 f的内容| b | f的结果内容 12345 | 10 | 1234500000 0 | 3 | 000 [空] | 2 | 00 [空] | 0 | [空] 123 | 3 | 123
12 code-golf  file-system  code-golf  code-golf  string  code-golf  string  code-golf  random  game  compression  code-golf  array-manipulation  sorting  code-golf  number  arithmetic  primes  code-golf  geometry  code-golf  code-golf  decision-problem  regular-expression  code-golf  string  math  code-challenge  restricted-source  integer  palindrome  code-golf  string  palindrome  code-challenge  busy-beaver  code-golf  ascii-art  code-golf  string  code-golf  string  permutations  code-golf  code-golf  string  permutations  code-golf  number  primes  function  set-theory  code-challenge  hello-world  code-golf  math  number  decision-problem  code-golf  code-golf  sequence  arithmetic  integer  code-golf  math  number  arithmetic  decision-problem  code-golf  kolmogorov-complexity  alphabet  code-golf  combinatorics  graph-theory  tree-traversal  code-golf  set-theory  code-golf  interpreter  brainfuck  substitution  code-golf  quine  permutations 

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.