Я новый с HASKELL и возникает проблемы с его пакетом.
Я хочу импортировать System.random, но
не смог найти модуль `system.random '
, затем я пытался импортировать систему, но
не удалось найти модуль« Система ».
Это член скрытого пакета `haskell98-2.0.0.0 '.
Я пытался искать эту проблему, но эти решения все еще не работают.
Как Это , сказал, я попытался установить Cabal на мою Mac OS X с помощью MacPort, но
ошибка: были не установлены следующие зависимости: GHC Ошибка: Состояние 1, встречающееся во время обработки.
Я установил платформу Haskell и может использовать GHCI в командной строке. GHCI, версия 7.2.1
Затем я попытался использовать GHC-PKG EXPOSE HASKELL98-2.0.0.0
как этот говорит.
Но на этот раз я даже не могу запустить GHCI.
Верхний уровень:
неоднозначный интерфейс для `prelude ':
Был найден в нескольких пакетах: Base Haskell98-2.0.0.0
Итак, что я могу сделать без использования Cabal?
--- 737719- [117679719-
У меня есть математическая проблема, которую я решаю по пробным и ошибкам (я думаю, что это называется грубой силой), и программа работает нормально, когда есть несколько Варианты, но как я добавляю больше переменных / данных, требуется дольше и дольше.
Моя проблема - хотя, хотя прототип работает, это полезно с тысячами переменных и больших наборов данных; Итак, мне интересно, можно ли масштабировать алгоритмы грубой силы. Как я могу приблизиться к расширению масштабирования?
Я начинал учиться и играть вокруг 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);
}
}
}
}
Я новичок в программировании, и мне жаль, если я не образую этот вопрос правильно. Это более общий вопрос.