Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 28.11.2019
Сообщений: 38

Динамическое программирование / метод "Разделяй и властвуй"

08.11.2022, 18:52. Показов 2306. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Условие:
«Одинокий король» долго ходил по бесконечной шахматной
доске. Известна последовательность из N его ходов (вверх, вниз,
влево, вправо, вверх-влево и т.п.). Написать программу,
определяющую побывал ли король дважды на одном и том же
поле за минимально возможное при заданном N число
вычислений.

Мой код (рабочий):
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import java.util.ArrayList;
import java.util.Scanner;
 
public class King {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int size = 500;
        int steps = 0;
        int[][] visited = new int[size][2];
        visited[0][0] = 250;
        visited[0][1] = 250;
        int[][] move = {{-1, 1}, {0, 1}, {1, 1}, {1, 0}, {1, -1}, {0, -1}, {-1, -1}, {-1, 0}};
        ArrayList<Integer> moves = new ArrayList<Integer>();
        int menu = 1;
        while (true)
        {
            System.out.println("Выберите пункт соответствующий ходу короля: ");
            System.out.println("1 - вверх влево");
            System.out.println("2 - вверх");
            System.out.println("3 - вверх вправо");
            System.out.println("4 - вправо");
            System.out.println("5 - вправо вниз");
            System.out.println("6 - вниз");
            System.out.println("7 - вниз влево");
            System.out.println("8 - влево");
            System.out.println("9 - закончить ввод");
            menu = in.nextInt();
            if (menu == 9)
                break;
            if ((menu < 1) || menu > 9)
            {
                System.out.println("Введен не корректный пункт меню, попробуйте снова!");
            }
            else
            {
                moves.add(menu);
                steps++;
            }
        }
 
        // выполняем ходы, записываем текущие координаты в массив
        for (int i = 1; i < steps+1; i++)
        {
            for(int j = 0; j < 2; j++)
            {
                visited[i][j] = visited[i - 1][j] + move[moves.get(i - 1)-1][j];
            }
        }
        System.out.println();
 
        // проверка были ли совпадения координат x и y, то есть был ли король на 1-ом месте 2 раза
        int temp_steps = steps;
        for (int i = 0; i < temp_steps + 1; i++)
        {
            for (int j = i + 1; j < temp_steps + 1; j++)
            {
                if ((visited[i][0] == visited[j][0]) && (visited[i][1] == visited[j][1]))
                {
                    System.out.println("Совпадение на ходах " + i + " и " + j);
                }
            }
        }
        System.out.println();
 
        // вывод координат
        for(int i = 0; i <= steps; i++)
        {
            System.out.print(i + ": ");
            for(int j = 0; j < 2; j++)
            {
                System.out.printf("%d\t", visited[i][j]);
            }
            System.out.println();
        }
        System.out.println(steps);
    }
}
Надо написать алгоритм используя динамическое программирование, либо метод "Разделяй и властвуй". Читал статьи по этому поводу, понял лишь то, что надо использовать рекурсию. Но как её здесь применить не совсем представляю, может есть у кого идеи?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.11.2022, 18:52
Ответы с готовыми решениями:

Метод «разделяй и властвуй»
Задачка Python3: Метод «разделяй и властвуй» Требуется определить одномерный целочисленный массив a из n элементов (например, n=30),...

Метод "Разделяй и властвуй"
ЗАДАНИЕ: Требуется определить одномерный целочисленный массив a из n элементов (например,n=30), заполнить его случайными числами (в...

Разделяй и властвуй
Всем добрый вечер. Требуется написать рекурсивную функцию (методом разделяй и властвуй), вычисляющую СУММУ элементов массива (со свойством...

30
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3430 / 2749 / 575
Регистрация: 04.09.2018
Сообщений: 8,628
Записей в блоге: 3
08.11.2022, 23:12
Цитата Сообщение от xmmmm Посмотреть сообщение
Мой код (рабочий):
Трудно сказать на сколько он "рабочий", т.к. выводит в качестве результата какую-то белиберду.
Цитата Сообщение от xmmmm Посмотреть сообщение
Java
1
int size = 500;
Кнопки не поотлетают на клавиатуре столько раз нажимать?
0
0 / 0 / 0
Регистрация: 28.11.2019
Сообщений: 38
09.11.2022, 11:59  [ТС]
Цитата Сообщение от wizard41 Посмотреть сообщение
т.к. выводит в качестве результата какую-то белиберду.

Что смущает в выводе?
Если король попадает на место, в котором уже был, выводится сообщение и номера ходов на которых обнаружены совпадения.
Далее идет список формата:
номер хода: x_короля_на_данном_ходу y_короля_на_данном_ходу (сделано для наглядности и возможности проверки результата)
Цитата Сообщение от wizard41 Посмотреть сообщение
Кнопки не поотлетают на клавиатуре столько раз нажимать?
Это лишь условный размер шахматной доски(матрицы) по которой гуляет король, совсем не обязательно делать 500 ходов, ходы вводятся динамически, может быть сделано сколько угодно ходов, а может и вообще ни одного.
0
0 / 0 / 0
Регистрация: 28.11.2019
Сообщений: 38
12.11.2022, 22:10  [ТС]
Тема актуальна
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3430 / 2749 / 575
Регистрация: 04.09.2018
Сообщений: 8,628
Записей в блоге: 3
13.11.2022, 00:45
xmmmm, я вот, не уверен, что до конца понял что требуется, а остальные и вовсе не хотят вникать в эту муть.
Там, где вы берете эти дурацкие задания - там и задавайте вопросы. Если спрашиваешь тут - будь добр пояснить в чем именно у тебя загвоздка. Решать твою идиотскую задачу никто не будет.
Цитата Сообщение от xmmmm Посмотреть сообщение
что надо использовать рекурсию.
Цитата Сообщение от xmmmm Посмотреть сообщение
Но как её здесь применить
Изучай вопрос что такое рекурсия. Хотя, до получения этого задания ты должен был уже это знать.
0
0 / 0 / 0
Регистрация: 28.11.2019
Сообщений: 38
14.11.2022, 09:07  [ТС]
Цитата Сообщение от wizard41 Посмотреть сообщение
я вот, не уверен, что до конца понял что требуется
Требуется переписать мой алгоритм решения задачи, можно написать с 0, чтоб он включал в себя "динамическое программирование" или метод "разделяй и властвуй".
Цитата Сообщение от wizard41 Посмотреть сообщение
в чем именно у тебя загвоздка
Возможно недостаток знаний в теме динамического программирования, читал статейки в гугле, так особо ничего и не понял, лишь то, что нужно разбивать задачу на подзадачи и использовать рекурсию, наверное следует практические примеры посмотреть, поразбирать.
Цитата Сообщение от wizard41 Посмотреть сообщение
Решать твою идиотскую задачу никто не будет.
Я не прошу готовый код, хотя бы примерно понять как это должно выглядеть.
Цитата Сообщение от wizard41 Посмотреть сообщение
Изучай вопрос что такое рекурсия. Хотя, до получения этого задания ты должен был уже это знать.
С рекурсией благо я уже знаком.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3430 / 2749 / 575
Регистрация: 04.09.2018
Сообщений: 8,628
Записей в блоге: 3
14.11.2022, 09:47
Цитата Сообщение от xmmmm Посмотреть сообщение
Требуется переписать мой алгоритм решения задачи
Именно что. Из твоего кода непонятны следующие вещи:
Что значит это:
Java
1
2
visited[0][0] = 250;
visited[0][1] = 250;
Зачем здесь этот лист ArrayList<Integer> moves?
И это int[][] move = {{-1, 1}, {0, 1}, {1, 1}, {1, 0}, {1, -1}, {0, -1}, {-1, -1}, {-1, 0}};?
Для чего сохраняются пункты меню: moves.add(menu);? Что это дает?

Как я понял задачу: король ходит по полю, согласно выбору направления (меню движения). После выхода из меню (пункт 9) нужно подсчитать сколько клеток он прошел более одного раза и вывести координаты этих клеток.
Возможное решение: записываем координаты ходов в массив visited[0][0], затем прочесываем его на предмет одинаковых координат. Координаты, которые встречаются более одного раза - выводим в консоль.
Эту задачу действительно можно разбить на несколько подзадач, но вот применение рекурсии видится мне излишним (не очевидным).

Добавлено через 1 минуту
Да, и тут явно напрашивается применение мапы (map).
0
0 / 0 / 0
Регистрация: 28.11.2019
Сообщений: 38
14.11.2022, 16:38  [ТС]
Цитата Сообщение от wizard41 Посмотреть сообщение
Что значит это:
Java
1
2
visited[0][0] = 250;
visited[0][1] = 250;
Это начальная позиция(х, у) короля, хотя действительно, зачем я их в (250; 250) установил остается загадкой, можно в (0; 0) поставить.
Цитата Сообщение от wizard41 Посмотреть сообщение
Для чего сохраняются пункты меню: moves.add(menu);? Что это дает?
Можно было в принципе и сразу (во время ввода пользователем) рассчитывать координаты текущие и закидывать в visited[][], так наверное было бы правильней, но у меня сначала все ходы вводятся, а потом, после завершения ввода (пункт 9 меню) вычисляются координаты на каждом ходу, соответственно чтоб не терять данные вводимые пользователем я их добавлял в лист moves.

Цитата Сообщение от wizard41 Посмотреть сообщение
И это int[][] move = {{-1, 1}, {0, 1}, {1, 1}, {1, 0}, {1, -1}, {0, -1}, {-1, -1}, {-1, 0}};?
Пункты меню соответствуют (порядок одинаковый) элементам этого массива int[][] move = {{-1, 1}, {0, 1}, {1, 1}, {1, 0}, {1, -1}, {0, -1}, {-1, -1}, {-1, 0}};.
Пример: пользователь вводит 2 пункт меню (ход вверх), смотрим на массив move, 2 элемент массива "{0, 1}" как раз позволяет нам рассчитать тот самый ход вверх, то есть к текущей позиции x нужно прибавить 0, а к текущей позиции y прибавить 1. (можно было бы switch case какой нибудь, или if'ами поиздеваться, но такой вариант тоже имеет место быть, как мне кажется)
Цитата Сообщение от wizard41 Посмотреть сообщение
После выхода из меню (пункт 9) нужно подсчитать сколько клеток он прошел более одного раза и вывести координаты этих клеток.
Ну если исходить из условия, просто проверить был ли он в одной клетке дважды, то есть, если его координаты совпали на каких то двух ходах, вывести уведомление об этом. (всю остальную мишуру я выводил для своего удобства, не обязательно)
Цитата Сообщение от wizard41 Посмотреть сообщение
Возможное решение: записываем координаты ходов в массив visited[0][0], затем прочесываем его на предмет одинаковых координат. Координаты, которые встречаются более одного раза - выводим в консоль.
Ну у меня по сути так и реализовано
Цитата Сообщение от wizard41 Посмотреть сообщение
Эту задачу действительно можно разбить на несколько подзадач
Что подразумевает собой разбиение на подзадачи?
Вот это допустим является подзадачей, или надо разбивать на еще более мелкие?
Java
1
2
3
4
5
6
7
8
9
// выполняем ходы, записываем текущие координаты в массив
        for (int i = 1; i < steps+1; i++)
        {
            for(int j = 0; j < 2; j++)
            {
                visited[i][j] = visited[i - 1][j] + move[moves.get(i - 1)-1][j];
            }
        }
        System.out.println();
Цитата Сообщение от wizard41 Посмотреть сообщение
но вот применение рекурсии видится мне излишним (не очевидным).
Но динамическое программирование или "разделяй и властвуй" без рекурсии не канает, как я понял, могу ошибаться. А суть именно в этих методах разработки.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3430 / 2749 / 575
Регистрация: 04.09.2018
Сообщений: 8,628
Записей в блоге: 3
14.11.2022, 17:21
Цитата Сообщение от xmmmm Посмотреть сообщение
без рекурсии не канает
С чего бы это вдруг? Вот на вскидку - зачем тут рекурсия?
Цитата Сообщение от xmmmm Посмотреть сообщение
Вот это допустим является подзадачей
Не является.
Цитата Сообщение от xmmmm Посмотреть сообщение
смотрим на массив move, 2 элемент массива "{0, 1}" как раз позволяет нам рассчитать тот самый ход вверх, то есть к текущей позиции x нужно прибавить 0, а к текущей позиции y прибавить 1.
Зачем смотреть на массив move, если все это можно делать прямо по ходу..
Цитата Сообщение от xmmmm Посмотреть сообщение
Что подразумевает собой разбиение на подзадачи?
Например, ход короля - один метод, сохранение ходов - второй, вывод в консоль - третий..
1
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3430 / 2749 / 575
Регистрация: 04.09.2018
Сообщений: 8,628
Записей в блоге: 3
15.11.2022, 02:06
xmmmm, короче, для начала:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
package Divide_and_Conquer;
 
public class DivideAndConquer {
 
    public static void main(String[] args) {
        int y = 2, x = 100;
        int[][] ChessMate = new int[y][x];
        //Установим короля в (0,0)
        System.out.println("King posed in {0, 0}...");
        King king = new King(new Point(0,0), ChessMate);
        king.moveN();   //Moving is not possible! "Товарищ педагог - а дальше потолок!"
        king.moveS();   //King moved into position: {0, 1}
        king.moveS();   //Moving is not possible! хренушки! Доска кончилась.
 
        //Установим короля в (0,1)
        System.out.println("King posed in {0, 1}...");
        king = new King(new Point(0,1), ChessMate);
        king.moveN();   //King moved into position: {0, 0} пошел наверх, скотина!
    }
 
}
 
class Point {
    int X, Y;
 
    //<editor-fold desc="Getters & Constructor">
    public int getX() {
        return X;}
 
    public int getY() {
        return Y;}
 
    public Point (int x, int y) {
        X = x; Y = y;}
    //</editor-fold>
 
    //<editor-fold desc="Public Methods">
    //North
    public boolean moveN() {
        if (Y > 0) {
            Y--; return true;}
        return false;
    }
 
    //South
    public boolean moveS(int[][] field) {
        if (Y < field.length - 1) {
            Y++; return true;}
        return false;
    }
 
    //West
    public boolean moveW() {
        if (X > 0) {
            X--; return true;}
        return false;
    }
 
    //East
    public boolean moveE(int[][] field) {
        if (X < field[Y].length - 1) {
            X++; return true;}
        return false;
    }
 
    //North-East
    public boolean moveNE(int[][] field) {
        if (moveN() && moveE(field)) return true;
        return false;
    }
 
    //South-East
    public boolean moveSE(int[][] field) {
        if (moveS(field) && moveE(field)) return true;
        return false;
    }
 
    //South-West
    public boolean moveSW(int[][] field) {
        if (moveS(field) && moveW()) return true;
        return false;
    }
 
    //North-West
    public boolean moveNW(int[][] field) {
        if (moveN() && moveW()) return true;
        return false;
    }
    //</editor-fold>
 
    @Override
    public String toString() { return "{" + X + ", " + Y + "}"; }
}
 
class King {
    Point position;
    int[][] chess;
    private final String moveSuccess = "King moved into position: ";
    private final String moveDenied = "Moving is not possible!";
 
    public King (Point pos, int[][] chessm) {
        if (pos.getY() < 0 || pos.getX() < 0) throw new IllegalArgumentException("!IAE");
        if (pos.getY() > chessm.length - 1 || pos.getX() > chessm[pos.getY()].length - 1)
            throw new ArrayIndexOutOfBoundsException("!AIE");
        position = pos;
        chess = chessm;
    }
 
    //<editor-fold desc="Public Methods">
    public void moveN() {
        if (position.moveN()) {
            System.out.println(moveSuccess + position);
        } else System.out.println(moveDenied);
    }
 
    public void moveS() {
        if (position.moveS(chess)) {
            System.out.println(moveSuccess + position);
        } else System.out.println(moveDenied);
    }
 
    /*
    *Здесь остальные методы движения... NE, E, SE, SW, W, NW.
    *В классе Point все уже сделано, надо просто вызвать соотв. методы и,
    *при необходимости, передать аргумент типа int[][] chess.
    *
    */
 
    //</editor-fold>
}

Понимаю, чо вряд ли ты тут что-то понимаешь, но дело не в этом. Самый главный тут класс Point, который можно впихнуть в HashSet<>. Ну и... подсчитать кол-во не вошедших туда точек Point. Их, кстати, можно собирать в отдельный Map<>.
В общем, на что фантазии хватит. А с фантазией сегодня не очень... "Погуляли" после работы... Извини.
Миниатюры
Динамическое программирование / метод "Разделяй и властвуй"  
1
 Аватар для Coffeini
753 / 370 / 133
Регистрация: 01.02.2020
Сообщений: 1,096
Записей в блоге: 1
15.11.2022, 02:11
Цитата Сообщение от wizard41 Посмотреть сообщение
if (moveN() && moveW())
А если один сходит, а другой нет? Вернет-то false, а ход уже сделан...
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3430 / 2749 / 575
Регистрация: 04.09.2018
Сообщений: 8,628
Записей в блоге: 3
15.11.2022, 02:17
Цитата Сообщение от Coffeini Посмотреть сообщение
А если один сходит, а другой нет?
Так он тут один ходит... Кто еще?

Добавлено через 3 минуты
Coffeini, это игра для одной фигуры - Короля. По сути задачи. Ну, как автор написал. Тут нет оппонента
0
 Аватар для Coffeini
753 / 370 / 133
Регистрация: 01.02.2020
Сообщений: 1,096
Записей в блоге: 1
15.11.2022, 02:18
wizard41, ну сходит король на север, но на запад не сможет. Например c H1 в I2. По идее он не должен двигаться, но он будет в H2.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3430 / 2749 / 575
Регистрация: 04.09.2018
Сообщений: 8,628
Записей в блоге: 3
15.11.2022, 02:26
Цитата Сообщение от Coffeini Посмотреть сообщение
но на запад не сможет
Почему не сможет? Если на Запад доска не кончилась - иди скока хошь...

Добавлено через 2 минуты
moveN() && moveW() это движение на Северо-Запад, при котором должны быть оба true. Это вверх и влево.
Но если вверх закончилось, а на влево клетки есть - иди спокойно на W ))

Добавлено через 1 минуту
Цитата Сообщение от wizard41 Посмотреть сообщение
иди спокойно на W
но только методом moveW(), разумеется
0
 Аватар для Coffeini
753 / 370 / 133
Регистрация: 01.02.2020
Сообщений: 1,096
Записей в блоге: 1
15.11.2022, 02:29
wizard41, конкретный пример, когда он сдвинулся, хотя не должен был:
Java
1
2
3
4
5
6
7
8
public static void main(String[] args) {
    int y = 8, x = 8;
    int[][] ChessMate = new int[y][x];
    King king = new King(new Point(0,7), ChessMate);
    System.out.println(king.position);
    System.out.println(king.position.moveNW(king.chess));
    System.out.println(king.position);
}
Code
1
2
3
{0, 7}
false
{0, 6}
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3430 / 2749 / 575
Регистрация: 04.09.2018
Сообщений: 8,628
Записей в блоге: 3
15.11.2022, 02:31
Цитата Сообщение от Coffeini Посмотреть сообщение
king.position.moveNW
я же не знаю что ты тут написал в методе moveNW. В моем коде был только N и S...
0
 Аватар для Coffeini
753 / 370 / 133
Регистрация: 01.02.2020
Сообщений: 1,096
Записей в блоге: 1
15.11.2022, 02:33
Или так и было задумано? Тогда почему в обратную сторону не работает? Т.е. почему не поставлен "&"?

Добавлено через 1 минуту
Да я методы не менял. Только psvm изменил.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3430 / 2749 / 575
Регистрация: 04.09.2018
Сообщений: 8,628
Записей в блоге: 3
15.11.2022, 02:38
и почему ты king.chess передаешь в параметр moveNW?
У данного экземпляра короля уже есть доска внутри King(new Point(0,7), ChessMate).

Добавлено через 4 минуты
Цитата Сообщение от Coffeini Посмотреть сообщение
Тогда почему в обратную сторону не работает?
В классе Point сделано все что нужно. Но он излишен. Показан лишь для того, чтобы ТС понял что такое точка - позиция фигуры. Теперь, если у объекта Короля вызывать соотв. перемещения, то все должно работать нормально. Но у Короля я сделал только два move - это вверх и вниз. Остальное, пусть додумает хозяин вопроса. Ну или я сам завтра допишу.
0
 Аватар для Coffeini
753 / 370 / 133
Регистрация: 01.02.2020
Сообщений: 1,096
Записей в блоге: 1
15.11.2022, 02:40
Короче, я думаю, что надо заменить диагональные методы:
Java
85
86
87
88
public boolean moveNW(int[][] field) {
    if (moveN() && moveW()) return true;
    return false;
}
На такие:
Java
85
86
87
88
89
90
91
92
public boolean moveNW(int[][] field) {
    if(Y > 0 && X > 0){
        Y--;
        X--;
        return true;
    }
    return false;
}
2
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3430 / 2749 / 575
Регистрация: 04.09.2018
Сообщений: 8,628
Записей в блоге: 3
15.11.2022, 02:55
Цитата Сообщение от Coffeini Посмотреть сообщение
Короче, я думаю, что надо заменить
Цитата Сообщение от Coffeini Посмотреть сообщение
На такие:
Coffeini, ты вообще молодец! Серьезно, делаешь вещи в некоторых темах.
Но не забывай о том, что мы показываем свою версию решения людям, которые... вообще не которые... Я исхожу из этого, хотя тоже не всегда.
Поэтому стараюсь раскидывать более-менее внятно, прям по строкам. Для авторов это вполне зашибись.
Я, хоть и начинающий Java'ист, но все же обладаю уже такими познаниями, что могу решить шахматные задачи с помощью "крутых" фишек Java.Core, типа стримов и мапов. Но что это даст вопрошающему? Ровным счетом ничего.
Coffeini, но если ты действительно заметил "косяк" в моем варианте - смело говори. Код писал уже "под градусом", мало ли что не заметил..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.11.2022, 02:55
Помогаю со студенческими работами здесь

Разделяй и властвуй
Здравствуйте, результат как мне кажется идентичен, помогите пожалуйста найти ошибку.. пустую строку после 4 убрал специально...

Возвести число A в степень N методом разделяй и властвуй
Возвести число A в степень N методом разделяй и властвуй Math.Pow(A,N) не предлагать!

Сортировка массива на основе алгоритма «разделяй и властвуй»
Помогите пожалуйста... Нужно сортировать массив методом выбором с помощью алгоритма на основе алгоритма «разделяй и властвуй» в Matlab. ...

Разделяй и властвуй, поиск пары ближайших точек
Задание: 1. Требуется реализовать алгоритм поиска пары ближайших точек в 2-мерном пространстве (функция closest_pair). На вход функция...

Вычисляем по методу „divide et impera” (разделяй и властвуй)
Идея (рекурсивная): Если у меня есть только один элемент в массиве (индекс i = j) то Сумма S равна одному из элементов a или...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru