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
5420
Нов-ск
temp03 в сообщении #728936 писал(а):
неинтересно. Гораздо интереснее чё-нить типа: прямоугольный треугольник с целыми сторонами, сумма катетов которого есть квадрат целого числа.
Такой треугольник получается из любого прямоугольного треугольника с целыми сторонами. В чем гораздо больший интерес?

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


26/08/11
2066
Даже с условием взаимной простоты $(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 ] 

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



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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