Questions tagged «integer-partitions»

对于与将整数表示为正整数之和的不同方式有关的挑战。

4
分割倒数
给定一个n> 77的数字,编写一个程序或函数,以找到一组不同的正整数,使得该组的总和等于n,而该组的倒数之和等于1。 80的示例: 80 = 2 + 4 + 10 + 15 + 21 + 28⟶1/2 + 1/4 + 1/10 + 1/15 + 1/21 + 1/28 = 1 您的程序或函数必须(理论上)对n <2 32起作用,并且不能为浮点舍入错误辩解。请注意,存在所有n> 77的解。 以字节为单位的最短代码获胜。 有一个额外的奖励措施:我将奖励适用于任何n并运行log(n)的最小解决方案。对于小n,它必须快速(由我自行决定)。是的,这是可能的。

12
计算Landau函数
Landau函数 (OEIS A000793)给出对称组元素的最大阶数。在此,置换的顺序是最小的正整数k,因此\ pi ^ k是恒等式-等于置换的循环分解中循环长度的最小公倍数。例如,g(14)= 84,这是通过(1,2,3)(4,5,6,7)(8,9,10,11,12,13,14)实现的。G(n )G(ñ)g(n)小号ñ小号ñS_nππ\piķķkπķπķ\pi^kG(14 )= 84G(14)=84g(14) = 84 因此,G(n )G(ñ)g(n)也等于厘米(一个1个,... ,一ķ)厘米⁡(一种1个,…,一种ķ)\operatorname{lcm}(a_1, \ldots, a_k)的最大值,其中一种1个+ ⋯ + 一个ķ= n一种1个+⋯+一种ķ=ña_1 + \cdots + a_k = n其中一种1个,... ,一ķ一种1个,…,一种ķa_1, \ldots, a_k正整数。 问题 编写一个计算Landau函数的函数或程序。 输入项 正整数ññn。 输出量 G(n )G(ñ)g(n)是对称组小号ñ小号ñS_n元素的最大阶数。 例子 n g(n) 1 1 2 2 3 3 4 4 5 6 …

11
每日随机高尔夫#3:整数分区
关于系列 首先,您可以像对待其他任何代码高尔夫挑战赛一样对待它,并回答它而不必担心系列赛。但是,在所有挑战中都有排行榜。您可以在第一篇文章中找到排行榜以及有关该系列的更多信息。 尽管我在本系列中有很多想法,但未来的挑战还没有定下来。如果您有任何建议,请在相关的沙箱帖子上让我知道。 漏洞3:整数分区 时间增加了一点难度。 甲分区正整数n被定义为正整数,其总和的多集n。例如,如果n = 5存在,则存在以下分区: {1,1,1,1,1} {2,1,1,1} {2,2,1} {3,1,1} {3,2} {4,1} {5} 请注意,这些是多集,因此它们没有顺序{3,1,1},{1,3,1}并且{1,1,3}都被认为是相同的。 给您的任务是n生成的随机分区n。以下是详细规则: 产生的隔板的分布必须均匀。也就是说,在上面的示例中,应该以1/7的概率返回每个分区。 当然,由于PRNG的技术局限性,不可能实现完美的均匀性。为了评估您提交的文件的均匀性,以下操作将被视为产生完全均匀的分布: 从PRNG(在任何范围内)获取一个数字,该数字被证明是(近似)统一的。 通过取模或乘法(或一些其他将值均匀分配的运算)将较大的一组数字的均匀分布映射到较小的一组。较大的集合必须包含至少为较小集合的1024倍的可能值。 由于分区是多集,因此您可以按任何顺序返回它们,并且此顺序不必一致。但是,出于随机分布的目的,顺序被忽略。也就是说,在上面的示例中{3,1,1},{1,3,1}和{1,1,3} 一起返回的概率必须为1/7。 您的算法必须具有确定性的运行时。特别是,您不能生成随机多集,如果它们的总和不等于,则拒绝它们n。 您算法的时间复杂度必须是中的多项式n。特别是,您不能简单地生成所有分区并选择一个随机分区(因为分区的数量与呈指数增长n)。您可能会假设您使用的PRNG可以返回每个值O(1)中的均匀分布值。 您不得使用任何内置函数来解决此任务。 您可以编写完整的程序或函数,并通过STDIN或最接近的替代方案,命令行参数或函数自变量接受输入,并通过返回值或打印到STDOUT(或最接近的替代方案)产生输出。 您可以假定n ≤ 65(这样分区的数目小于2 21)。输出可以采用任何方便,明确的列表或字符串格式。 如果您提交功能,请考虑还提供一些测试程序,该程序会多次调用该功能并打印结果。如果必须在代码中调整参数,则可以。这样做是为了使人们可以检查解决方案至少近似均匀。 这是代码高尔夫球,因此最短的提交(以字节为单位)获胜。当然,每位用户最短的提交时间也将进入该系列的整体排行榜。 排行榜 该系列的第一篇文章将产生一个排行榜。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头每个答案: # Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,则可以通过打败旧分数来保持标题。例如: # Ruby, <s>104</s> <s>101</s> 96 bytes (目前未显示该语言,但是该代码段确实需要并对其进行解析,并且将来我可能会添加一个语言排行榜。)

15
最低斐波那契挑战!
挑战 在此任务中,您将得到一个整数N(小于10 6),找到仅使用斐波那契数就可以求和N的最小方法-该分区称为Zeckendorf表示。 您可以多次使用任何斐波纳契数,并且如果有多个表示输出,则可以多次使用。 例如,如果输入为67,则一个可能的输出可能是使用斐波那契数1、3、8、55,这也是可用于获取总和67的最小斐波那契数。 输入N在单行上给出,输入由EOF终止。 例子 以格式给出 input: output 0: 0 47: 34+13 3788: 2584+987+144+55+13+5 1646: 1597+34+13+2 25347: 17711+6765+610+233+21+5+2 677: 610+55+8+3+1 343: 233+89+21 3434: 2584+610+233+5+2 约束条件 输入数量将不超过10 6个值。 对于所有输入,您的程序的运行时间均不得超过5秒。 您可以使用任何选择的语言。 最短的解决方案获胜!

30
求和最大为n的不同整数
任务 给定输入正整数n(从1到您的语言限制,包括1),返回或输出相加为的最大不同正整数的最大数量n。 测试用例 让我们f根据任务定义一个有效的函数: 的序列f,从1开始: 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, ... 作为较大的测试用例: >>> f(1000000000) // Might not be feasible with brute-forcers 44720 测试代码 对于未明确给出的任何测试用例,代码的输出应与以下结果相匹配: public class Main { public static void …

28
计算逆模量
任务: 输出for的值x,其中a mod x = b有两个给定值a,b。 假设条件 a并且b将始终为正整数 永远不会有解决方案 x 如果存在多个解决方案,请至少输出其中之一。 如果没有任何解决方案,则不输出任何内容或表明不存在任何解决方案。 允许内置(不像其他数学方法那样有趣) 输出始终是整数 例子 A, B >> POSSIBLE OUTPUTS 5, 2 >> 3 9, 4 >> 5 8, 2 >> 3, 6 6, 6 >> 7, (ANY NUMBER > 6) 8, 7 >> NO SOLUTION 2, 4 >> NO …
18 code-golf  math  number-theory  code-golf  number  integer  code-golf  string  code-golf  music  code-golf  arithmetic  array-manipulation  decision-problem  code-golf  math  rational-numbers  code-golf  code-golf  graphical-output  hardware  code-golf  math  number  code-golf  string  parsing  natural-language  code-golf  tips  brain-flak  code-golf  graph-theory  code-golf  number  polynomials  king-of-the-hill  code-golf  ascii-art  kolmogorov-complexity  animation  king-of-the-hill  code-golf  tips  code-golf  ascii-art  code-golf  string  array-manipulation  data-structures  code-golf  math  number  code-golf  string  base-conversion  binary  code-golf  decision-problem  graph-theory  code-golf  math  polynomials  code-golf  kolmogorov-complexity  physics  code-golf  sequence  number-theory  code-golf  math  integer-partitions  code-golf  array-manipulation  random  permutations  code-golf  string  decision-problem 

3
优化我的翅膀顺序
此推文列出了中餐厅1的翅膀的可能订单: 订购披萨时,我通常会计算出什么尺寸能给我带来最佳的披萨价格比,这很简单。但是,要最小化这家餐厅的订单价格并不是一件容易的事,因此我想为在该餐厅的下一份订单做好准备。 挑战 给定一个大于或等于444的整数,您的任务是返回一个可能的订单,以最小化价格(总体上最便宜)和交易数量。 例 如果我要订购100100100 Wings,事实证明最好的讨价还价将花费$111.20$111.20$111.20。但是,有多个订单将花费该金额,即: [50,50],[25,25,50],[25,25,25,25] 由于第一个订单将使用最少的交易(222),结果将是[50,50]。 规则 输入将是某个整数n≥4n≥4n \geq 4 输出将是订单大小的列表/数组/ ...,总计为nnn,并将订单价格最小化 您可以选择退回所有可能的订单 测试用例 4 -> [4] (4.55) 23 -> [23] (26.10) 24 -> [6,18],[9,15],[12,12] (27.20) 31 -> [6,25] (34.60) 32 -> [4,28],[6,26],[7,25] (35.75) 33 -> [4,29],[5,28],[6,27],[7,26],[8,25] (36.90) 34 -> [6,28],[9,25] (38.00) 35 -> [35] (39.15) 125 …

7
拆分位!
我们定义作为鲜明的权力清单2那笔X。例如,V (35 )= [ 32 ,2 ,1 ]。V(x)V(x)V(x)222xxxV(35)=[32,2,1]V(35)=[32,2,1]V(35)=[32,2,1] 按照惯例,此处的权力从最高到最低排序。但这不会影响挑战的逻辑,也不会影响预期的解决方案。 任务 给定一个半素数 ,将V (N )中的每个项替换为另一个与该项加和的2的幂的列表,这样所有结果子列表的并集就是矩阵M的精确覆盖,定义为:NNNV(N)V(N)V(N)222MMM Mi,j=V(P)i×V(Q)jMi,j=V(P)i×V(Q)jM_{i,j}=V(P)_i \times V(Q)_j 其中和Q是N的素数。PPPQQQNNN 通过一些示例,这更容易理解。 例子1 对于,我们有:N=21N=21N=21 V(N)=[16,4,1]V(N)=[16,4,1]V(N)=[16,4,1] 和 V (P )= [ 4 ,2 ,1 ]P=7P=7P=7V(P)=[4,2,1]V(P)=[4,2,1]V(P)=[4,2,1] 和 V (Q )= [ 2 ,1 ]Q=3Q=3Q=3V(Q)=[2,1]V(Q)=[2,1]V(Q)=[2,1] M=(844221)M=(842421)M=\pmatrix{8&4&2\\4&2&1} 要将变成M的精确覆盖,我们可以将16分成8 + 4 + 4和4分成2 + 2,而1保持不变。因此,可能的输出是:V(N)V(N)V(N)MMM1616168+4+48+4+48+4+44442+22+22+2111 [[8,4,4],[2,2],[1]][[8,4,4],[2,2],[1]][ [ 8, …

25
一个简单的模式
输入: 您选择的输入格式中的两位数字(我们称它们为m和n)和两个字符(我们称其为a和b)。 输出: 对于演练,请假装m=2, n=5, a='a', b='b'。 您的输出将是根据四个输入构建的字符串。让我们result用value 调用字符串""。首先,连击a到result m时间,所以串连a到result 2倍。result现在等于aa。其次,连击b到result m时间,所以串连b到result 2倍。result现在等于aabb。最后,如果结果已经比更长n,请截断result它,使其具有length n。否则,继续交替使用m的长度运行a,并b直到result有长度n。最终result是aabba,它有长度5。 测试用例: Input: m = 2, n = 4, a = A, b = B Output: AABB Input: m = 3, n = 8, a = A, b = B Output: AAABBBAA Input: m = 4, n …
17 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 

16
我有几个分区?
正整数的分区号定义为可将其表示为正整数之和的方式数。换句话说,它具有整数分区的数量。例如,数字4具有以下分区: [[1,1,1,1],[1,1,2],[1,3],[2,2],[4]] 因此,它具有5分区。这是OEIS A000041。 任务 给定正整数N,确定其分区号。 所有标准规则均适用。 输入和输出可以通过任何合理的方式进行处理。 这是code-golf,因此以字节为单位的最短代码获胜。 测试用例 输入| 输出量 1 | 1个 2 | 2 3 | 3 4 | 5 5 | 7 6 | 11 7 | 15 8 | 22 9 | 30 10 | 42

4
建立ASCII斐波那契时钟
有人使用斐波那契数字建立了一个非常漂亮的时钟,它看起来很不错,但是却无法使用。就是我们喜欢的方式!让我们重新创建它。 时钟由与前五个斐波那契数相对应的5个部分组成,从1(即1、1、2、3、5)开始: ccbeeeee ccaeeeee dddeeeee dddeeeee dddeeeee 时钟能够以5分钟为增量显示12小时时间。这是这样的。考虑时间7:20。可以将小时7分解为给定的斐波那契数 7 = 2 + 5 还有5分钟的4个单元。4可以分解为 4 = 2 + 1 + 1 现在,小时显示为红色,分钟显示为绿色,如果小时和分钟都使用数字,则显示为蓝色。如果根本不使用数字,它将保持白色。因此,上面将显示为: BBGRRRRR BBGRRRRR WWWRRRRR WWWRRRRR WWWRRRRR 但是,等等,还有更多。上述分解并不是唯一的可能性。一个人也可以写7 = 3 + 2 + 1 + 1和4 = 3 + 1,这将给 GGRWWWWW GGBWWWWW GGBWWWWW GGRWWWWW BBBWWWWW or BBBWWWWW BBBWWWWW BBBWWWWW BBBWWWWW …

7
振荡平等
我们的对象在两个整数点之间[l, r]以每时间单位一个单位的速度从lon 开始振荡t=0。您可以假设l < r。例如,如果一个对象在上振荡[3, 6],则我们有: t=0 -> 3 t=1 -> 4 t=2 -> 5 t=3 -> 6 t=4 -> 5 t=6 -> 4 t=7 -> 3 t=8 -> 4 等等,但是物体不断振荡,所以我们还有t=0.5 -> 3.5和t=3.7 -> 5.3。 由于两个物体之间振荡[l1, r1],[l2, r2],确定是否存在过一段时间t,使得这两个对象共享相同的位置。您可以采用l1, r1, l2, r2任何方便的格式,并输出任何真实/错误值。 真实的输入: [[3, 6], [3, 6]] [[3, 6], [4, 8]] …
15 code-golf  array-manipulation  decision-problem  code-golf  math  number-theory  palindrome  integer-partitions  code-golf  math  decision-problem  geometry  code-golf  string  random  code-golf  ascii-art  code-golf  kolmogorov-complexity  primes  code-golf  kolmogorov-complexity  code-golf  graphical-output  code-golf  number-theory  primes  integer  factoring  code-golf  sequence  array-manipulation  integer  code-golf  array-manipulation  matrix  code-golf  sequence  binary  code-golf  game  cellular-automata  game-of-life  binary-matrix  code-golf  string  ascii-art  code-golf  random  generation  logic  code-golf  string  code-golf  code-golf  sequence  array-manipulation  random  apl  code-golf  code-golf  sequence  primes  code-golf  math  sequence  integer  code-golf  number  arithmetic  array-manipulation  decision-problem  code-golf  ascii-art  number  code-golf  restricted-source  quine  code-golf  chess  board-game  code-golf  math  sequence  code-golf  number  sequence  kolmogorov-complexity  code-golf  number  sequence  arithmetic  code-golf  math  number  alphabet  code-golf  ascii-art  classification  statistics  apl  code-golf  array-manipulation  matrix  code-golf  string  kolmogorov-complexity  code-golf  sequence  binary  base-conversion  binary-matrix  code-golf  string  classification  code-golf  tips  python  code-golf  combinatorics  binary  subsequence  restricted-time  code-golf  number  number-theory  code-golf  math  number  complex-numbers  code-golf  string  code-golf  string  code-golf  string  random  game  king-of-the-hill  python  code-golf  number  sequence  code-golf  number  sequence  code-golf  code-golf  math  number  array-manipulation  code-golf  array-manipulation  decision-problem  code-golf  string  code-golf  sequence  integer 

10
最小运营至100
总览 给定一个数字列表,找到最少的运算使100 输入值 一串数字,可以是数字顺序,也可以不是数字顺序。数字的顺序不能更改,但是可以在每个数字之间加上加号(+)或减号(-),以便总和等于100。 输出量 添加的运算符数量,其后是数字和运算符的完整序列。两者可以用空格,制表符或换行符分隔。 例子 有效 输入:123456789 输出:3 123–45–67+89 无效的 输入:123456789 输出:( 6 1+2+34-5+67-8+9 有一些方法可以减少操作次数)

8
最小总和为n的数字
这里的第一个问题,如果这是重复的或不好的挑战,请不要对我大喊。 介绍 我自己想到了这个挑战,对于初学者来说,这似乎是一个很好的基本难题。这也可能有助于我确定要学习哪种编码语言。 挑战 给定一个小于或等于整数n的数组,从数组中输出或返回最小数目的精确求和n。 您可以选择编写函数或完整程序。 输入值 您可以放心假设0 <= n < 2^31。 接受任何类型的数组或列表(允许vector用于C ++或Java LinkedList),以及n一个可选参数length,该参数指定数组的长度。 您还可以将输入作为用空格分隔的字符串,并n用逗号或空格分隔: 1 5 7 3 7 3 6 3 2 6 3,10 1 5 7 3 7 3 6 3 2 6 3 10 如果更容易。 输出量 输出或从数组中返回总和恰好为的最小数目的数字n。使用上面的示例: 1 5 7 3 7 3 6 3 …

11
求和
我很喜欢阅读本网站;这是我的第一个问题。欢迎进行编辑。 给定正整数n和m,将m的所有有序分区精确地计算为n个正整数部分,并用逗号和换行符分隔它们。任何顺序都可以,但是每个分区必须恰好出现一次。 例如,给定m = 6和n = 2,可能的分区是对正整数的和,总和为6: 1,5 2,4 3,3 4,2 5,1 请注意,[1,5]和[5,1]是不同的有序分区。输出应与上述格式完全相同,并带有可选的尾随换行符。(编辑:分区的确切顺序无关紧要)。输入/输出通过标准代码高尔夫球I / O进行。 m = 7,n = 3的另一个示例输出: 1,1,5 1,2,4 2,1,4 1,3,3 2,2,3 3,1,3 1,4,2 2,3,2 3,2,2 4,1,2 1,5,1 2,4,1 3,3,1 4,2,1 5,1,1 1周后以字节为单位的最小代码获胜。 同样,请根据需要进行编辑。 附录: @TimmyD询问程序必须支持的整数输入大小。除示例外,没有其他最低要求。实际上,输出大小呈指数增长,粗略地建模为:lines = e ^(0.6282 n-1.8273)。 n | m | lines of output …

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.