Вдохновленные Дешево, Быстро, Хорошо , мы собираемся реализовать алгоритм, который имеет ровно два из них.
Математика
Учитывая два ненулевых целых числа a и b , GCF d является наибольшим целым числом, которое делит и a и b без остатка. Коэффициенты Безу - это пары целых чисел (x, y) , для которых ax + by = 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 анна половина".
Это конкурс популярности, поэтому большинство побед выигрывает!
РЕДАКТИРОВАТЬ
Чтобы уточнить, я ищу для программ , которые могут быть «быстро и дешево» и «дешево и хорошо» и «быстро и хорошо» в различных случаях, а не те , которые просто делают одну из них.