Натхнені дешевими, швидкими, хорошими , ми збираємось реалізувати алгоритм, який має їх рівно два.
Математика
З огляду на два ненулі цілі числа a і b , GCF d є найбільшим цілим числом, яке ділить і a, і b без залишку. Коефіцієнти Безу - пари цілих чисел (x, y), такі, що ax + по = d . Коефіцієнти Безу не є єдиними. Наприклад, наведено:
a = 15, b = 9
Ми маємо
d = 3
x = 2
y = -3
З тих пір 15*2 + 9*(-3) = 30 - 27 = 3
.
Поширеним способом обчислення GCF та пари коефіцієнтів Безу є використання алгоритму Евкліда , але це аж ніяк не єдиний спосіб.
Код
Ваша програма повинна брати два цілі числа як вхідні дані. Він повинен вивести / повернути найбільший загальний коефіцієнт і одну пару коефіцієнтів Безу.
Приклад введення:
15 9
Приклад виведення
3 (2, -3)
Вихід може бути в будь-якому порядку та форматі, але повинно бути зрозуміло, що таке GCF, а які - коефіцієнти.
Недосвідчені
Ваша програма може бути дешевою, швидкою та хорошою. На жаль, одразу це можуть бути лише два.
- Коли це не дешево , програма повинна використовувати надмірну кількість системних ресурсів.
- Коли це не швидко , програма повинна зайняти зайву кількість часу.
- Коли це не добре , вихід програми повинен бути неправильним.
Програма повинна вміти робити (ну, не робити) усі три. Що робити, коли вам належить - це може базуватися на часі, компіляторі, вхід якого більший тощо. Деякі додаткові зауваження:
- Ваша програма не повинна бути очевидно недостатньою і повинна пройти короткий перегляд. Буду трохи підозрілим, якби ви реалізували три окремі алгоритми.
- У дешевому випадку "надмірна кількість системних ресурсів" - це все, що сповільнило б інші програми. Це може бути пам'ять, пропускна здатність тощо.
- У швидкому випадку "надмірний час" означає відносно того, як він працює в дешевих і хороших випадках. Програму все ж слід закінчити. Чим ближче ви можете "неймовірно засмучувати, але недостатньо засмучувати, щоб зупинити програму" (смішніше і) краще.
- У хорошому випадку висновок не повинен бути помилковим і повинен пройти короткий огляд. Я був би дуже підозрілим, якби це дало мені GCF "2-х півріччя".
Це змагання за популярність, тому більшість результатів виграє!
EDIT
Для уточнення я шукаю програми, які можуть бути "швидкими і дешевими" і "дешевими і хорошими" і "швидкими і хорошими" в різних випадках, а не тих, які просто роблять одну з них.