Как реализовать алгоритм сетевого потока с использованием двумерного массива со случайными узлами и емкостями

Я хочу сгенерировать алгоритм сетевого потока, используя случайное количество узлов и мощностей, используя Java. Минимальное количество узлов должно быть 4, а максимальное — 10. Поэтому я использовал цикл for и пробовал, но это не работает для всех возможных узлов.

Следующий код работает только для минимальных случайных узлов (4). Я создал функцию для случайной генерации узлов.

public static void main(String[] args) {
    int nodeNum = getRandomNumber();
    int[][] arr = new int[nodeNum][nodeNum];
    for (int i = 0; i < arr.length; i++) {
        for (int j = 0; j < arr[i].length; j++) {

            if (i==0) {
                if (j==1 || j==2)
                   arr[i][j] = (int)(Math.random() * 10);
            }
            else if (i==1 && j==3){
                arr[i][j] = (int)(Math.random() * 10);
            }
            else if (i==2 && j==3){
                arr[i][j] = (int)(Math.random() * 10);
            }
            else {
                arr[i][j] = 0;
            }
            System.out.print(arr[i][j] + " ");
        }
        System.out.println("");
    }
}

//Generate random number of nodes between 4 and 10
private static int getRandomNumber() {
    int randomValue;
    do {
        randomValue = (int) (Math.random() * 10);
    } while(!(randomValue>=4 && randomValue<=10));
    return randomValue;
}

Добро пожаловать в СО. Можете ли вы уточнить свой вопрос, отредактировав его, пожалуйста? Я не знаю, есть ли у вас проблема с реализацией сетевого потока или с построением случайного графа.

m.raynal 28.03.2019 11:00

У меня проблема с построением случайного графика с использованием 2d-массива.

RAbey 28.03.2019 12:50

Затем этот ответ может предоставить вам метод для создания случайных графиков. Потому что нужно выбирать не только количество узлов, но и количество ребер.

m.raynal 28.03.2019 13:16
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
132
0

Другие вопросы по теме