2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Прямоугольный треугольник с целыми сторонами
Сообщение08.05.2013, 20:56 


29/07/08
536
Сколько существует прямоугольных треугольников, стороны которых выражались бы целыми числами, причем все 9 цифр, участвующих в записи сторон, различны.

 Профиль  
                  
 
 Re: Прямоугольный треугольник с целыми сторонами
Сообщение23.05.2013, 14:44 


15/03/13
12
Побережный Александр в сообщении #721319 писал(а):
Сколько существует прямоугольных треугольников, стороны которых выражались бы целыми числами, причем все 9 цифр, участвующих в записи сторон, различны.

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

Код:

Код:
restart;
S := [seq(`minus`({seq(i, i = 0 .. 9)}, {i}), i = 0 .. 9)]: 
L := []:
for s in S do
T := combinat[permute](s):
for t in T do
a1 := t[1]: b1 := 1000*t[2]+100*t[3]+10*t[4]+t[5]: c1 := 1000*t[6]+100*t[7]+10*t[8]+t[9]:
a2 := 10*t[1]+t[2]: b2 := 100*t[3]+10*t[4]+t[5]: c2 := 1000*t[6]+100*t[7]+10*t[8]+t[9]:
a3 := 100*t[1]+10*t[2]+t[3]: b3 := 100*t[4]+10*t[5]+t[6]: c3 := 100*t[7]+10*t[8]+t[9]:
if a1^2+b1^2 = c1^2 then L := [op(L), [a1, b1, c1]] end if:
if a2^2+b2^2 = c2^2 then L := [op(L), [a2, b2, c2]] end if:
if a3^2+b3^2 = c3^2 then L := [op(L), [a3, b3, c3]] end if:
end do end do:
op({seq(convert(L[i], set), i = 1 .. nops(L))});

$\{534, 712, 890\}, \{546, 728, 910\}$

Итак, получили 2 решения.

 i  Код Maple оформил тегом code, а решения - $\TeX$ом. Пользуйтесь тегами и $\TeX$ом!

 Профиль  
                  
 
 Re: Прямоугольный треугольник с целыми сторонами
Сообщение23.05.2013, 15:33 


11/04/13
36
Цитата:
Простой перебор в Maple за одну минуту решает задачу.

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

Результат такой же.
Всего 10 треугольников с разными цифрами, и только 2 из них используют ровно 9 цифр.

 Профиль  
                  
 
 Re: Прямоугольный треугольник с целыми сторонами
Сообщение23.05.2013, 20:51 


15/03/13
12
Corwin писал(а):
А у меня простой перебор решает задачу за 1 миллисекунду. Только я перебираю треугольники, а потом проверяю цифры.

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

 Профиль  
                  
 
 Re: Прямоугольный треугольник с целыми сторонами
Сообщение24.05.2013, 09:49 


11/04/13
36
код: [ скачать ] [ спрятать ]
Используется синтаксис C#
void Main()
{
        NextPythagoreanTriple(3, 4, 5);
}

private void NextPythagoreanTriple(int a, int b, int c)
{
        var s = a.ToString() + b.ToString() + c.ToString();
        if(s.Length > 9) return;
        for(int k = 1; ; k++)
        {
                int a1 = a*k, b1 = b*k, c1 = c*k;
                var s1 = a1.ToString() + b1.ToString() + c1.ToString();
                if(s1.Length > 9) break;
                if(Check(s1)) Console.WriteLine("({0}, {1}, {2})", a1, b1, c1);
        }
        NextPythagoreanTriple(a - 2 * b + 2 * c, 2 * a - b + 2 * c, 2 * a - 2 * b + 3 * c);
        NextPythagoreanTriple(a + 2 * b + 2 * c, 2 * a + b + 2 * c, 2 * a + 2 * b + 3 * c);
        NextPythagoreanTriple(-a + 2 * b + 2 * c, -2 * a + b + 2 * c, -2 * a + 2 * b + 3 * c);
}

private bool Check(string s)
{
        if(s.Length != 9) return false;
        var cc = s.ToCharArray();
        Array.Sort(cc);
        for(int i = 1; i < cc.Length; i++) if(cc[i] == cc[i-1]) return false;
        return true;
}
 


Проще всего выполнить с помощью LinqPad (http://en.wikipedia.org/wiki/LINQPad).

 Профиль  
                  
 
 Re: Прямоугольный треугольник с целыми сторонами
Сообщение26.05.2013, 23:29 


15/03/13
12
Corwin писал(а):
Используется синтаксис C# ...

Большое спасибо! Из Вашего кода узнал о замечательных рекурсивных формулах для генерации всех примитивных пифагоровых троек, найденных Berggren и Price (подробности в http://en.wikipedia.org/wiki/Formulas_for_generating_Pythagorean_triples)

 Профиль  
                  
 
 Re: Прямоугольный треугольник с целыми сторонами
Сообщение27.05.2013, 12:07 
Заблокирован


16/06/09

1547
неинтересно. Гораздо интереснее чё-нить типа: прямоугольный треугольник с целыми сторонами, сумма катетов которого есть квадрат целого числа.

 Профиль  
                  
 
 Re: Прямоугольный треугольник с целыми сторонами
Сообщение27.05.2013, 12:26 
Заслуженный участник
Аватара пользователя


23/08/07
5500
Нов-ск
temp03 в сообщении #728936 писал(а):
неинтересно. Гораздо интереснее чё-нить типа: прямоугольный треугольник с целыми сторонами, сумма катетов которого есть квадрат целого числа.
Такой треугольник получается из любого прямоугольного треугольника с целыми сторонами. В чем гораздо больший интерес?

 Профиль  
                  
 
 Re: Прямоугольный треугольник с целыми сторонами
Сообщение27.05.2013, 12:39 


26/08/11
2108
Даже с условием взаимной простоты $(u+v)^2-2v^2=z^2$
$\\u=(p-q)^2+q^2\\
v=2pq\\
A=u^2-v^2\\
B=2uv$

Наименьший кажется $(9,40,41)$

 Профиль  
                  
 
 Re: Прямоугольный треугольник с целыми сторонами
Сообщение27.05.2013, 13:24 
Заблокирован


16/06/09

1547
не! Извиняюсь! Не только сумма катетов квадрат, но и гипотенуза квадрат

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: Gagarin1968


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group