`
guiqing85
  • 浏览: 168710 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

将整数划分成连续的整数

J# 
阅读更多

15 = 15
15 = 7 + 8
15 = 4 + 5 + 6
15 = 1 + 2 + 3 + 4 + 5

首先考虑一般的形式,设n为被划分的正整数,x为划分后最小的整数,如果n有一种划分,那么


结果就是x,如果有两种划分,就是x和x x + 1, 如果有m种划分,就是 x 、x x + 1 、 x x + 1 x + 2 、... 、x x + 1 x + 2 ... x + m - 1


将每一个结果相加得到一个公式(i * x + i * (i - 1) / 2) = n,i为当前划分后相加的正整数个数。


满足条件的划分就是使x为正整数的所有情况。


如上例,当i = 1时,即划分成一个正整数时,x = 15, 当i = 2时, x = 7。


当x = 3时,x = 4, 当x = 4时,4/9,不是正整数,因此,15不可能划分成4个正整数相加。


当x = 5时,x = 1。

Java代码

public static int split(int n) {
   int m = 0, x, t1, t2;
   for (int i = 1; (t1 = i * (i - 1) / 2) < n; i++) {
    t2 = (n - t1);
    x = t2 / i;
    if (x <= 0)
     break;
    if ((n - t1) % i == 0) {
     System.out.print(x + " ");
     for (int j = 1; j < i; j++) {
      System.out.print(x + j + " ");
     }
     System.out.println();
     m++;
    }
   }
   return m;
}

分享到:
评论

相关推荐

    整数划分,并输出结果

    整数划分是组合数学中的一个重要概念,指的是将一个正整数表示为若干个正整数之和的不同方式的数量。例如,数字4可以被划分为1+1+1+1、1+1+2、1+3或4本身等几种不同的方式。每种不同的组合被视为一种划分方法。 ###...

    整数划分的解析

    此外,还提到将正整数划分成连续的正整数之和的问题。例如,15可以拆分为15、7+8、5+6、1+2+3+4+5。对于连续整数划分,可以通过求解等差数列的和来确定可能的划分方式。设n为被划分的正整数,x为划分后最小的正整数...

    整数划分问题

    整数划分问题是指将一个正整数 \( n \) 拆分成一组正整数的和,使得这些正整数的总和等于 \( n \),并且这组数中的最大加数不超过 \( n \)。 例如,对于数字6,其可能的整数划分包括: - 6 - 5 + 1 - 4 + 2, 4 + 1 ...

    动态规划划分最小和_把一个包含n个正整数的序列划分成m个连续的子序列,每个整数刚好属于一个序列。设-专业指导代码类资源

    把一个包含n个正整数的序列划分成m个连续的子序列,每个整数刚好属于一个序列。设第i个序列的各数之和是S(i)。要求:让所有的S(i)的最大值尽量小。例如:序列1,2,3,2,5,4划分成3个序列的最优方案为123|25|4,...

    组合数学 组合数 整数划分 递推 方程 多项式定理

    - **分划**:指将一个正整数表示为若干个正整数之和的不同方式。 - **第二类Stirling数**:用来表示将一个集合分成不相交子集的方法数。具体地,\(S(n, k)\) 表示将 \(n\) 个不同的对象分成 \(k\) 个非空集合的方法...

    Minimal m Sums 给定n 个整数组成的序列,现在要求将序列分割为m 段,每段子序列中的数在原序列中连续排列。如何分割才能使这m段子序列的和的最大值达到最小?

    - 要求将这个序列分割为 m 个连续的子序列(每段子序列中的数在原序列中必须连续排列)。 - 目标是最小化这些子序列的和的最大值。 #### 输入输出格式 **输入**: - 第一行包含两个整数 n 和 m,分别表示序列的长度...

    C++ 递归操作 链表和整数(包括控制台IO)

    接下来,我们将讨论整数的递归操作。常见的例子包括计算阶乘、求斐波那契数列等。以计算阶乘为例,可以编写如下递归函数: ```cpp int factorial(int n) { if (n == 0 || n == 1) return 1; else return n * ...

    动态规划划分最小和 连续子序列

    把一个包含n个正整数的序列划分成m个连续的子序列,每个整数刚好属于一个序列。设第i个序列的各数之和是S(i)。要求:让所有的S(i)的最大值尽量小。例如:序列1,2,3,2,5,4划分成3个序列的最优方案为123|25|4,...

    IntegerPartitionExperiments:从1开始,乘以整数M或加上整数S的连续幂,可以达到多少种目标整数Z?

    整数划分是数学中的一类问题,指的是将一个非负整数N表示为若干个正整数之和,这些正整数不必互不相同。例如,整数5的划分有以下几种:5,4+1,3+2,3+1+1,2+2+1,2+1+1+1,1+1+1+1+1。在上述实验中,它扩展了这个...

    线性、整数规划

    分支定界法通过不断将问题的解空间划分成更小的子集(分支),并为每个子集设定一个下界和上界(定界),直到找到全局最优解。割平面法则是通过添加线性不等式来消除非整数解,逐步逼近整数最优解。 在实际应用中,...

    动态规划 划分最小和

    这个问题是经典的动态规划问题,旨在找到一种方法将一个包含正整数的序列划分为连续的子序列,使得所有子序列和的最大值尽可能小。我们来深入探讨这个问题的解决方案。 首先,我们要理解问题的关键在于找到一个合适...

    中国科学技术大学软件学院《算法设计与分析》实验报告

    整数划分问题是指将一个正整数n表示成若干个正整数之和的形式,这些正整数可以有相同的值。例如,将5划分可以得到1+2+2、1+1+3等不同的形式。在实验报告中,涉及了多种划分问题,包括将n划分成若干正整数之和、k个正...

    动态规划划分最小和

    本问题要求将一个由`n`个正整数组成的序列划分为`m`个连续的子序列,且每个整数恰好属于一个子序列。定义`S(i)`为第`i`个子序列中的整数之和。目标是最小化所有`S(i)`的最大值。 **示例说明**: 假设有一个序列`1,...

    数学建模整数规划

    1. **分枝定界法**:适用于纯或混合整数线性规划,通过将解空间划分为越来越小的子集,并计算每个子集的边界值,从而避免不必要的搜索,提高求解效率。 2. **割平面法**:同样适用于纯或混合整数线性规划,通过不断...

    运筹学--整数规划论

    2. 分支:选择一个尚未确定取值的变量,将其分割成两个子问题,分别限定该变量取小于某个值和大于等于某个值的整数。 3. 定界:求解子问题的线性规划松弛问题,更新下界。 4. 剪枝:比较子问题的下界和上界,如果...

    WinQSB混合整数规划和指派问题

    此算法通过将问题的可行域划分为多个子区域,并对这些子区域进行系统的搜索,以逼近最优整数解。例如,在使用WinQSB软件解决的一个MIP问题中,有2个变量和2个约束条件,所有变量都是非负连续的。数据输入后,软件...

    整数规划_3303088271

    这种方法通过不断将问题的可行域划分为更小的子区域(分支),并为每个子区域确定一个下界(最优解的最小可能值)和上界(最优解的最大可能值),直到找到全局最优解。几何上,这种方法相当于在图解法的基础上,通过...

    数学建模_优化问题_整数规划

    在这种情况下,通过分枝定界法,我们可以将不满足整数约束的变量分支成两个子集,分别求解这两个子集的最优解,并更新上下界,直到找到最优整数解。 总的来说,整数规划是解决实际问题中涉及整数决策变量优化问题的...

    IntProgFZ.zip_Branch and bound_IntProgFZ_整数 规划_混合整数

    通常,我们将一个二进制变量分为取0和1两种情况,或者将一个连续变量按照某个区间进行划分。 2. 定界:对于每个子问题,我们使用线性规划松弛(Linear Programming Relaxation, LPR)找到一个下界,即所有可能解的...

    集合划分问题

    N个元素的集合{1,2,3...,n}可以划分为若干个非空子集。例如,当n=2时,集合{1,2,3}可以划分为2个不同的非空子集如下:{...编程任务:给定正整数N,计算出N个元素的集合{1,2,3,.....n}可以划分为多少个不同的非空子集。

Global site tag (gtag.js) - Google Analytics