Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中创建包含10个任意范围的表并选择适当的间隔?_Java_Arrays - Fatal编程技术网

如何在java中创建包含10个任意范围的表并选择适当的间隔?

如何在java中创建包含10个任意范围的表并选择适当的间隔?,java,arrays,Java,Arrays,这里有一组介于[0100]之间的数字。如何创建一个包含10个任意范围的表来存储它们并选择适当的间隔? 我的想法是先创建一个数组,然后随机剪切0~100。我被困在这里。。。。如何按顺序创建间隔,但也要随机创建间隔?介于0和100之间。对它们进行排序(如果使用我链接的线程中的解决方案,它们将已经被排序),并将它们用作间隔边界 编辑:如果允许范围为空,甚至不用担心唯一性;只需选择9个随机值,对它们进行排序,就可以得到间隔边界。以下是此任务的Java实现: import java.util.*; pu

这里有一组介于[0100]之间的数字。如何创建一个包含10个任意范围的表来存储它们并选择适当的间隔? 我的想法是先创建一个数组,然后随机剪切0~100。我被困在这里。。。。如何按顺序创建间隔,但也要随机创建间隔?

介于0和100之间。对它们进行排序(如果使用我链接的线程中的解决方案,它们将已经被排序),并将它们用作间隔边界


编辑:如果允许范围为空,甚至不用担心唯一性;只需选择9个随机值,对它们进行排序,就可以得到间隔边界。

以下是此任务的Java实现:

import java.util.*;

public class Intervals {
    public static int[][] getIntervals(int lowBound, int highBound,
            int intervalCount) {
        int intervalLength = highBound - lowBound;
        boolean[] used = new boolean[intervalLength + 1];
        used[0] = true;
        used[intervalLength] = true;
        Random r = new Random();
        for (int i = 0; i < intervalCount - 1; i++) {
            int candidate = 0;
            while (used[candidate]) {
                candidate = lowBound + r.nextInt(intervalLength);
            }
            used[candidate] = true;
        }
        int[][] result = new int[intervalCount][2];
        int previous = -1;
        int next;
        int count = 0;
        for (int i = 1; i <= intervalLength; i++) {
            if (used[i]) {
                next = i;
                result[count][0] = previous + 1 + lowBound;
                result[count][1] = next + lowBound;
                count++;
                previous = next;
            }
        }
        return result;
    }

    public static void main(String[] args) {
        System.out.println(Arrays.deepToString(getIntervals(0, 100, 10)));
    }

}
import java.util.*;
公课间隔{
公共静态int[]getInterval(int下限、int上限、,
整数间隔(计数){
int intervalLength=上限-下限;
boolean[]used=新的boolean[intervalLength+1];
已使用[0]=真;
使用的[间隔长度]=真;
随机r=新随机();
对于(int i=0;i对于(int i=1;我感谢你的建议!!但我的意思是我需要将[0100]切割成像[0,13]、[14,45]、[46,48]这样的顺序…有些时间间隔是这样的。我创建的边界必须是有序的。@user3298812是的,我的解决方案可以提供给你。有什么需要我尝试以不同的方式解释的吗?我看到了更多细节并找到了答案!非常感谢!你让我开心!