Рубрики
Без рубрики

Задача кодирования Python – сумма квадратов

Практикуйте свои навыки программирования Python с удовольствием, связанным с теоремой Пифагорас. Python Sum of Squares Challenge.

Автор оригинала: Robin Andrews.

Здесь «забавная проблема Python с участием просто немного математического ноу-хау:

Напишите функцию, которая принимает аргумент N и печатает пару натуральных чисел x, y такого, что x² +

Для целей этого упражнения мы предположим, что N> 0. Так, например: для, мы можем иметь 1² +, так и.

Существует связь между этой проблемой и известным Пифагоренская теорема , что является одним из самых важных произведений математических знаний, когда-либо обнаруженных. Он лежит в основе многочисленных аспектов технологического мира, в котором мы живем, и это также очень полезно в играх для расчета расстояния между вещами. Вы можете прочитать больше об этом здесь: Как рассчитать расстояние между двумя точками с Python и веселая игра, чтобы играть Отказ

Вот пара наблюдений, которые могут помочь вам:

  • В Python для расчета квадратного корня N, мы можем использовать Math.sqrt (n)
  • Поскольку n> 0, x должен быть не менее 1.
  • С x, Y можно больше √ (n – 1)
  • Давайте предположим x, как иначе у нас были бы дубликаты решения (например, 1² + и 3² +)
  • В Python в одну сторону на квадрат ряд – использовать ** 2. E.G 3 **
  • Существует полезная функция math.floor (n), что дает наибольшее целое число меньше или равно n
  • Это полезно, потому что E.G для, 1² + (√3) ² округляется будет слишком большим. Поэтому мы используем math.floor (math.sqrt (n)) как верхнее значение для x или y
  • Вы можете прочитать на вложен для петлей Чтобы помочь вам с этой проблемой
import math

def sum_of_squares(n):
    """ Returns a pair of natural numbers x, y, such that x² + y² = n """
    pass

assert sum_of_squares(10) == (1, 3) assert sum_of_squares(3) is None

Пройдите в завершение вышеуказанного кода для себя, используя свою любимую среду разработки Python. Заявления Assert – это просто простой способ проверить свой код – когда это правильно, ничего не произойдет, что это хорошо, но если утверждение не соответствует действительности, вы получите AssertionError. Если это не понятно, и вы предпочли бы не использовать Assert, вы можете удалить эти операторы и просто использовать оператор печати. Например. Печать (Sum_of_squares (10)).

Решение Python Sum 2 квадратов вызов

Нажмите ниже, чтобы один из способов решить проблему.

import math


def sum_of_squares(n):
    """
    Returns a pair of natural numbers x, y, such that x² + y² = n
    """
    max_val = math.floor(math.sqrt(n))
    for i in range(1, max_val + 1):
        for j in range(1, max_val + 1):
            if i ** 2 + j ** 2 == n:
                return (i, j)  # Returns first correct pair.
    return None    


assert sum_of_squares(10) == (1, 3)
assert sum_of_squares(3) is None

# for i in range(1, 201):
    # print(sum_of_squares(i))    

Я надеюсь, что вы обнаружили, что это интересный вызов для кодирования Python. Все время, которое вы проводите думая, как решить такие проблемы с тем, чтобы сделать вас лучшим программистом Python. Счастливые вычисления.