Questions tagged «combinatorics»

对于涉及组合学的挑战。

30
聪明人的海市age楼
从前,我在阅读有关Quora的问题/答案 真的有没有计算机科学学位的程序员无法通过FizzBu​​zz测试 此代码是显而易见的答案 for i in range(1, 100): if i % 3 == 0 and i % 5 == 0: print "FizzBuzz" elif i % 3 == 0: print "Fizz" elif i % 5 == 0: print "Buzz" else: print i 当然,FizzBu​​zz已经被打死了,但这并不是这个问题的实质。您会在评论中看到有人提到该答案很不错,因为很容易添加额外条件,例如将“ Jazz”打印为4的倍数。(我不同意。扩展此方案需要O(2 ** n )代码行。) 您的挑战是编写由同行判断的最漂亮的FizzJazzBuzz版本。 选民需要考虑的一些事项: 干 除法/模运算的效率 …
29 popularity-contest  code-challenge  word  popularity-contest  string  grid  language-design  code-golf  source-layout  math  fastest-algorithm  assembly  code-golf  json  code-golf  arithmetic  array-manipulation  code-golf  ascii-art  code-golf  crossword  code-golf  string  restricted-complexity  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  decision-problem  balanced-string  syntax  code-golf  grid  puzzle-solver  hexagonal-grid  code-golf  math  number  sequence  code-golf  string  decision-problem  code-golf  cryptography  king-of-the-hill  code-challenge  fastest-code  code-golf  number  code-golf  code-golf  string  code-golf  cryptography  king-of-the-hill  java  code-golf  number-theory  base-conversion  code-golf  code-golf  array-manipulation  code-golf  array-manipulation  sorting  code-challenge  restricted-source  quine  code-golf  tips  python  king-of-the-hill  code-golf  source-layout  fractal  code-golf  tips  game  king-of-the-hill  path-finding  grid  code-golf  kolmogorov-complexity  natural-language  code-golf  tips  python  code-golf  number  arithmetic  sequence  array-manipulation  code-golf  number  combinatorics  random  integer-partitions  code-golf  string  code-golf  vim  comment  code-golf  combinatorics  counting  code-challenge  rosetta-stone  code-golf  combinatorics  sequence  subsequence  code-golf  code-challenge  restricted-source  primes  printable-ascii  popularity-contest  graphical-output  image-processing 

6
救命!我的计算器出现故障!
介绍 我的计算器很奇怪。有时,当我输入时8会显示2。有时,当我输入a 6时会显示+。一些按钮混在一起! 谁能帮我确定哪个? 挑战: 输入:错误方程式列表,结果正确。 输出:交换的两个按钮。 例如: 输入可以是: 123 = 3 8423 = 252 4+4 = 8 4*7-10 = 417 9/3 = 3 42-9 = -36 其预期的输出是:2和*。 为什么?因为如果我们交换2和*,则所有等式都是正确的: 1*3 = 3 84*3 = 252 4+4 = 8 427-10 = 417 9/3 = 3 4*-9 = -36 挑战规则: 输入可以采用任何合理的格式。可以是一个以空格分隔的字符串;字符串列表或-array; 一个包含方程式的列表和另一个包含正确结果的列表。你的来电。请说明您使用的输入格式! …
28 code-golf  number  arithmetic  integer  code-golf  math  number  geometry  code-golf  grid  code-golf  math  number  sequence  primes  code-golf  sequence  kolmogorov-complexity  code-golf  string  ascii-art  alphabet  code-golf  math  sequence  integer  code-golf  number-theory  integer  natural-language  code-golf  date  code-golf  function  code-golf  ascii-art  code-golf  math  number-theory  primes  classification  code-golf  array-manipulation  decision-problem  matrix  code-golf  number  code-golf  code-golf  ascii-art  matrix  code-golf  string  code-golf  sequence  base-conversion  code-golf  code-golf  math  number-theory  combinatorics  integer-partitions  code-golf  integer  binary  base-conversion  code-golf  integer  base-conversion  palindrome  code-golf  code-golf  integer-partitions  code-golf  math  ascii-art  matrix  code-golf  number  sequence  number-theory  matrix  code-golf  interpreter  code-golf  graph-theory  code-golf  ascii-art  decision-problem  code-golf  division  code-golf  array-manipulation  primes  code-golf  string  ascii-art  code-golf  primes  counting  code-golf  matrix  unicode  code-golf  source-layout  code-golf  grammars  code-golf  string  cops-and-robbers  regular-expression  obfuscation  string  code-challenge  cops-and-robbers  regular-expression  code-golf  kolmogorov-complexity  game  card-games  code-golf  kolmogorov-complexity  code-golf  array-manipulation  matrix  code-challenge  cops-and-robbers  code-challenge  decision-problem  cops-and-robbers  code-golf  permutations 

14
列出n的所有乘法分区
给定的正数Ñ,输出的所有不同的乘法分区Ñ以任何方便的格式。 n的乘法分区是一组整数,都大于1,因此它们的乘积为n。例如,20具有以下不同的乘法分区: 2 * 2 * 5 2 * 10 4 * 5 20 顺序无关紧要,所以2 * 2 * 5与的分区相同2 * 5 * 2。 例子: 1 -> {} 2 -> {2} 4 -> {2, 2}, {4} 20 -> {2, 2, 5}, {2, 10}, {4, 5}, {20} 84 -> {2, 2, 3, …

11
Sidi多项式系数的绝对和
背景 次数为n的Sidi多项式或第(n + 1)个 Sidi多项式定义如下。 Sidi多项式具有几个有趣的性质,但是它们的系数也是如此。后者形成OEIS序列A075513。 任务 编写一个完整的程序或函数,给定一个非负整数n,该函数将打印或返回度为n的Sidi多项式的系数的绝对和,即 这些和形成OEIS序列A074932。 如果您更喜欢基于1的索引,则可以取正整数n代替,并计算第n 个 Sidi多项式的系数的绝对和。 因为这是code-golf,所以您必须使代码尽可能短。所有标准规则均适用。 测试用例(从0开始) n Σ 0 1 1 3 2 18 3 170 4 2200 5 36232 6 725200 7 17095248 8 463936896 9 14246942336 测试用例(基于1) n Σ 1 1 2 3 3 18 4 170 5 2200 6 …

20
给定长度的直链烯烃数量
直链烯烃定义为通过单键(烷烃),双键(烯烃)或三键(炔烃)连接的碳原子序列(使用隐式氢。)碳原子只能形成4个键,因此碳原子不得被强制具有四个以上的键。直链烯烃可以表示为其碳-碳键的列表。 这些是有效的直链烯烃的一些例子: [] CH4 Methane [1] CH3-CH3 Ethane [2] CH2=CH2 Ethene [3] CH≡CH Ethyne [1,1] CH3-CH2-CH3 Propane [1,2] CH3-CH=CH2 Propene [1,3] CH3-C≡CH Propyne [2,1] CH2=CH-CH3 Propene [2,2] CH2=C=CH2 Allene (Propadiene) [3,1] CH≡C-CH3 Propyne [1,1,1] CH3-CH2-CH2-CH3 Butane ... 尽管这些不是,但是至少一个碳原子具有四个以上的键: [2,3] [3,2] [3,3] ... 您的任务是创建一个给定正整数的程序/函数,该程序/函数n输出/返回长度恰好为碳原子的有效直链烯烃的数量n。这是OEIS A077998。 规格/说明 您必须1通过返回正确处理1。 烷基*喜欢[1,2]并且[2,1]被认为是不同的。 输出是长度给定长度的所有可能的ALK *内斯的列表。 你不是要正确处理0。 …

20
吸血鬼兼容性
关于吸血鬼的鲜为人知的事实是,他们必须喝具有兼容的供血者血型的受害者的血液。吸血鬼的相容性矩阵与常规红细胞供体/受体矩阵相同。可以通过以下美国红十字会表格进行总结 Type You Can Give Blood To You Can Receive Blood From A+ A+, AB+ A+, A-, O+, O- O+ O+, A+, B+,AB+ O+, O- B+ B+, AB+ B+, B-, O+, O- AB+ AB+ everyone A- A+, A-, AB+, AB- A-, O- O- everyone O- B- B+, B-, AB+, AB- …

4
包含所有自由n-氨基酸的平面的最小区域
在Math Stack Exchange上,我问了一个有关可以包含所有自由n-ominos的最小区域的问题。 一旦我有更多的用语,我想将此序列添加到整数序列在线百科全书中。 例 九个单元格区域是平面的最小子集,可以包含所有十二个自由的5个氨基酸,如下所示。(免费的多米诺骨牌可以旋转和翻转。) (十二个单元格的区域是平面的最小子集,可以包含所有35个自由的6个氨基酸。) 挑战 计算平面中可以包含所有n-氨基酸作为n的函数的最小范围的上限。 这样的表开始: n | size --+------- 1 | 1* 2 | 2* 3 | 4* 4 | 6* 5 | 9* 6 | 12* 7 | 37 8 | 50 9 | 65 *These values are the smallest possible. 提交示例 1-omino: 1 …

1
查找困难游戏
如果您感到无聊,可以玩的有趣游戏是Diffy Game。这是一款非常简单的单人游戏,可能会消耗大量时间。 Diffy游戏的工作方式如下:从一个非负整数列表开始,在本示例中,我们将使用 3 4 5 8 然后取相邻数字之间的绝对差 (8) 3 4 5 8 5 1 1 3 然后重复。重复直到您意识到自己已经进入循环。通常,游戏会从头开始。 3 4 5 8 5 1 1 3 2 4 0 2 0 2 4 2 2 2 2 2 0 0 0 0 0 0 0 0 游戏通常没有目标,您只是在脑海中进行算术而浪费时间。但是,当我乐于玩这款游戏时,我的目标始终是尝试选择一个时间段,并尝试构建一个在该特定时间段内循环的游戏。 并非所有游戏都是周期性的,例如,上面的示例不是周期性的,因为它最终会到达一个全零的游戏,因此永远无法使其回到初始位置。实际上,似乎绝大多数游戏都不是周期性的,因此很少有游戏是稀有的宝石。 给定一个具有特定周期循环的游戏,只需将序列加倍即可制作另一个具有相同周期循环的游戏。例如游戏: 1 …

23
大小写排列
当您能够生成大写和小写的每个排列时,谁需要不区分大小写地比较事物?没有人!那就是答案。没人做到。您的任务是实现这一壮举。生成给定输入的所有可能的大写/小写排列。 输入项 一串可打印的标准ascii字符。输入不应假定全部为小写。输入将始终至少为一个字符。 输出量 输入的字符串的每个大写和小写排列(无重复)。这只能更改大小版本的字符(数字将保持不变)。每个排列必须输出为字符串或字符列表。不允许使用单例字符串列表。 例子 a1a ['a1a', 'a1A', 'A1a', 'A1A'] abc ['abc', 'abC', 'aBc', 'aBC', 'Abc', 'AbC', 'ABc', 'ABC'] Hi! ['hi!', 'hI!', 'Hi!', 'HI!'] 计分 这是代码高尔夫球,因此最短的答案(以字节为单位)获胜。 有趣的是,看到要处理扩展的ascii字符将花费多少额外的精力,这是一个额外的测试用例: ž1a -> ['ž1a', 'ž1A', 'Ž1a', 'Ž1A'] (您的程序不需要支持此功能)

17
计算多项式系数
是时候让所有人都可以参加另一个轻松的挑战了! 多项式定理指出: 括号中的表达式是多项式系数,定义为: 允许项k i覆盖n的所有整数分区,将给出Pascal的m -simplex的第n级。您的任务是计算该系数。 任务 编写一个程序或函数,该程序或函数使用m个数字n,k 1,k 2,...,k m-1,并输出或返回相应的多项式系数。如果需要,您的程序可以选择将m作为附加参数。注意,k m不在输入中。 这些数字可以按喜欢的任何格式输入,例如分组到列表中或以一元编码或其他方式输入,只要多项式系数的实际计算是由您的代码执行的,而不是由编码过程执行的。 输出格式同样具有灵活性。 所有代码应在不到一分钟的时间内运行n和m,直到1000。 不用担心整数溢出。 不允许设计用于计算多项式系数的内置函数。 有标准漏洞。 计分 这就是代码高尔夫:最短的解决方案以字节为单位。 测试用例 Input: 3, [2, 0] Output: 3 Input: 3, [1, 1] Output: 6 Input: 11, [1, 4, 4] Output: 34650 Input: 4, [1,2] Output: 12 Input: 15, [5,4,3,2] Output: 37837800 …

18
主要因素之和
2013年是主要因素3*11*61。2014年是主要因素2*19*53。关于这些因式分解的一个有趣特性是,在2013和2014的因式分解中存在不同的素数,它们的总和为相同的数量:11+61=19+53=72。 编写一个程序或函数,该程序或函数的输入为两个大于1的正整数,如果存在一个选定的素数之和等于第二个选定的素数之和,则返回真值。否则为假值。 澄清说明 可以使用两个以上的主要因子。总数中并非所有的素数因子都需要使用。两个数中使用的素数的数量不必相等。 即使在数的因式分解中将质数提高到大于1的幂,它也只能在该数的质数之和中使用一次。 1不是素数。 两个输入数字均小于2^32-1。 测试用例 5,6 5=5 6=2*3 5=2+3 ==>True 2013,2014 2013=3*11*61 2014=2*19*53 11+61=19+53 ==>True 8,15 8=2^3 15=3*5 No possible sum ==>False 21,25 21=3*7 25=5^2 No possible sum (can't do 3+7=5+5 because of exponent) ==>False 这是代码高尔夫。适用标准规则。以字节为单位的最短代码获胜。

10
钩长产品
甲杨图是在左对齐的行和顶部对齐的列盒的布置。对于每个框,其上方和左侧的所有空间均被占用。 XXXXX XXX XXX X 盒子的挂钩长度是其行右边和框下面的盒子数,也可以自己计数一次。例如,第二个盒子的钩子长度为6: X**** X*X X*X X 这是所有钩子长度: 86521 532 421 1 您的目标是在此处计算弯钩长度的乘积8*6*5*2*1*5*3*2*4*2*1*1 = 115200。 (如果您对这个表达式的重要性感兴趣,请阅读钩子长度公式。) 输入:行大小的集合,如数字[5,3,3,1]或重复的一元符号(如[[1,1,1,1,1], [1,1,1], [1,1,1], [1]]或)"XXXXX XXX XXX X"。您可以根据需要将列表排序为升序或降序。该列表将为非空,并且仅包含正整数。 输出:挂钩长度的乘积,为正整数。不必担心整数溢出或运行时。 不允许专门处理Young图或整数分区的内置函数。 测试用例: [1] 1 [2] 2 [1, 1] 2 [5] 120 [2, 1] 3 [5, 4, 3, 2, 1] 4465125 [5, 3, 3, …

24
任意随机
随机性很有趣。没有意义的挑战很有趣。 编写一个函数,在给定整数输入的情况下n,将输出介于和(包括)之间的一组(无序,唯一的)精确n随机整数,以使所有整数的总和等于。1n^2n^2 随机性也不会是均匀的,只要每个有效集有发生非零机会。 以字节为单位的最短答案(每种语言)获胜。 例子 Input (n) = 1, Target (n^2) = 1 Sample of possible outputs: 1 Input = 2, Target = 4 Sample of possible outputs: 3, 1 1, 3 Input = 3, Target = 9 Sample of possible outputs: 6, 1, 2 3, 5, 1 4, 3, …

3
安排泡泡
注意,挑战是从math.stackexchange询问的问题复制而来的。 最近,我掌握了一些吹泡泡的技巧。首先,我会像这样吹泡泡: 但是事情开始变得奇怪了: 一段时间后,我吹了一些怪异的气泡: 吹完数百个甚至数千个这样的气泡后,我的额头突然出现问题:给定n个气泡,您可以用几种不同的方式排列它们?例如,如果n = 1,则只有1种排列。如果n = 2,则有2种排列。如果n = 3,则有4种排列。如果n = 4,则有9种排列。 这是4个气泡的9个排列: 在吹完所有这些奇妙的泡泡之后,我决定与您分享点算他们的安排的乐趣。因此,这是您的任务: 目标 编写一个程序,函数或类似的程序,计算可以排列n气泡的方式。 输入项 n,气泡数。n> 0 输出量 排列这些气泡的方式的数量。 获奖标准 如果我们能在您的代码周围吹泡泡,那真的很酷。您编写的代码越小,执行起来就越容易。因此,使用最少字节数编写代码的人将赢得比赛。 额外的信息 信息系统

1
找出Android锁定模式
假设您看到您的朋友在他们的Android手机中输入了他或她的密码。您不记得他们是如何制作图案的,但是您仍然记得图案的外观。作为您关心的朋友,您想知道他们的密码有多安全。您的工作是计算形成特定图案的所有方式。 Android模式如何运作 模式是在3x3的节点网格上绘制的。在一种模式中,无需访问屏幕即可访问一系列节点。他们访问的每个节点都通过一条边连接到前一个节点。要记住两个规则。 您最多只能访问一个节点 边缘可能无法通过未访问的节点 请注意,尽管通常很难执行,因此在实际的android锁组合中并不常见,但可以像Knight一样移动。即,可以从一侧移动到不相邻的拐角处或以另一种方式移动。这是采用此举的两种模式示例: 这是正在执行的动画Gif。 解决模式 典型的模式可能如下所示: 对于这种简单的模式,有两种方法可以绘制两种模式。您可以从两个松散的一端开始,然后穿过突出显示的节点到达另一个节点。尽管对于许多模式而言都是如此,但对于人类通常采用的模式而言,并非对所有模式都如此。 考虑以下模式: 有两种立即可识别的解决方案。从左上方开始的一个: 还有一个从底部中心开始: 但是,因为一旦选择了一条线,就允许它通过一个点,因此从顶部中间开始有一个附加的花样: 这个特定的模式有3个解决方案,但是模式可以有1到4个解决方案之间的任何位置[需要引用]。 以下是每个示例的一些示例: 1。 2。 3。 4。 输入输出 节点可以表示为零到九之间的整数,它们的等效字符串或a到i(或A到I)的字符。每个节点必须具有这些集合之一中的唯一表示。 解决方案将由包含节点表示形式的有序容器表示。节点的顺序必须与传递顺序相同。 模式将由节点对的无序容器表示。每对代表一条开始连接该对中两个点的边。模式表示不是唯一的。 您将通过标准输入方法将模式表示作为输入,并通过标准输出方法输出创建相同模式的所有可能解决方案。 您可以假设每个输入将至少具有一个解决方案,并将连接至少4个节点。 如果您愿意或被语言选择所迫,则可以选择使用有序容器代替无序容器。 测试用例 节点按以下模式排列: 0 1 2 3 4 5 6 7 8 让我们{...}成为一个无序的容器,[...]成为一个有序的容器,然后(...)成为一对。 以下输入和输出应匹配 {(1,4),(3,5),(5,8)} -> {[1,4,3,5,8]} {(1,4),(3,4),(5,4),(8,5)} -> {[1,4,3,5,8]} {(0,4),(4,5),(5,8),(7,8)} -> {[0,4,5,8,7],[7,8,5,4,0]} {(0,2),(2,4),(4,7)} …

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.