تابع فی اویلر

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو
هزار مقدار اولیه \varphi(n)

در نظریه اعداد تابع فی اویلر یا \varphi(n) تابعی است که تعداد اعداد طبیعی کوچکتر از n که نسبت به n اول اند را میشمارد. اگر n یک عدد طبیعی مثبت باشد، آنگاه \varphi(n) برابر است با تعداد اداد طبیعی k در بازه 1 تا n به طوریکه gcd(n, k) = 1. تابع فی اویلر یک تابع ضربی است، بدین معنی که اگر دو عدد m و n نسبت به هم اول باشند آنگاه \varphi(m*n) = \varphi(m) * \varphi(n) . برای مثلا (9)φ برابر ۶ است. زیرا اعداد ۱، ۲، ۴، ۵، ۷ و ۸ نسبت به ۹ اول هستند.

تابع فی اویلر نقش کلیدی در تعریف سیستم رمزنگاری RSA دارد.

تاریخچه و نمادگذاری[ویرایش]

لئونارد اولر این تابع را در سال ۱۷۶۳ معرفی کرد. در آن زمان او هنوز نماد خاصی برای این تابع تعیین نکرده بود. بعدها اولر با مطالعه بیشتر تابع فی، حرف یونانی π را برای آن برگزید. نماد استاندارد φ بعد ها توسط گاوس استفاده شده است.

محاسبه مقدار تابع فی[ویرایش]

چندین راه برای محاسبه این فرمول وجود دارد.

فرمول ضرب اویلر[ویرایش]

بیان میکند


\varphi(n) =n \prod_{p\mid n} \left(1-\frac{1}{p}\right)

p عدد اول است به طوریکه n بر p بخش پذیر است.

تبدیل فوریه[ویرایش]

مقدار تابع فی برابر است با مقدار تبدیل فوریه گسسته ب.م.م در ۱ :

\begin{align}
  \mathcal{F} \left\{ \mathbf{x} \right\}[m] &= \sum\limits_{k=1}^n x_k \cdot e^{{-2\pi i}\frac{mk}{n}}, \mathbf{x} = \left\{ \gcd(k,n) \right \} \quad\text{for}\, k \in \left\{1 \dots n \right\} \\
                                 \varphi (n) &= \mathcal{F} \left\{ \mathbf{x} \right\}[1] = \sum\limits_{k=1}^n \gcd(k,n) e^{{-2\pi i}\frac{k}{n}}.
\end{align}

مقدار حقیقی این فرمول برابر است با:

\varphi (n)=\sum\limits_{k=1}^n \gcd(k,n) \cos {2\pi\frac{k}{n}}.

توجه کنید که برخلاف دو فرمول دیگر در این فرمول نیازی به دانستن عوامل اول n نیست. اما چون فرمول شامل محاسبه ب.م.م n و همه اعداد مثبت کمتر از n است در نهایت به تجزیه n نیاز خواهیم داشت.

جمع مقسوم علیه‌ها[ویرایش]

فرمول کلاسیک اویلر


\sum_{d\mid n}\varphi(d)=n,

این فرمول به روش‌های مختلف قابل اثبات است.

تابع زتای ریمان[ویرایش]

برای n>1 میتوان تابع فی را به عنوان یک حد تابع زتای ریمان محاسبه کرد

 \varphi(n)=n\lim\limits_{s \rightarrow 1} \zeta(s)\sum\limits_{d|n} \mu(d)(e^{1/d})^{(s-1)}

که در این فرمول

 \zeta(s) تابع زتای ریمان است،  \mu تابع موبیوس است،  e عدد نپر است، و d مقسوم علیه است.

چند مقدار تابع[ویرایش]

۹۹ مقدار اولیه این تابع در جدول و نمودار زیر قابل مشاهده است.

Graph of the first 100 values
\varphi(n) +0 +1 +2 +3 +4 +5 +6 +7 +8 +9
0+   1 1 2 2 4 2 6 4 6
10+ 4 10 4 12 6 8 8 16 6 18
20+ 8 12 10 22 8 20 12 18 12 28
30+ 8 30 16 20 16 24 12 36 18 24
40+ 16 40 12 42 20 24 22 46 16 42
50+ 20 32 24 52 18 40 24 36 28 58
60+ 16 60 30 36 32 48 20 66 32 44
70+ 24 70 24 72 36 40 36 60 24 78
80+ 32 54 40 82 24 64 42 56 40 88
90+ 24 72 44 60 46 72 32 96 42 60

خط y = n-1 یک کران بالا برای تابع است و زمانی رخ میدهد که n اول باشد.

قضیه اویلر[ویرایش]

بیان میکند: اگر n و a نسبت به هم اول باشند آنگاه

 a^{\varphi(n)} \equiv 1\mod n.\,

در حالت خاصی که n عدد اول باشد این قضیه به قضیه کوچک فرما معروف است. این قضیه از قضیه لاگرانژ نتیجه میشود.

سیستم رمزنگاری RSA بر روی همین قضیه بنا شده است: بیان میکنید که معکوس تابع a\mapsto a^d \mod n در واقع همان تابع b\mapsto b^e \mod n است که e معکوس ضربی d به پیمانه \varphi(n) است.

دیگر فرمول های مرتبط با \varphi(n)[ویرایش]

  • a\mid b\varphi(a)\mid\varphi(b).
  •  n \mid \varphi(a^n-1)       (a, n > 1)
  • \varphi(mn) = \varphi(m)\varphi(n)\cdot\frac{d}{\varphi(d)}       d = gcd(m, n).
  • 
\varphi(2m) = 
\begin{cases}
2\varphi(m) &\text{ if } m \text{ is even} \\
\varphi(m)   &\text{ if } m \text{ is odd}
\end{cases}
  • \;\varphi\left(n^m\right) = n^{m-1}\varphi(n).
  • \varphi(\mathrm{lcm}(m,n))\cdot\varphi(\mathrm{gcd}(m,n)) = \varphi(m)\cdot\varphi(n).
  • \sum_{d \mid n} \frac{\mu^2(d)}{\varphi(d)} = \frac{n}{\varphi(n)}
  • \sum_{1\le k\le n \atop (k,n)=1}\!\!k = \frac{1}{2}n\varphi(n)\text{ for }n>1
  • \sum_{k=1}^n\varphi(k) = \frac{1}{2}\left(1+ \sum_{k=1}^n \mu(k)\left\lfloor\frac{n}{k}\right\rfloor^2\right)
  • \sum_{k=1}^n\frac{\varphi(k)}{k} = \sum_{k=1}^n\frac{\mu(k)}{k}\left\lfloor\frac{n}{k}\right\rfloor=\frac6{\pi^2}n+\mathcal{O}\left((\log n)^{2/3}(\log\log n)^{4/3}\right)
  • \sum_{k=1}^n\frac{k}{\varphi(k)} = \frac{315\zeta(3)}{2\pi^4}n-\frac{\log n}2+\mathcal{O}\left((\log n)^{2/3}\right)

نسبت طلایی[ویرایش]

اشنایدر دو رابطه پیدا کرد که نسبت طلایی و تابع فی و تابع موبیوس را به هم مرتبط میکرد. در فرمول‌های زیر 
\phi = \frac{1+\sqrt{5}}{2}= 1.618\dots
نسبت طلایی است.

این روابط به صورت زیر هستند: 
\phi=-\sum_{k=1}^\infty\frac{\varphi(k)}{k}\log\left(1-\frac{1}{\phi^k}\right)
و


\frac{1}{\phi}=-\sum_{k=1}^\infty\frac{\mu(k)}{k}\log\left(1-\frac{1}{\phi^k}\right).

از کم کردن این دو نتیجه میشود


\sum_{k=1}^\infty\frac{\mu(k)-\varphi(k)}{k}\log\left(1-\frac{1}{\phi^k}\right)=1.

با اعمال تابع نمایی به هر دو طرف رابطه به یک رابطه برای عدد نپر میرسیم

e= \prod_{k=1}^{\infty} \left(1-\frac{1}{\phi^k}\right)^\frac{\mu(k)-\varphi(k)}{k}.

اثبات بر پایه دو فرمول زیر است:


\sum_{k=1}^\infty\frac{\varphi(k)}{k}(-\log(1-x^k))=\frac{x}{1-x}
    and     
\sum_{k=1}^\infty\frac{\mu(k)}{k}(-\log(1-x^k))=x, 
   

توابع مولد[ویرایش]

سری دیریکله برای تابع فی را میتوان بر حسب جملات تابع زتای ریمان به صورت زیر نوشت

\sum_{n=1}^\infty \frac{\varphi(n)}{n^s}=\frac{\zeta(s-1)}{\zeta(s)}.

همچنین تابع مولد سری لامبرت به صورت زیر است

\sum_{n=1}^{\infty} \frac{\varphi(n) q^n}{1-q^n}= \frac{q}{(1-q)^2}

که در ان اندازه q کمتر از ۱ است. هر دو روابط بالا با استفاده ضرب سری‌های پایه و با استفاده از فرمول‌های محاسبه تابع فی قابل اثبات هستند.

نسبت دو جمله متوالی[ویرایش]

در سال ۱۹۵۰ سومایاجولو اثبات کرد


\lim\inf \frac{\varphi(n+1)}{\varphi(n)}= 0

و


\lim\sup \frac{\varphi(n+1)}{\varphi(n)}= \infty.

کاربرد[ویرایش]

رمزنگاری RSA[ویرایش]

در سیستم RSA ابتدا دو عدد اول بزرگ p و q را انتخاب میکنیم. سپس مقادیر n=pq و k=\varphi(n) را محاسبه میکنیم. و دوعدد e و d را پیدا میکنیم به طوریکه ed به پیمانه k برابر ۱ باشد. n و e به عنوان کلید عمومی اعلان میشوند و d به عنوان کلید خصوصی مخفی نگاه داشته میشود.

یک پیام مانند عدد مثبت m به صورت S = me mod n رمزگذاری میشود.

برای رمزگشایی مقدار t = Sd mod n محاسبه میشود. قضیه اویلر نشان میدهد که اگر t کمتر از n باشد آنگاه t=m.

سیستم RSA به خطر خواهد افتاد اگر بتوانیم عدد n را تجزیه کنیم و یا بتوانیم مقدار تابع فی را بدون تجزیه n بدست بیاوریم.

مساله‌های حل نشده[ویرایش]

حدس لیمر[ویرایش]

اگر p اول باشد انگاه \varphi(p)=p-1. لیمر در سال ۱۹۳۲ سوال زیر را مطرح کرد:

آیا عدد مرکب n وجود دارد به طوریکه \varphi(n)|n-1؟

در سال ۱۹۳۳ لیمر اثبات کرد که اگر n وجود داشته باشد آنگاه حتما باید فرد باشد و باید حداقل ۷ عامل اول داشته باشد. در سال ۱۹۸۰ کوهن و هاگیس اثبات کردند که n>1020 و باید حداقل ۱۴ عامل اول داشته باشد. بعد ها هاگیس نشان داد که اگر n بر ۳ بخش پذیر باشد آنگاه n>101937042 و باید حداقل ۲۹۸۸۴۷ عامل اول داشته باشد.

حدس کارمایکل[ویرایش]

حدس: هیچ عددی مانند n وجود ندارد به طوریکه برای هر عدد دیگر مانند m داشته باشیم \varphi(n)!=\varphi(m). اگر یک مثال نقض برای این گزاره پیدا شود آنگاه میتوان نشان داد که بی نهایت مثال نقض برای این گزاره وجود دارد. میتوان نشان داد که کوچکترین مثال نقض برای این گزاره در مبنای ۱۰ بیش از ۱۰ میلیارد رقم دارد.

جستارهای وابسته[ویرایش]