在相等的部分打破数学范围

时间:2014-02-26 19:30:27

标签: java

我有一个数学范围[a,b],我试图将范围分成'n'等份。 数字,a和b可以是任何东西,但是例如,我们假设范围是[0,1]。

基本上我要做的就是让我们说如果n = 4且范围是[0, 1],那么我希望将该范围的断点计算为[.25, .5, .75],因为这些除以[0, 1] 1}}到4个相等的点。同样,如果范围是[0, 1]n = 2,我希望断点为[.5]。

在java中计算这些断点的最快方法是什么?是否有内置函数来执行此类操作?

6 个答案:

答案 0 :(得分:4)

假设您有数字[x,y],并且您想要n个部分。然后你可以计算出这个差异:

diff = (y-x)/n

现在创建一个等于d的变量0,并从1循环到n。在您循环播放时,将diff添加到d并打印d。一些伪代码:

diff = (y-x)/n;     
d = 0;
for(1 to n)
    d = d + diff
    print(d)

注意:使用double

答案 1 :(得分:1)

如果范围是[a,b]并且必须将其划分为n个分区,则可以采用以下方法: -

public class Range
{
    public static void main(String[] args)
    {
        double lowLimit = a;
        double highLimit = b;
        double difference = (b-a);
        double partition = difference/n;   // n is the number partitions of the range [a,b]
        System.out.println("The partitions are:");
        for(int i = 1;i<=n; i++)
            {
                    lowlimit += difference;
            System.out.print(lowlimit+"\t");
            }
        System.out.println();
    }
}

答案 2 :(得分:0)

不确定这是否是你需要的(打印断点,或者那些breakPoints上的系统断点),无论如何,两者都在这里

double division += (maxRange - minRange)/n;
for(int i=0; i<=n; i++){
    double minRange = 0;
    double maxRange = 1;
    double breaks[i] = division;
    //System.out.println(breaks[i]); ----------------------USE THIS ONE IF PRINTING BREAKPOINT IS NEEDED
    //new java.util.Scanner(System.in).nextLine(); --------THIS LINE STOPS THE PROGRAM UNTIL YOU PRESS A KEY
}

答案 3 :(得分:0)

代码只是为了让您知道从哪里开始:

int a = 0;
int b = 1;
int n = 4;

double fraction = (b - a) / (double) n;
for (int i = 0; i < n; ++i) {
    System.out.println("Lower bound: " + i * fraction + "; Upper bound: " + (i + 1) * fraction);
}

答案 4 :(得分:0)

double dx = ((upper_bound - lower_bound)/n)

这将计算范围内每个点之间的空间。

如果你想将这些点放在一个数组中,你可以这样做:

double value = lower_bound; 
for (int i = 0; i < n; i++) {
    double value += dx;
    double_array[i] = value;
}

您尚未指定使用何种数据结构,因此除了这个简单的数组实现之外,如果没有进一步说明,我无法帮助您。

答案 5 :(得分:0)

以下是while循环的方法:

public class Breakpoint
{
  public Breakpoint()
  {
    double start = 0;
    double end = 1;

    double n = 4;

    double difference = (end - start) / n;
    double value = start;

    while (value < end)
    {
      value += difference;
      System.out.println(value);
    }
  }

  public static void main(String[] args)
  {
    new Breakpoint();
  }
}