Регистрирайте сеРегистрирайте се

Квадратни полета?


 
   Форум за математика Форуми -> Информатика/Компютри
Предишната тема :: Следващата тема  
Автор Съобщение
OliGoFren
Начинаещ


Регистриран на: 29 May 2007
Мнения: 57

Репутация: 4.1Репутация: 4.1Репутация: 4.1Репутация: 4.1

МнениеПуснато на: Tue May 29, 2007 10:36 am    Заглавие: Квадратни полета?

Здравейте, Вие пекани програмисти и математици. Ето Ви една задачка-закачка, за поупражнение на мозъка през свободното време.

/*---------------------------------------------------------------------------------------------*/

Прасчо искал да кандидатства за работа. Кандидатстването било в няколко кръга. Поредното изпитание било решаване на тест за интелигентност. Прасчо обаче предишния ден до късно седял при Мечо Пух в дома му, където Мечо Пух го черпил с мед от неизчерпаемите си запаси. На другия ден Прасчо се успал, но в бързината да не изпусне поредния кръг от кандидатстването се подхлъзнал, паднал по стълбите, ударил си главата и получил сътресение на Прасешкия си мозък, в резултат на което възможностите му за трезво и логично мислене силно намалели. Все пак обаче той решил да не пропуска теста за интелигентност. Две от задачите, които много затруднили Прасчо, били следните:
"Да се представи израза 94+12*sqrt(10) като квадрат на число така че да няма знак "+", нито знак "-" под знак за радикал." и
"Да се представи израза 7+sqrt(50) като куб на число така че да няма знак "+", нито знак "-" под знак за радикал."
Още няколко подобни въпроса имало в теста, при които израз от вида

(a1/a2)+(b1/b2)*sqrt(c),

където a1, a2, b1, b2 и c са някакви цели числа (c - положително), трябвало да се представи или като квадрат, или като куб, така че да няма знак "+", нито знак "-" под знак за радикал.
"Еееех, да беше Мечо Пух тук сега!" - помисли си Прасчо.
Помогнете на Прасчо да се справи с теста като напишете програма, която по зададени цели числа a1, a2, b1, b2, цяло положително число c и число n=2 или n=3, да извежда на екрана целите числа p1, p2, q1, q2 и r, такива че да е изпълнено:

(a1/a2)+(b1/b2)*sqrt(c) = ((p1/p2)+(q1/q2)*sqrt(r))^n ,

ако такива числа съществуват, и да извежда съобщение "Not exist!" в случай че не съществуват.

/*---------------------------------------------------------------------------------------------*/

Бележки към условието на задачата:

1. Със sqrt(x) е означен квадратен корен от x. С x^y е означено x на степен y.
2. Всички прилики (и разлики) с действителни лица и събития са напълно случайни и непреднамерени.

/*---------------------------------------------------------------------------------------------*/

Коментар от мен:

Означавам със sqrt3(x) кубичен корен от x. Условието, че не трябва да има нито знак "+", нито знак "-" под знак за радикал, означава че не се търси тривиално решение от вида

(a1/a2)+(b1/b2)*sqrt(c) = (sqrt((p1/p2)+(q1/q2)*sqrt(r)))^2 или
(a1/a2)+(b1/b2)*sqrt(c) = (sqrt3((p1/p2)+(q1/q2)*sqrt(r)))^3 .

Определяме, че

94+12*sqrt(10) = (2+3*sqrt(10))^2 и
7+sqrt(50) = (1+sqrt(50))^3 = (1+5*sqrt(2))^3 .

С горните две формули решаваме част от проблемите на Прасчо, но не всички. За да му помогнем наистина, трябва да решим задачата в общия случай, когато числата a1, a2, b1, b2 и c се въвеждат от потребителя и не са предварително известни.
В случая очевидно става дума за теорията на квадратните полета, която е част от теорията на числата. Квадратно поле R(sqrt(d)) се дефинира като множеството от всички числа от вида

a+b*sqrt(d) ,

където a и b са рационални числа, а d е цяло рционално, което не е точен квадрат и не се дели на точен квадрат.
(Малка бележка: Някъде ги наричат "квадратни полета", другаде - "квадратични полета". Не знам кое е правилно, аз в този пост приемам да ги наричам "квадратни полета".)
В частност, когато d=-1, получаваме Гаусовото числово поле. В конкретната наша задача обаче имаме цяло положително (а не отрицателно) число под знака на квадратния радикал, което леко усложнява задачата ни.
Какво ще кажете?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Реклама







Пуснато на:     Заглавие: Реклама

Върнете се в началото
krassi_holmz
Редовен


Регистриран на: 05 Jan 2006
Мнения: 146
Местожителство: Ню Йорк, BG
Репутация: 57.9
гласове: 18

МнениеПуснато на: Sun Jun 17, 2007 9:17 am    Заглавие:

По принцип си прав - това са корени в квадратични полета. Но всичко може да се сведе до решаване на система уравнения в рационални числа:
Ако
[tex]x+y\sqrt{d}=(a+b\sqrt{d})^2=a^2+b^2d+2ab\sqrt{d}[/tex]
Оттук получаваме системата:
|[tex]x=a^2+b^2d[/tex]
|[tex]y=2ab[/tex]
И ако тя има рационални решения, то те са решения и на задачата.
Ето една примерна програма на Mathematica:
R2[x_,y_,q_]:=Reduce[x==a^2+b^2 q&&y==2 a b,{a,b},Rationals];
R3[x_,y_,q_]:=Reduce[x==a^3+3a b^2 q&&y==3a^2 b+b^3 q,{a,b},Rationals];
R[x_,y_,q_]:=R2[x,y,q]||R3[x,y,q];

Сега, примерно за първия пример 94+12*sqrt(10) пишеш
R[94,12,10]
И резултатът е (a==2&&b==3), т.е.
[tex](2+3\sqrt(10))^2=94+12\sqrt(10)[/tex]
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Покажи мнения от преди:   
   Форум за математика Форуми -> Информатика/Компютри Часовете са според зоната GMT + 2 Часа
Страница 1 от 1

 
Идете на:  
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети
Може да прикачвате файлове
Може да сваляте файлове от този форум
Copyright © 2005-2021 math10.com.