Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 22.07.2016
Сообщений: 6
1

Усовершенствовать рекурсивный алгоритм

07.09.2016, 11:26. Просмотров 436. Ответов 3
Метки нет (Все метки)


Здравствуйте, помогите пожалуйста добавить "кеш" в алгоритм. При больших значения матрицы он не работает.
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
public class Hedgehog2 {
    public int[][] apples;
    final int MAX_APPLES = 3;
    private int height = 0;
    private int width = 0;
 
    public Hedgehog2 (int height, int width){
        this.height = height;
        this.width = width;
        apples = new int[height][width];
        for (int i = 0; i < height; i++){
            for (int j = 0; j < width; j++){
                apples[i][j] = (int) (Math.random() * MAX_APPLES);
            }
        }
        
    }
    
    public int maxApples(){
        for (int[] x : apples){
            for (int i : x) System.out.print(i + " ");
            System.out.println();
        }
        int i = applesIteration(0, 0, height - 1, width - 1);
        System.out.println("Max apples = " + i);
        return i;
    }
    
    private int applesIteration(int x, int y, int downs, int rights){
        // последняя итерация
        if (downs == 0 && rights == 0) return apples[x][y];
        // на правой границе
        else if (rights == 0) return apples[x][y] + applesIteration(x + 1, y, downs - 1, 0);
        // на нижней границе
        else if (downs == 0) return apples[x][y] + applesIteration(x, y + 1, 0, rights - 1);
        // в середине
        else {
            int goDown = applesIteration(x + 1, y, downs - 1, rights);
            int goRight = applesIteration(x, y + 1, downs, rights - 1);
            if (goDown > goRight) return apples[x][y] + goDown;
            else return apples[x][y] + goRight; 
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.09.2016, 11:26
Ответы с готовыми решениями:

Рекурсивный алгоритм вычисления корня из x+1
нужен рекурсивный алгоритм корень из (x +1) , то есть мы вводим число до какого значения х нужно...

Как усовершенствовать алгоритм?
Архивация public static void Zip(string FileRes, string FileDest) { ...

Как усовершенствовать алгоритм?
Здравствуйте. Есть такой код: for(int i = 0; i &lt; WORDS-&gt;Count; i++) { flag = false;...

усовершенствовать алгоритм с циклом
Есть N целых чисел. Нужно складывать их до тех пор, пока они их сумма НЕ будет превышать лимит....

3
Эксперт Java
4072 / 3806 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
07.09.2016, 13:22 2
Цитата Сообщение от Taras_fj Посмотреть сообщение
"кеш" в алгоритм
А что делаем ваш алгоритм?
0
0 / 0 / 0
Регистрация: 22.07.2016
Сообщений: 6
07.09.2016, 14:40  [ТС] 3
Вот условия которые выполняет алгоритм:
План прямоугольного сада размером mxn состоит из квадратных зон. В каждой зоне растёт по дереву. С каждого дерева любой зоны могут упасть несколько яблок.
В левом верхнем квадратике находится ёжик, который должен дойти до правого нижнего квадратика. В саду существуют ограничения относительно способа передвижения: ёжик может двигаться из текущего квадратика только в один из двух соседних правый либо нижний.
Составьте программу, которая вычисляет максимальное количество яблок, которое может собрать ёжик, передвигаясь к нужному квадратику.
0
Эксперт Java
2361 / 2191 / 559
Регистрация: 28.12.2010
Сообщений: 8,578
07.09.2016, 17:07 4
Taras_fj, его нужно не усовершенствовать, а выкинуть и заменить на алгоритм Дейкстры к примеру. Ваша задача - стандартная задача на графы.
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.09.2016, 17:07

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Задача: плохая подстрока. Усовершенствовать алгоритм
Задача: Найдите, сколько существует строк заданной длины n, состоящих только из символов 'a',...

Усовершенствовать алгоритм Евклида по нахождению наибольшего общего делителя
Помогите пожалуйста. Усовершенствовать алгоритм евклида нахождение наибольшего общего определителя...

Усовершенствовать алгоритм Рабина-Карпа, чтобы он искал символьную подматрицу в символьной матрице
У меня есть этот алгоритм. Кто знает, как усовершенствовать его, чтобы он искал символьную...

Рекурсивный алгоритм
Помогите написать код или обяснить..


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.