Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 27.09.2023
Сообщений: 15

Получить N троек чисел Пифагора

27.09.2023, 09:54. Показов 1105. Ответов 11

Студворк — интернет-сервис помощи студентам
Задание. Решите задачу индивидуального варианта двумя
способами: итерацией и рекурсией.
Получить N троек чисел
Пифагора (натуральные числа
a, b и c называются числами
Пифагора, если выполняется
условие a^2 + b^2 = c^2. Срочно, помогите решить.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.09.2023, 09:54
Ответы с готовыми решениями:

Найти N количество «троек Пифагора»
Найти N количество «троек Пифагора». На python.

Найдите количество троек чисел
Вам дан массив из целых неотрицательных чисел a1, a2, . . . an. Найдите количество троек чисел 1 <= i < j < k <= n, таких что...

Определите количество уникальных троек чисел
Последовательность чисел вводится с клавиатуры.Тройка идущих подряд чисел последовательности называется уникальной, если только второе из...

11
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
27.09.2023, 12:04
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
from math import isqrt, sqrt
 
def fun(n):
    for i in range(1,1000):
        for j in range(i+1, 1000):
            a = i*i + j*j
            if isqrt(a) == sqrt(a):
                print(i, j, isqrt(a))
                n -= 1
                if not n:
                    return
 
n = int(input('n = '))
fun(n)
Рекурсивно (но здесь не получается умноженных троек, т.е. вида 3,4,5 -> 6,8,10 -> 9,12,15):
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
from heapq import heappush, heappop
 
def fun(n):
    def t1(a,b,c):
        return a-2*b+2*c, 2*a-b+2*c, 2*a-2*b+3*c
 
    def t2(a,b,c):
        return a+2*b+2*c, 2*a+b+2*c, 2*a+2*b+3*c
 
    def t3(a,b,c):
        return -a+2*b+2*c, -2*a+b+2*c, -2*a+2*b+3*c
 
    res = []
    q = []
    heappush(q, [3,4,5])
 
    while len(res) < n:
        res.append(heappop(q))
        heappush(q, sorted(t1(*res[-1])))
        heappush(q, sorted(t2(*res[-1])))
        heappush(q, sorted(t3(*res[-1])))
    return res[:n]
 
n = int(input('n = '))
print(*fun(n))
1
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
27.09.2023, 20:00
Вот так правильнее:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
from heapq import heappush, heappop
 
def fun(n):
    def t1(a, b, c):
        return a-2*b+2*c, 2*a-b+2*c, 2*a-2*b+3*c
 
    def t2(a, b, c):
        return a+2*b+2*c, 2*a+b+2*c, 2*a+2*b+3*c
 
    def t3(a, b, c):
        return -a+2*b+2*c, -2*a+b+2*c, -2*a+2*b+3*c
 
    res = []
    q = []
    heappush(q, [3, 4, 5])
 
    while len(res) < n:
        res.append(heappop(q))
        heappush(q, sorted(t1(*res[-1])))
        heappush(q, sorted(t2(*res[-1])))
        heappush(q, sorted(t3(*res[-1])))
    return res
 
n = int(input('n = '))
print(*fun(n))
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
27.09.2023, 21:38
Цитата Сообщение от idealist Посмотреть сообщение
Рекурсивно
и где здесь рекурсия?
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
27.09.2023, 22:17
А, да, пардон, с этим термином я тут погорячился!
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
27.09.2023, 22:19
ну если по этим формулам:
Python
1
2
3
4
5
6
7
8
def foo(n, a=3, b=4, c=5):
    print(a, b, c)
    if n == 1:
        return
    foo(n - 1, a - 2 * b + 2 * c, 2 * a - b + 2 * c, 2 * a - 2 * b + 3 * c)
 
 
foo(10)
1
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
28.09.2023, 05:31
Ну, чтобы все три формулы использовать, то так примерно:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def foo(n, res, a=3, b=4, c=5):
    res.append(sorted([a, b, c]))
    if len(res) < n:
        A = 2*a + 2*b + 2*c
        L = A - 4*b
        foo(n, res, L-a, L+b, L+c)
        L = A
        foo(n, res, L-a, L-b, L+c)
        L = A - 4*a
        foo(n, res, L+a, L-b, L+c)
 
n = int(input('n = '))
res = []
foo(n, res)
print(*sorted(res)[:n])
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,707
Записей в блоге: 14
28.09.2023, 09:19
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
def isqrt(n):
    if n<=1:
        return n,n    
    a=n//2
    while True:
        b=(a+(n//a))//2
        if abs(a-b)<1 or b>a:
            return a,b
        a=b
 
def pyth_i(n):   # n троек итерационно
    res=[]
    a=1
    b=2
    count=0
    while True:
        if a > b:
            b+=1
            a=1
        c=a*a+b*b
        u1,u2=isqrt(c)
        if u1*u2==c:
            res.append((a,b,u1))
            count+=1
            if count == n:
                return res
        a+=1
        
def pyth_r(n,a=1,b=2,res=[]):  # n троек рекурсивно
    if n==0:
        return res
    if a>b:
        return pyth_r(n,1,b+1,res)
    c=a*a+b*b
    u1,u2=isqrt(c)
    if u1*u2==c:
        return pyth_r(n-1,a+1,b,res+[(a,b,u1)])
    else:
        return pyth_r(n,a+1,b,res)
        
        
print(pyth_i(20))
print(pyth_r(20))
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
28.09.2023, 10:13
Что ж все так сложно.
Python
1
2
3
N = int(input('N ->'))
for i in range(1, N+1):
    print(3*i, 4*i, 5*i)
Python
1
2
3
4
5
6
7
def get_pythagor(N, res=[]):
    if not N:
        return res
    return get_pythagor(N-1, res + [(3*N, 4*N, 5*N)])
 
N = int(input('N ->'))
print(*get_pythagor(N), sep='\n')
1
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
28.09.2023, 10:32
Red white socks, ))) я думал, что n первых троек. А вы думаете любых?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,707
Записей в блоге: 14
28.09.2023, 10:33
Red white socks, но ведь так получатся не все тройки... Хотя в условии этого и не требуется!
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
28.09.2023, 10:37
Цитата Сообщение от Catstail Посмотреть сообщение
но ведь так получатся не все тройки...

Не по теме:

боюсь, что все-все получить довольно затруднительно))

1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.09.2023, 10:37
Помогаю со студенческими работами здесь

Сформировать массив из случайных целых чисел от 0 до 9 , в котором количество единиц от 3 до 5 и двоек больше троек
Я новичок, помогите решить задачу. Желательно так, чтобы была понятна. Сформировать массив из случайных целых чисел от 0 до 9 , в котором...

Данная тройка натуральных чисел а, b, с является тройкой Пифагора, т.е. с^2= а ^2+ b ^2
не могу понять, можете помочь, желательно с объяснениями Составить программу, печатающую значение true, если высказывание вашего...

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

Задача с нахождением троек Пифагора с использованием рекурсии
Дано натуральное число N ≤ 100. Найти все тройки натуральных чисел a, b и с, не превосходящих N, являющиеся тройками Пифагора, то есть...

Дано целое число N и набор из N целых чисел. Определите количество двоек и троек в записи этих чисел
Это нужно с помощью массива делать и с for? Как реализовать этот код?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru