Решаем задачи Python. Джеймс Девис

Читать онлайн.
Название Решаем задачи Python
Автор произведения Джеймс Девис
Жанр
Серия
Издательство
Год выпуска 2024
isbn



Скачать книгу

алгоритм Евклида, который базируется на принципе, что НОД двух чисел не изменится, если к большему числу присоединить или вычесть меньшее число. Мы будем применять этот алгоритм до тех пор, пока одно из чисел не станет равным нулю. В этот момент другое число и будет НОДом исходных чисел.

      Пример кода на Python:

      ```python

      def gcd(a, b):

      while b:

      a, b = b, a % b

      return a

      # Пример использования

      num1 = 48

      num2 = 18

      result = gcd(num1, num2)

      print(f"Наибольший общий делитель чисел {num1} и {num2}:", result)

      ```

      В этом коде:

      – Функция `gcd` принимает два целых числа `a` и `b`.

      – В цикле `while` мы выполняем операцию над числами до тех пор, пока `b` не станет равным нулю.

      – Внутри цикла `while` происходит обмен значениями `a` и `b`, где `a` принимает значение `b`, а `b` принимает значение остатка от деления `a` на `b`.

      – Когда `b` становится равным нулю, цикл завершается, и `a` содержит наибольший общий делитель исходных чисел.

      – Этот НОД возвращается функцией и выводится на экран.

      Таким образом, данный код эффективно находит наибольший общий делитель двух целых чисел.

12. Задача о пространственном вращении: Реализовать программу для вращения точек в трехмерном пространстве относительно заданной оси и угла.

      Для реализации программы вращения точек в трехмерном пространстве относительно заданной оси и угла, мы можем использовать следующий подход:

      1. Представление точек: Каждая точка в трехмерном пространстве может быть представлена как тройка координат (x, y, z). Мы можем использовать этот формат для хранения и работы с точками.

      2. Выбор оси вращения: Пользователь может задать ось вращения. Обычно используются оси X, Y и Z. Для простоты давайте начнем с оси Z.

      3. Угол вращения: Пользователь также задает угол вращения в градусах или радианах, в зависимости от предпочтений.

      4. Матрица поворота: Для выполнения вращения мы используем матрицу поворота, которая зависит от выбранной оси и угла вращения.

      5. Применение вращения к точкам: Для каждой точки применяется матрица поворота, чтобы получить новые координаты точек после вращения.

      6. Вывод результатов: Полученные новые координаты точек могут быть выведены на экран или использованы для дальнейших вычислений или отрисовки.

      Итак, основная идея решения заключается в использовании матриц поворота для вращения точек в трехмерном пространстве относительно заданной оси и угла.

      Для реализации программы вращения точек в трехмерном пространстве относительно заданной оси и угла мы можем воспользоваться математическими преобразованиями и использовать библиотеку для работы с трехмерной графикой, например, библиотеку `numpy`.

      Пример кода на Python для вращения точек вокруг оси z на заданный угол:

      ```python

      import numpy as np

      def rotate_point(point, angle):

      # Преобразуем угол в радианы

      angle_rad = np.radians(angle)

      # Матрица поворота для оси z

      rotation_matrix = np.array([[np.cos(angle_rad), -np.sin(angle_rad), 0],

      [np.sin(angle_rad), np.cos(angle_rad), 0],

      [0, 0, 1]])

      # Преобразуем точку в вектор-столбец

      point_vector