2014 dxdy logo

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

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


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 Re: Функция Эйлера.
Сообщение21.07.2016, 09:27 
Заслуженный участник
Аватара пользователя


19/12/10
1546
Sonic86 в сообщении #1139126 писал(а):
В принципе можно обойтись:
Код:
for(n=1;n!=100500a^2;++n){
  if(varphi(n)==a){
    AddSolution(n);
  }
}


:lol:
Не, не, код не верный. Должно быть так:

Используется синтаксис C++
for(int n=1;n!=100500*a*a;++n){
  if(varphi(n)==a){
    AddSolution(n);
  }
}
:wink:

 Профиль  
                  
 
 Re: Функция Эйлера.
Сообщение21.07.2016, 09:37 


23/01/07
3421
Новосибирск
Sonic86 в сообщении #1139126 писал(а):
Т.е. если $p$ - максимальный простой делитель $a$, то $p|n$, и тогда $p-1|a$. Перебирая простые $b$ находим $b$ такое, то $b-1 \nmid a$, тогда $b\perp n$. Потом можно вычислить 2 таких $b$ и вычислить $\gcd$.

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

 Профиль  
                  
 
 Re: Функция Эйлера.
Сообщение21.07.2016, 14:52 


11/06/16
191
venco в сообщении #1139102 писал(а):
$n$ должно быть делителем $2936=2^3\cdot 367$, ни один делитель не подходит.


Спасибо, но почему $n$ обязано быть делителем $2936$?

 Профиль  
                  
 
 Re: Функция Эйлера.
Сообщение21.07.2016, 21:30 
Заслуженный участник


08/04/08
8556
PWT в сообщении #1139197 писал(а):
Спасибо, но почему $n$ обязано быть делителем $2936$?
Вы теорему Эйлера о фи-функции знаете? погуглите. А потом то, что я писал в шутку - через $\gcd$.

В случае $a=122$ Вам проще заметить, то $61|122\Rightarrow 61|n\Rightarrow$ решений нет.

 Профиль  
                  
 
 Re: Функция Эйлера.
Сообщение21.07.2016, 22:13 
Заслуженный участник


04/05/09
4584
Sonic86 в сообщении #1139356 писал(а):
В случае $a=122$ Вам проще заметить, то $61|122\Rightarrow 61|n\Rightarrow$ решений нет.
Это не всё. Надо ещё проверить что делитель 61 не может получиться из другого, т.е. ни один делитель 122 кратный 61 не является простым без единицы. В данном случае $122+1=123$ не является простым.

 Профиль  
                  
 
 Re: Функция Эйлера.
Сообщение21.07.2016, 22:17 
Заслуженный участник


08/04/08
8556
venco в сообщении #1139365 писал(а):
Sonic86 в сообщении #1139356 писал(а):
В случае $a=122$ Вам проще заметить, то $61|122\Rightarrow 61|n\Rightarrow$ решений нет.
Это не всё. Надо ещё проверить что делитель 61 не может получиться из другого, т.е. ни один делитель 122 кратный 61 не является простым без единицы. В данном случае $122+1=123$ не является простым.
Да, спасибо. Значит не все так просто.

 Профиль  
                  
 
 Re: Функция Эйлера.
Сообщение22.07.2016, 01:17 


11/06/16
191
Спасибо, кажется начал что-то понимать, вспомнив теорему Эйлера.

Попробую решить $\varphi(n)=98$.

$\operatorname{gcd}(3;98)=\operatorname{gcd}(5;98)=1$

$\operatorname{gcd}(3^{98}-1;5^{98}-1)=8$

Так как $8$ не делится на $98$, значит таких $n$ нет... Верно?

Из таблицы википедии возьму тогда $60$.

Попробую решить $\varphi(n)=60$.

$\operatorname{gcd}(7;60)=\operatorname{gcd}(11;60)=1$

$\operatorname{gcd}(7^{60}-1;11^{60}-1)=1681477200$

Так как $1681477200$ делится на $60$, тут не нашли противоречия.

Значит нужно искать такие $n$. Только перебором тогда?

(Оффтоп)

Знаю из википедии, что должны подойти, как минимум $n=99$, $n=61$

 Профиль  
                  
 
 Re: Функция Эйлера.
Сообщение22.07.2016, 09:12 


23/01/07
3421
Новосибирск

(Оффтоп)

PWT в сообщении #1139410 писал(а):
Знаю из википедии, что должны подойти, как минимум $n=99$, $n=61$

А также $77, 124$ и все удвоенные нечетные.

 Профиль  
                  
 
 Re: Функция Эйлера.
Сообщение22.07.2016, 11:07 
Заслуженный участник
Аватара пользователя


19/12/10
1546
Уравнение $\varphi(n)=a$ может иметь следующие решения:
  • если $a=1,$ то 1 — решение;
  • если число $(a+1)$ простое, то $(a+1)$ — решение;
  • пусть $p$ наибольший простой делитель числа $a,$ тогда если $a=p^m(p-1)$ для некоторого $m,$ то $p^{m+1}$ — решение;
  • пусть $(a_1,a_2)$ пара чётных чисел таких, что $a=a_1\cdot a_2$ и пусть $n_1$ решение уравнения $\varphi(n_1)=a_1,$ а $n_2$ пусть решение уравнения $\varphi(n_2)=a_2$ взаимно простое с $n_1$ (то есть $\gcd(n_1,n_2)=1$), тогда $n_1\cdot n_2$ — решение исходного уравнения;
  • если $n$ есть нечётное решение, то $2n$ — решение.
Других решений уравнение $\varphi(n)=a$ не имеет.

Пример 1. Решить $\varphi(n)=122.$
  • Так как число $122+1=123$ не простое, то оно — не решение.
  • Так как $61$ есть наибольший простой делитель числа $122$, но $61\cdot60\ne122,$ то $61\cdot60=3660$ — не решение.
  • Так как число $122$ не возможно представить в виде произведения пары чётных чисел, то уравнение решений не имеет.

Пример 2. Решить $\varphi(n)=4.$
  • Так как число $4+1=5$ простое, то оно решение.
  • Так как число $2$ есть наибольший простой делитель $4$ и $4=2^2(2-1),$ то $2^3=8$ — решение.
  • Так как $4=2\cdot2$ и $\{3,4,6\}$ суть решения $\varphi(n)=2,$ то $3\cdot4=12$ — решение.
  • Так как $5$ есть нечётное решение, то $2\cdot5=10$ — решение.

 Профиль  
                  
 
 Re: Функция Эйлера.
Сообщение22.07.2016, 12:16 
Заслуженный участник
Аватара пользователя


19/12/10
1546
Пример 3. Решить $\varphi(n)=60.$
  • Так как $60+1=61$ простое, то $61$ — решение.
  • Так как $5$ есть наибольший простой делитель числа $60,$ но $60\ne5^m(5-1)$ ни для какого $m,$ то решения вида $5^{m+1}$ нет.
  • Так как $60=2\cdot30=6\cdot10,$ то потребуются решения уравнений:
    • $\varphi(n)=2$
    • $\varphi(n)=6;$
    • $\varphi(n)=10;$
    • $\varphi(n)=30.$
    Применяя этот алгоритм рекурсивно, найдём:
    • $\varphi^{-1}(2)=\{3,4,6\};$
    • $\varphi^{-1}(6)=\{7,9,14,18\};$
    • $\varphi^{-1}(10)=\{11,22\};$
    • $\varphi^{-1}(30)=\{31,62\}.$
    Из чего заключаем, что решениями являются также $3\cdot31=93,$ $3\cdot62=186,$ $4\cdot31=124,$ $6\cdot31=186,$ $7\cdot11=77,$ $7\cdot22=154,$ $9\cdot11=99,$ $9\cdot22=198,$ $14\cdot11=154,$ $18\cdot11=198.$
  • Так как $\{61,77,93,99\}$ суть нечётные решения, то $\{122,154,186,198\}$ тоже решения.

Объединив все эти решения, получим $\varphi^{-1}(60)=\{61,77,93,99,122,124,154,186,198\}.$

 Профиль  
                  
 
 Re: Функция Эйлера.
Сообщение23.07.2016, 00:56 


11/06/16
191
whitefox в сообщении #1139449 писал(а):
Уравнение $\varphi(n)=a$ может иметь следующие решения:
  • если число $(a+1)$ простое, то $(a+1)$ — решение;
  • пусть $p$ наибольший простой делитель числа $a,$ тогда если $a=p^m(p-1)$ для некоторого $m,$ то $p^{m+1}$ — решение;
  • пусть $(a_1,a_2)$ пара чётных чисел таких, что $a=a_1\cdot a_2$ и пусть $n_1$ решение уравнения $\varphi(n_1)=a_1,$ а $n_2$ пусть решение уравнения $\varphi(n_2)=a_2$ взаимно простое с $n_1$ (то есть ), тогда $n_1\cdot n_2$ — решение исходного уравнения;
  • если $n$ есть нечётное решение, то $2n$ — решение
Других решений уравнение $\varphi(n)=a$ не имеет.

Спасибо, попробую прогнать несколько уравнений по вашему алгоритму!

Пример 4. Решить $\varphi(n)=12$
  • Так как число $12+1=13$ простое, то оно решение.
  • Так как число $3$ есть наибольший простой делитель $12$ и $12=3^m(3-1),$ не выполняется ни для какого целого $m$. Или $m$ в виде логарифма подойдет?)
  • Так как $12=6\cdot2$ и $\varphi(3)=2$ и $\varphi(7)=6$ и $\gcd(3,7)=1$, то $7\cdot 3=21$ — решение исходного уравнения.
  • Так как $13,21$ есть нечётные решения, то $26,42$ — решения

Ответ: $\{13,21,26,42\}$. Правильно?

Пример 5. Решить $\varphi(n)=342$
  • Так как число $342+1=343$ составное, то этот пункт пропускаем.
  • Так как число $19$ есть наибольший простой делитель $342$ и $342=19^1(19-1),$, то $19^2=361$ -- решение.
  • Так как $a$ не делится на $4$, пропускаем представимость в виде произведения двух четных чисел.
  • Так как $361$ есть нечётное решение, то $722$ — решение

Ответ: $\{361,722\}$. Правильно?

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

 Профиль  
                  
 
 Re: Функция Эйлера.
Сообщение23.07.2016, 01:54 
Заслуженный участник


04/05/09
4584
PWT в сообщении #1139583 писал(а):
$\varphi(3)=2$
А ещё $\varphi(4)=2$.

Проверить онлайн можно здесь:
http://www.wolframalpha.com/input/?i=solve+eulerphi(n)%3D12

 Профиль  
                  
 
 Re: Функция Эйлера.
Сообщение23.07.2016, 08:45 
Заслуженный участник
Аватара пользователя


19/12/10
1546
PWT в сообщении #1139583 писал(а):
Или $m$ в виде логарифма подойдет?)
Только положительное целое.

PWT в сообщении #1139583 писал(а):
Так как $12=6\cdot2$ и $\varphi(3)=2$ и $\varphi(7)=6$ и $\gcd(3,7)=1$, то $7\cdot 3=21$ — решение исходного уравнения.
На этом шаге алгоритм нужно применить рекурсивно к решению уравнений $\varphi(n)=2$ и $\varphi(n)=6.$ Для которых получим $\varphi^{-1}(2)=\{3,4,6\}$ и $\varphi^{-1}(6)=\{7,9,14,18\}$ соответственно.

Так как $3\bot7,$ $3\bot14,$ $4\bot7,$ $4\bot9,$ $6\bot7$ (здесь $\bot$ значит "взаимнопросто"), то решениями будут $3\cdot7=21,$ $3\cdot14=42,$ $4\cdot7=28,$ $4\cdot9=36,$ $6\cdot7=42.$

PWT в сообщении #1139583 писал(а):
Ответ: $\{13,21,26,42\}$. Правильно?
Пропущено $\{28,36\}.$

PWT в сообщении #1139583 писал(а):
Вроде бы понял как прогонять по алгоритму, другое дело, что не очень понял -- из каких соображений он следует, об этом где-то написано или вы его вывели самостоятельно?)
Наверняка где-нибудь написано. А следует он из того, что:
  • $\varphi(a)\cdot\varphi(b)=\varphi(a\cdot b)$ для $a\bot b;$
  • $\varphi(p^m)=p^{m-1}(p-1)$ для $p$ простого.

 Профиль  
                  
 
 Re: Функция Эйлера.
Сообщение23.07.2016, 14:33 


11/06/16
191
Спасибо большое, разобрался!

 Профиль  
                  
 
 Re: Функция Эйлера.
Сообщение23.07.2016, 16:13 
Заслуженный участник


08/04/08
8556
Вручную еще можно считать вот так:
$\varphi(x)=\prod\limits_{k=1}^n p^{a_p-1}(p-1)=n$, тогда $p-1|n$. Можно вычислить все делители $d|n$ и проверить на простоту $d+1$ - получим список простых $L$. Тогда решение имеет вид: $x=\prod\limits_{p\in L}p^{a_p}$. Можно перебирать $p$ в порядке убывания. Для поиска показателей удобно использовать такую лемму: если $p-1|n$, то $a_p\leqslant 1+v_p(n)$. Можно также проверять простые соотношения $s\leqslant v_2(n)$ ($s$ - число различных простых делителей $n$). Но в итоге перебор все равно получается рекурсивным: как только рассматриваем случай $a_p>0$, так сразу делаем подстановку $x=xp^{a_p}$ и в итоге надо снова решать уравнение $\varphi(x)=n_1<n$.
Хотелось бы увидеть оценки скоростей разнообразных алгоритмов. С другой стороны, в умной статье, на которую я привел ссылку, написано, что список всех прообразов имеет экспоненциальную мощность в худшем случае (в среднем - полиномиальную), так что скорость работы поиска всех прообразов экспоненциальная в худшем случае по-любому.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу Пред.  1, 2

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



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

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


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

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