Как сделать теорему пифагора в питоне

Обновлено: 05.07.2024

триплет Пифагора-это набор из трех натуральных чисел, a, b и c, для которых а 2 + b 2 = c 2 .

например, 3 2 + 4 2 = 9 + 16 = 25 = 5 2 .

существует ровно один пифагорейский триплет, для которого a + b + c = 1000. Найдите продукт abc.

мой код как следует, я думаю, что это должно быть правильно, но сайт говорит мне, что мой ответ неправильный? Может кто-нибудь помочь мне увидеть недостатки в моей логике, пожалуйста?

Я думаю, что у вас не хватает брекетов. Отступ заставляет меня поверить, что два самых сокровенных утверждения идут вместе, но для этого вам нужны фигурные скобки.

без скобок product всегда будет содержать продукт последние значения a , b и c . (333 * 500 * 167 == 27805500).

здесь 5 решения (от медленного к быстрому):

1) тривиальная реализация - 732857 микросекунд (0,7 секунды)

2) ограничьте нижнюю границу для b & c (установите отношение порядка) -251091 микросекунд (0,2 секунды)

3) ограничьте нижние и верхние границы для b & c - 111220 микросекунд (0,1 секунды)

4) ограничьте нижние и верхние границы для b и зафиксировать значение c - 2625 микросекунд

5) Использовать ЕвклидС 213 микросекунд

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

например, посмотрите, может ли ваша программа найти 6,8,10 как триплет с суммой 24. С меньшим тестом вы можете шаг через код, чтобы увидеть, где это происходит не так.

вы можете попробовать это так:

это реализует формулу Евклида для генерации пифагорейского триплета, как объяснено здесь

обратите внимание, что в этом методе мы делаем только триплеты, поэтому нежелательные повторения уменьшаются.

Ошибка сервера в приложении '/'.

Описание: На сервере возникла ошибка приложения. Текущая пользовательская настройка ошибок для этого приложения не позволяет удаленно просматривать сведения об ошибке данного приложения (из соображений безопасности). Однако, сведения можно просматривать в браузерах, запущенных на локальном сервере.


Примечания: Отображаемую в данный момент страницу ошибок можно заменить на пользовательскую страницу ошибок, изменив атрибут "defaultRedirect" тега конфигурации приложения таким образом, чтобы он содержал URL-адрес пользовательской страницы ошибок.

Пифагорейский триплет — это набор из трех натуральных чисел a, b и c, таких что a 2 + b 2 = c 2 . При заданном ограничении сгенерируйте все пифагорейские тройки со значениями, меньшими заданного предела.

Эффективное решение может распечатать все триплеты за время O (k), где k — количество напечатанных триплетов. Идея состоит в том, чтобы использовать отношение квадратов к сумме пифагорейского триплета, т. Е. Сложение квадратов a и b равно квадрату c, мы можем записать это число в терминах m и n так, чтобы

Мы можем видеть, что a 2 + b 2 = c 2 , поэтому вместо итерации для a, b и c мы можем итерировать для m и n и генерировать эти триплеты.

Ниже приведена реализация вышеуказанной идеи:


// Функция для генерации пифагорейца
// триплеты меньше лимита


На картинке вы видите обычную таблицу умножения, которая, думаю, всем хорошо знакома.
Ничего особенного в ней нет, кроме того, что весь алгоритм ее построения сжат до одной стандартной Python’овской строки в 79 символов (см. PEP8). Кому интересно добро пожаловать под кат.

Стоит отметить, что пишу я на Python3.7. Версии младше 3.6 не подойдут из-за отсутствия поддержки f-строк, и в итоге рабочий скрипт превысит длину в 79 символов.

Как восемь строк превратились в одну

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


Сформировать значения таблицы можно, используя генераторы, а циклы оставить для распаковки списков. Минусом такого подхода оказалось большее количество строк:


Генератору можно отдать и расстановку Tab’ов (‘\t’) используя f-строки:


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


А если внести join() и ‘\n’ в генератор:


Теперь в нашем распоряжении список из строк, и его тоже можно склеить с помощью join(), избавившись тем самым от циклов:

Ну и обещанный вариант в одну строку (от print, конечно, не избавиться)


Конечно, гуру Python’а скажут “И что тут такого?”, но стоит заметить, что указанный подход не является очевидным для начинающих.

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

Итак, у меня есть набор позиционных данных, которые я получаю от заводского датчика. Он производит информацию x, y и z в метрах от известного положения lat/long. У меня есть функция, которая преобразует расстояние в метрах от lat/long, но мне нужно использовать данные x и y в функции Пифагора, чтобы определить это. Позвольте мне попытаться прояснить это на примере данных JSON, которые дает датчик.

В этой ветви вилочный погрузчик находится 18.11m вдоль и 33.38m вверх от эталона lat/long. датчик находится 2.15m высоко, и это постоянная часть информации, которая мне не нужна. Чтобы вычислить расстояние от точки отсчета, мне нужно использовать Пифагора, а затем преобразовать эти данные обратно в lat/long, чтобы мой инструмент анализа мог представить их.

Моя проблема (что касается python) заключается в том, что я не могу понять, как заставить его видеть 18.11 & 33.38 как x & y и сказать ему полностью игнорировать 2.15. Вот что у меня есть до сих пор.

Этот фрагмент сценария является частью более широкого проекта по разбору файла по машинам и людям, а также по рабочему и нерабочему времени суток.

Если бы кто-нибудь мог дать мне несколько советов о том, как заставить часть Пифагора работать, я был бы очень благодарен. Я не уверен, должен ли я определить его как функцию, но когда я набрал это, мне стало интересно, должен ли это быть цикл 'for', который использует x & y и игнорирует x.

Вся помощь очень ценится.

4 ответа

Квадрат гипотенузы прямоугольного треугольника равен сумме квадратов на двух других сторонах. Это теорема Пифагора. Функция для вычисления гипотенузы на основе длины a и b ее сторон вернет sqrt (a * a + b * b). Вопрос в том, как бы вы определили такую функцию в Scala таким образом, чтобы она могла.

Недавно я начал использовать Haskell, и у меня возникли проблемы с некоторыми основами. Я написал простую программу для возведения в квадрат переменной под названием 'square'. Теперь я пытаюсь написать программу под названием pyth, которая берет 3 переменные, вводит их все в квадрат, а затем.

Почему вы используете str() в качестве аргумента функции ? Что ты пытался сделать ?

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

distro['position'] = [18.11, 33.48, 2.15] , поэтому для первого решения все, что вам нужно сделать, это передать distro['position'][0] и distro['position'][1] :

result = pythagoras(distro['position'][0], distro['position'][1])

В качестве альтернативы (что, на мой взгляд, более элегантно), передайте список функции и попросите функцию извлечь значения, которые ее интересуют:

Решение, которое я использовал, было

Вы проверили тип данных передаваемых параметров?

Это в случае целых чисел.

Похожие вопросы:

Я делаю домашнее задание matlab и решил следующую задачу. и грейдер говорит, что это правильный ответ. Я использовал for В программе, и мы еще не проходили курс. может ли кто-нибудь предложить.

Я должен создать программу, которая использует теорему Пифагора, и я должен проверить входные данные. В псевдокоде меня попросили: get Input() 1.1 initialize check 1.2 repeat check while check =.

Квадрат гипотенузы прямоугольного треугольника равен сумме квадратов на двух других сторонах. Это теорема Пифагора. Функция для вычисления гипотенузы на основе длины a и b ее сторон вернет sqrt (a *.

Недавно я начал использовать Haskell, и у меня возникли проблемы с некоторыми основами. Я написал простую программу для возведения в квадрат переменной под названием 'square'. Теперь я пытаюсь.

Я хотел бы спросить вас об этой части программирования, все ли в порядке? задача была: Напишите псевдокод или блок-схему и код для теоремы Пифагора - для прямоугольного треугольника с тремя ребрами.

После некоторых тестов измерения задержки я понял, что мне нужно оптимизировать вычисление треугольника Пифагора, выполненное на встроенном CPU с довольно медленным FPU. Проблема в том, что если эти.

Это снова я. Я уже говорил, как сильно люблю вас, ребята? Мой профессор уговорил меня попробовать python, до сих пор я его ненавижу, но я решил попробовать. Я сделал простую программу, используя.

Я хочу написать код R для теоремы Пифагора. Теорема Пифагора гласит, что квадрат гипотенузы (сторона, противоположная прямому углу) равен сумме квадратов двух других сторон.

Привет, я новичок в java, и я пытаюсь написать код для решения теоремы Пифагора. Вот что я сделал до сих пор, однако я продолжаю получать ошибки с незаконным стартером на линии 14, а также ошибку.

Читайте также: