Проект Euler # 75: способы оптимизации алгоритма - PullRequest
2 голосов
/ 20 декабря 2009

Я ищу способы оптимизировать мой алгоритм для решения Project Euler # 75 , две вещи, которые я сделал до сих пор,

  1. Проверяйте только L с четными значениями, поскольку это легко проверить.
  2. Сохранение значений L, которые были проверены, чтобы иметь только один способ сформировать целочисленный прямоугольный треугольник. Позже, проверяя новое значение L, я ищу делители L, которые уже проверены, чтобы иметь это качество. Если есть 2 или более делителей, то это значение пропускается. Например. 12, 30 и 40 сохраняются (24, 36 и т. Д. Не сохраняются, потому что это действительно увеличенные версии 12), поэтому, когда я вижу 60 или 120, я могу быстро определить, что их следует пропустить.

Однако мой алгоритм все еще недостаточно быстр. У вас есть другие предложения или ссылки на соответствующие статьи? Спасибо.

1 Ответ

4 голосов
/ 20 декабря 2009

http://en.wikipedia.org/wiki/Pythagorean_triple

и

http://en.wikipedia.org/wiki/Formulas_for_generating_Pythagorean_triples

EDIT

Я только что решил проблему, используя одну из формул

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...