Может ли масштабировать алгоритмы грубой силы?

У меня есть математическая проблема, которую я решаю по пробным и ошибкам (я думаю, что это называется грубой силой), и программа работает нормально, когда есть несколько вариантов, но, как я Добавьте больше переменных / данных, которые требуется больше времени и дольше.

Моя проблема - хотя, хотя прототип работает, это полезно с тысячами переменных и больших наборов данных; Итак, мне интересно, можно ли масштабировать алгоритмы грубой силы. Как я могу приблизиться к расширению масштабирования?

Я начинал учиться и играть с Hadoop HBASE ); Хотя это выглядит многообещающе, я хотел проверить, что я пытаюсь сделать, не невозможно.

Если это поможет, я написал программу в Java (и может использовать ее, если это возможно), но в конечном итоге портировал его к Python, потому что я чувствую себя более комфортно с этим.

Обновление: Для обеспечения большего понимания, я думаю, что добавлю упрощенную версию кода, чтобы получить идею. В основном, если я знаю, что сумма 100, я пытаюсь найти все комбинации переменных, которые могут сравниться с ней. Это просто, в моей версии я могу использовать большие числа и многое другое переменные. Это диофантин, и я полагаю, что нет алгоритма, который существует, чтобы решить его без грубой силы.

int sum = 100;
int a1 = 20;
int a2 = 5;
int a3 = 10;
for (int i = 0; i * a1 <= sum; i++) {
    for (int j = 0; i * a1 + j * a2 <= sum; j++) {
        for (int k = 0; i * a1 + j * a2 + k * a3 <= sum; k++) {
            if (i * a1 + j * a2 + k * a3 == sum) {
              System.out.println(i + "," + j + "," + k);
            }
        }
    }   
}

Я новичок в программировании, и мне жаль, если я не образую этот вопрос правильно. Это более общий вопрос.

-121--1404991-

Сочетание обозначенных инициализаторов и MALLOC в C99 +? Есть ли хороший способ объединить назначенные инициализаторы от C99, с результатом Malloc? Кажется, следующее оказывает ненужное дублирование: Typedef struct {int a, b, c; } Тип; Тип * T = ...

Есть хороший способ объединить обозначенные инициализаторы от C99, с результатом Malloc ?

Следующее, похоже, имеет ненужное дублирование:

typedef struct {
   int a, b, c;
} Type;

Type *t = malloc(sizeof *t);
*t = (Type) {
    .a = 2,
    .b = 3,
    .c = 5,
};

может Использование типа и * T быть удалена из вышеуказанного кода?

8
задан Matt Joiner 1 September 2011 в 02:33
поделиться