Решаем задачи Python. Джеймс Девис. Читать онлайн. Newlib. NEWLIB.NET

Автор: Джеймс Девис
Издательство: Автор
Серия:
Жанр произведения:
Год издания: 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