Questions tagged «combinatorics»

对于涉及组合学的挑战。

16
Mod 2多项式系数
quintopia在这里发布了计算多项式系数的挑战(此处的某些文本是从此处复制的)。有一个有趣的算法可以计算系数2的多项式。 给定数字列表k 1,k 2,...,k m,输出多项式系数的余数: 降低模2.下列算法并此有效地:对于每个ķ 我,计算的二进制展开ķ 我,即,找到一个IJ,使得每个一个IJ是1或0和 如果存在j使r≠s 的rj = a sj = 1,则相关的mod 2多项式系数为0,否则mod 2多项式系数为1。 任务 编写一个程序或函数,该程序或函数采用m个数字k 1,k 2,...,k m,并输出或返回相应的多项式系数。如果需要,您的程序可以选择将m作为附加参数。 这些数字可以按喜欢的任何格式输入,例如分组到列表中或以一元编码或其他方式输入,只要多项式系数的实际计算是由您的代码执行的,而不是由编码过程执行的。 如果多项式系数为奇数,则输出可以为任何真值,如果多项式系数为偶数,则输出可以为任何假值。 不允许设计用于计算多项式系数的内置函数。 有标准漏洞。 计分 这就是代码高尔夫:以字节为单位的最短解决方案获胜。 例子: 为了找到7、16和1000的多项式系数,我们对它们分别进行二进制扩展: 由于没有列具有不超过1的列,因此多项式系数是奇数,因此我们应该输出真实值。 为了找到7、16和76的多项式系数,我们对它们分别进行二进制扩展: 由于76和7的二进制扩展均为4,因此多项式系数为偶数,因此我们输出了falsey值。 测试用例: Input: [2, 0, 1] Output: Truthy Input: [5,4,3,2,1] Output: Falsey Input: [1,2,4,8,16] Output: Truthy Input: [7,16,76] …

2
查找子集因素
假设我们有一组有限的正整数。这个集合可以表示为一点点线,其中集合中存在的每个整数都像扫描仪或打孔卡一样被填充。例如,该集合{1,3,4,6}可以表示为: *.**.* *代表我们集合的成员,并且.代表一个不是集合成员的整数。 这些集合具有“因素”。如果可以从x的副本中构建y,则x是y的因子。更严格地,我们对因子的定义如下: 当且仅当y是许多不交集的并集时,x都是y的因子,所有不交集都是x且具有偏移量。 我们之所以称其*.*为因子,是*.**.*因为它很显然是由两个*.*首尾相连的副本组成的。 *.**.* ------ *.*... ...*.* 因素不一定是端到端的,我们还要说这*.*是*.*.*.* *.*.*.* ------- *.*.... ....*.* 因素也可以重叠。这*.*也意味着**** **** ---- *.*. .*.* 但是,一个数字不能多次覆盖一个因数。例如*.*是不是一个因素*.*.*。 这是一个更复杂的示例: *..*.**..***.*.* 这*..*.*是一个因素。您可以在下面看到我排列的三个实例的地方*..*.*。 *..*.**..***.*.* ---------------- *..*.*.......... ......*..*.*.... ..........*..*.* 任务 给定一个由任何合理表示形式输出的集合,所有集合都是输入的因子。 您可以按任何值编制索引(即,可以选择输入中可以存在的最小数字)。您还可以假设输入集将始终包含该最小值。 这是一个代码问题,因此您应该以尽可能少的字节为目标。 测试用例 这些测试用例是手工完成的,较大的可能有一个或两个错误 * -> * *.*.* -> *, *.*.* *.*.*.* -> *, *.*, *...*, *.*.*.* ****** -> …

9
找出赔率
通过任何合理的输入方法,如果给定无序的正整数集合,则返回所有具有奇数个奇数元素(即总数为奇数)的子集合。 这是代码高尔夫球,因此您应努力减少程序的字节数。 由于某些语言仅具有有序集合(列表,数组,向量等),或者没有允许重复的无序集合,因此您可以使用有序集合(无论您选择哪种语言),但是不应输出任何重复的集合具有不同的顺序(例如[2,3]和[3,2])。您可以按照自己认为合适的顺序输出。 测试用例 [2,3,7,2] -> [[3],[7],[2,3],[2,7],[2,2,3],[2,2,7]] [2,4,6,8] -> [] [4,9] -> [[9],[4,9]]

12
寻找近似相关
考虑一个S长度为string 的二进制字符串n。从索引中1,我们可以计算出海明距离之间S[1..i+1],并S[n-i..n]为所有i从订单0到n-1。等长的两个字符串之间的汉明距离是相应符号不同的位置数。例如, S = 01010 给 [0, 2, 0, 4, 0]. 这是因为0matchs 0,01具有汉明距离2到10,010matches 010,0101具有汉明距离4到1010 最后01010匹配自己。 但是,我们仅对汉明距离最大为1的输出感兴趣。因此,在此任务中,我们将报告Y汉明距离是否最多为1,N否则为否。因此,在上面的示例中,我们将获得 [Y, N, Y, N, Y] 定义f(n)为Ys和Ns在2^n不同S长度的所有可能位字符串上迭代时得到的不同数组的数目n。 任务 为了增加n开头1,应该输出代码f(n)。 示例答案 对于n = 1..24,正确的答案是: 1, 1, 2, 4, 6, 8, 14, 18, 27, 36, 52, 65, 93, 113, 150, 188, 241, 279, 377, 427, 540, 632, …

14
验证沃尔斯滕霍姆定理
定义 沃尔斯滕霍姆定理指出: 其中 a和b是正整数,p是素数,大括号是二项式系数。 任务 为了验证这一点,你将有三个输入:a,b,p,其中a和b是正整数且p是素数。 计算: 其中 a和b是正整数,p是质数,括号thing是二项式系数。 眼镜 以来: 其中,圆括号是二项式系数。 您可以假设 2b <= a 测试用例 a b p output 6 2 5 240360 3 1 13 3697053 7 3 13 37403621741662802118325

1
十二硬币问题
背景 十二硬币问题是工作面试中常用的经典平衡难题。这个难题第一次出现在1945年,当我祖父要求嫁给我的母亲时,就把它摆给了我父亲!拼图中有十二个硬币,其中一个比其他硬币重或更轻(您不知道哪个)。问题是要使用三次天平来确定唯一硬币。在某些变型中,还需要识别硬币是较重还是较轻。 这里的任务涉及解决涉及n的一般问题硬币,在最坏的情况下使用尽可能少的称量。不必识别硬币是较重还是较轻,只需识别它是哪一个。此外,您无权访问给定集合之外的任何其他硬币(奇怪的是,这有所作为)。 事实证明,k个称重足以容纳多达(3 ^ k-1)/ 2个硬币(因此,此变体中的4个称重实际上可以处理13个硬币)。此外(令人惊讶的是),可以(但不是必需)预先选择整套称量,而不用将来的称量取决于过去的结果。有关两种可能的解决方案的说明,请参见本文和Quora答案。 任务 编写一个函数或程序,通过STDIN,命令行参数或函数参数将整数n作为输入,这可以解决n个硬币的问题,并在最坏的情况下使用最少的权重。该程序应: 以格式1,2,3-4,5,6将称量结果打印到STDOUT上,以指示秤两边的硬币列表。任何未称重的硬币都不应提及。硬币从1到n隐式编号,不需要按数字顺序打印(因此2,1-3,4与相同1,2-3,4)。 之后的每个称重程序应等待经由STDIN的输入,这应该是<,=或>,指示刻度的左侧是否比右侧打火机,同样的,或更重。 在最后一次称量结果之后,程序应打印或返回唯一硬币的编号。 该程序无需处理来自用户的不一致的结果输入。 程序不需要处理n小于3。 输出示例 >> 3 1-2 >> = 1-3 >> < 3 # using Quora algorithm >> 13 1,2,3,4-5,6,7,8 >> < 1,2,5-3,4,6 >> > 3-4 >> < 3 # using paper algorithm >> 13 1,2,3,4-5,6,7,8 >> < 2,6,7,9-3,8,10,11 …

10
以字典顺序排序生成一组前置-追加排列
将长度的前置-追加序列定义为可以通过以下过程生成n的数字的排列1, 2, ..., n: 从数字开始1。 用于从每个数字2到n,放置这个号码到该序列的开头或结尾(或前置或追加它,顺序因此得名)。 例如,这是生成长度为4的前置-添加序列的有效方法: 1 21 [beginning] 213 [end] 2134 [end] 您的任务是构建一个程序或函数,该程序或函数将一个n从数字3到的数字30作为输入,并按n字典顺序打印或返回所有长度的前-后加序列(如果您输出的是字符串而不是列表,则表示大于9的数字以字母表示a-u,以保留字符串长度)。例如,这是以下命令n = 4: 1234 [RRR] 2134 [LRR] 3124 [RLR] 3214 [LLR] 4123 [RRL] 4213 [LRL] 4312 [RLL] 4321 [LLL] 通常,长度为2 n-1个前置-追加排列n。 您不得在代码中使用任何使用您语言的内置排序功能。以任何语言进行此操作的最短程序都会胜出。

1
需要机器人卡车来打包卡车
作为乐队的路易,您必须打包卡车。您的程序将放置包装,使其适合最小高度。 一辆包装不好的卡车 规则 包装可以旋转90度的倍数。包装可能会碰触但不能重叠。 输出是重新打包的映像(到文件或标准输出)。您的程序可以使用任何输入或输出栅格图像格式。 您的程序必须接受任意数量的各种形状的软件包,图像的最大分辨率为4000x4000像素。请勿对此测试图像进​​行硬编码。如果我怀疑有任何针对该特定图像的提交内容,我保留用新的测试图像替换它的权利。 得分了 分数是包含排列的矩形的最小高度(宽度是输入矩形的宽度)。如果是平局,则最早的参赛者获胜。 照常禁止出现标准漏洞。

3
计算长度为n的莫比乌斯梯子上的受限森林数量
OEIS序列A020872对Möbius梯 M n上的限制林进行计数。 挑战 面临的挑战是编写一个程序,该程序将整数作为输入n > 1并返回A020872(n)Möbius梯子M n上的受限林数。这是代码高尔夫球,因此最短的代码获胜。(别有用心的是也许将此序列的长度延长一点。) 定义 甲受限森林是图的一个分区,使得每个部分可以是一个(无向)路径或分离的顶点。 所述莫比乌斯梯子中号Ñ是可以想到的2n边形与所有相对顶点之间画出的对角线的曲线图。 例 这是M 2(画有对角线的正方形)上的34个受限森林。请注意,第一个图被划分为四个孤立的顶点,第二个图被划分为一个路径和两个孤立的顶点,依此类推。

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 编码高尔夫,最短的答案将获胜。

15
手动逻辑门
编写一个模拟基本逻辑门的程序。 输入:一个全大写单词,后跟2个1位二进制数字,以空格分隔,例如OR 1 0。门OR,AND,NOR,NAND,XOR,和XNOR需要。 输出:输入的逻辑门的输出将被赋予两个数字:1或0。 例子: AND 1 0成为0 XOR 0 1变得1 OR 1 1成为1 NAND 1 1成为0 这是codegolf,所以最短的代码获胜。
13 code-golf  logic-gates  hashing  code-golf  code-golf  number  array-manipulation  integer  code-golf  string  unicode  text-processing  cops-and-robbers  boggle  cops-and-robbers  boggle  code-golf  ascii-art  code-golf  word-puzzle  king-of-the-hill  python  code-golf  sequence  kolmogorov-complexity  code-golf  source-layout  code-golf  string  kolmogorov-complexity  math  number  code-golf  date  code-golf  combinatorics  recursion  game  king-of-the-hill  javascript  code-golf  array-manipulation  code-golf  radiation-hardening  self-referential  code-golf  integer  code-golf  number  code-golf  set-theory  code-golf  sequence  code-golf  string  sorting  natural-language  code-golf  decision-problem  number-theory  primes  code-golf  code-golf  ascii-art  code-challenge  array-manipulation  sorting  rubiks-cube  regular-expression  code-golf  counting  file-system  recursion  code-golf  string  kolmogorov-complexity  color  code-golf  game  code-challenge  permutations  encode  restricted-time  decode  code-golf  math  decision-problem  matrix  integer  palindrome  code-golf  matrix  statistics  king-of-the-hill  king-of-the-hill  python  card-games  code-golf  string  natural-language  code-golf  sequence  number-theory 

12
字符串和数字的乐趣
这是给您的编程难题: 例如,给定一对字符串和对应数字的[[A,37],[B,27],[C,21],[D,11],[E,10],[F,9],[G,3],[H,2]]列表,请输出另一个列表,该列表将仅以以下方式包含字符串: 任何字符串的总计数应完全等于输入数据中其对应的数字。 不应在序列中相邻重复任何字符串,并且每个字符串都应出现在输出列表中。 只要不超过两个规则,就应该随机选择下一个字符串。每个解决方案的选择概率均应为非零。 如果无法组合,则输出应为just 0。 输入列表可以以任何顺序(排序或未排序)给出,列表中的字符串可以具有任何长度。 上述样本输入1的样本输出 [A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,C,A,C,A,C,A,C,A,C,A,C,A,C,A,C,A,C,A,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,E,F,E,F,E,F,E,F,E,F,E,F,E,F,E,F,E,F,E,G,H,G,H,G] 输入样本2: [[A,6],[B,1],[C,1]] 第二个输入的输出: 0 因为根据规则无法列出。 样本输入3: [[AC,3],[BD,2]] 有效输出: [AC,BD,AC,BD,AC] 无效的输出: [AC,BD,AC,AC,BD] 如果需要进一步澄清,请随时在评论中告诉我,我将立即采取行动。 这是代码高尔夫球,因此每种语言的最短代码以字节为单位!

30
从原动力中恢复原动力
定义:素数幂是自然数,可以以p n的形式表示,其中p是素数,n是自然数。 任务:给定素数p n > 1,返回素数p。 测试用例: input output 9 3 16 2 343 7 2687 2687 59049 3 计分:这是代码高尔夫球。以字节为单位的最短答案将获胜。
13 code-golf  arithmetic  primes  king-of-the-hill  python  board-game  code-golf  number  subsequence  code-golf  ascii-art  code-golf  array-manipulation  decision-problem  grid  fastest-algorithm  logic-gates  logic  code-golf  cards  code-golf  rational-numbers  code-golf  math  number  sequence  code-golf  array-manipulation  integer  code-golf  number  array-manipulation  code-golf  number  sequence  decision-problem  code-golf  ascii-art  number  code-challenge  sequence  arithmetic  sorting  code-golf  date  fastest-algorithm  code-golf  string  number  random  combinatorics  code-golf  combinatorics  code-golf  ascii-art  base-conversion  code-golf  array-manipulation  code-golf  string  code-golf  string  number  arithmetic  code-golf  kolmogorov-complexity  code-golf  string  array-manipulation  json  code-golf  puzzle-solver  code-golf  binary  graph-theory  code-golf  arithmetic  haskell  code-golf  string  cipher  code-golf  code-golf  string  parsing  alphabet  code-golf  string  code-golf  ascii-art  code-golf  string  number  code-golf  string  balanced-string 

5
周长小于n的整数三角形
定义 “整数三角形”是具有整数坐标的三角形。例如,以下三角形是整数三角形: (0, 0), (0, 1), (1, 2) with perimeter 1 + sqrt(2) + sqrt(5) ≈ 4.650. 任务 这项挑战的目标是计算周长小于n的所有整数三角形(直至全等)。 输入输出 参数将以整数形式给出,并且输出应为周长严格小于参数的三角形数量。 例子 周长最小的整数三角形等于 (0, 0), (0, 1), (1, 0) which has perimeter 2 + sqrt(2) ≈ 3.414 接下来的最小是: (0, 0), (0, 1), (1, 2) with perimeter 1 + sqrt(2) + …

10
计数斐波纳契轨道
如果将类斐波那契数列定义为f k(n)=(f k(n-1)+ f k(n-2))%k,则对于某些整数k(其中%是模运算符),该序列因为(f k(n-1),f k(n-2))只有k 2个不同的值,所以它将必定是循环的。但是,此周期通常并不包括所有可能的值对,因此根据两个初始值f k(0)和f k(1),我们可能会得到不同的周期。例如,对于k = 2,根据前两个值,我们有以下四种可能性: 0, 0, 0, 0, 0, 0, 0, 0, 0, ... 0, 1, 1, 0, 1, 1, 0, 1, 1, ... 1, 0, 1, 1, 0, 1, 1, 0, 1, ... 1, 1, 0, 1, 1, 0, 1, 1, …

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.