حدس کولاتز

حدس کولاتز یکی از حدس‌های حل نشده در ریاضیات است. این حدس به افتخار لوتار کولاتز، که این موضوع را در سال۱۹۳۷ مطرح کرد، حدس کولاتز نام گرفت. این حدس همچنین به عنوان حدس ۳n+۱ نیز شناخته می‌شود. این گونه حدس‌ها می‌پرسد که آیا یک رشته خاص از اعداد، صرف نظر از این که چه عددی را به عنوان عدد اولیه انتخاب می‌کنیم، همیشه به یک صورت تمام می‌شود.
بیان مشکل
عملیات زیر را در مجموعه اعداد صحیح مثبت اختیاری در نظر بگیرید
اگر عدد زوج بود، آن را بر ۲ تقسیم کن.
اگر عدد فرد بود، آن را سه برابر کن و با ۱ جمع کن.
برای مثال، اگر عملیات روی ۳ انجام شود، نتیجه ۱۰ است و اگر روی ۲۴ اجرا شود نتیجه ۱۲ است.
اگر بخواهیم این عملیات را به صورت تابعی ریاضی نشان دهیم به صورت زیر خواهد بود:
هم اکنون با اجرا کردن این عملیات بر روی یک دنباله از اعداد به‌طور متوالی با هر عدد صحیح مثبت، و گرفتن نتیجه به عنوان ورودی مرحله بعد:
در حالی که:
حدس کولاتز به صورت زیر است:
این روند به صورت اتفاقی به عدد ۱ می‌رسد، صرف نظر از این که چه عددی به عنوان عدد اولیه انتخاب شده .
کوچکترین i که به ازای آن روند فوق ادامه می‌یابد زمان کلی ایست n نام دارد. این حدس ادعا دارد که هر عدد n یک زمان کلی ایست خوش تعریف دارد. اگر به ازای یک N خاص، عدد i به صورت بیان شده وجود نداشته باشد می‌گوییم N یک زمان کلی ایست نامحدود دارد و حدس غلط است.
اگر حدس غلط باشد می‌تواند فقط به این دلیل باشد که یک عدد شروعی وجود دارد که به دنباله خاتمه‌ای می‌دهد که ۱ شامل آن دنباله نیست. یک چنین دنباله‌ای ممکن است وارد چرخه‌ای شود که از ۱ مستثنی باشد یا این که بدون محدودیت ادامه یابد. تا به حال چنین دنباله‌ای پیدا نشده‌است.
مثال‌ها
برای نمونه، شروع از n=۶، دنباله به صورت:
۶، ۳، ۱۰، ۵، ۱۶، ۸، ۴، ۲، ۱
شروع از n=۱۱، دنباله بیشتر طول می‌کشد تا به ۱ برسد:
۱۱، ۳۴، ۱۷، ۵۲، ۲۶، ۱۳، ۴۰، ۲۰، ۱۰، ۵، ۱۶، ۸، ۴، ۲، ۱
اگر مقدار عدد شروع n=۲۷ باشد، یک دنباله ۱۱۱ قدمی به وجود می‌آید که قبل از رسیدن به ۱ از ۹۰۰۰ تجاوز می‌کند:
{ ۲۷، ۸۲، ۴۱، ۱۲۴، ۶۲، ۳۱، ۹۴، ۴۷، ۱۴۲، ۷۱، ۲۱۴، ۱۰۷، ۳۲۲، ۱۶۱، ۴۸۴، ۲۴۲، ۱۲۱، ۳۶۴، ۱۸۲، ۹۱، ۲۷۴، ۱۳۷، ۴۱۲، ۲۰۶، ۱۰۳، ۳۱۰، ۱۵۵، ۴۶۶، ۲۳۳، ۷۰۰، ۳۵۰، ۱۷۵، ۵۲۶، ۲۶۳، ۷۹۰، ۳۹۵، ۱۱۸۶، ۵۹۳، ۱۷۸۰، ۸۹۰، ۴۴۵، ۱۳۳۶، ۶۶۸، ۳۳۴، ۱۶۷، ۵۰۲، ۲۵۱، ۷۵۴، ۳۷۷، ۱۱۳۲، ۵۶۶، ۲۸۳، ۸۵۰، ۴۲۵، ۱۲۷۶، ۶۳۸، ۳۱۹، ۹۵۸، ۴۷۹، ۱۴۳۸، ۷۱۹، ۲۱۵۸، ۱۰۷۹، ۳۲۳۸، ۱۶۱۹، ۴۸۵۸، ۲۴۲۹، ۷۲۸۸، ۳۶۴۴، ۱۸۲۲، ۹۱۱، ۲۷۳۴، ۱۳۶۷، ۴۱۰۲، ۲۰۵۱، ۶۱۵۴، ۳۰۷۷، ۹۲۳۲، ۴۶۱۶، ۲۳۰۸، ۱۱۵۴، ۵۷۷، ۱۷۳۲، ۸۶۶، ۴۳۳، ۱۳۰۰، ۶۵۰، ۳۲۵، ۹۷۶، ۴۸۸، ۲۴۴، ۱۲۲، ۶۱، ۱۸۴، ۹۲، ۴۶، ۲۳، ۷۰، ۳۵، ۱۰۶، ۵۳، ۱۶۰، ۸۰، ۴۰، ۲۰، ۱۰، ۵، ۱۶، ۸، ۴، ۲، ۱
center
برنامه‌ای برای محاسبه دنباله کولاتز
یک دنباله معین کولاتز به راحتی محاسبه می‌شود، همان طور که در شبه کد زیر نمایش داده شده:
while n> ۱
show n
if n is odd
set n to 3n + ۱
else
set n to n / ۲
show n
این برنامه وقتی دنباله به ۱ می‌رسد، برای جلوگیری از چاپ چرخه بی‌پایان ۴و۲و۱، متوقف می‌شود.
اگر حدس کولاتز درست باشد، این برنامه صرف نظر از عدد ورودی همیشه متوقف می‌شود.
اثبات استدلال
هرچند که این حدس هنوز اثبات نشده‌است، ولی اکثر ریاضیدانان که این مشکل را بررسی کرده‌اند، خود به خود اعتقاد دارند که این حدس درست است.
در این قسمت دو دلیل برای این انتظار درستی بیان می‌کنیم:
مدارک آزمایشی
این حدس توسط رایانه برای تمام صحیح مثبت تا ۱۰ × ۲ ۵۸ ≈ ۲٫۸۸ امتحان شده‌است.
با تعجب باید گفته شود که این گونه مقید کردن‌ها توسط رایانه ارزش مدرکی بسیار محدودی دارند. چندین حدس وجود دارند که مثال نقضشان به‌طور استثنایی مقداری بسیار بزرگ است.(مانند حدس پولیا، حدس مرتن یا عدد اسکیوویز)
همچنین این موضوع که، {۴،۲،۱ تنها چرخه با دوره کمتر از ۳۵۴۰۰ است، روشن شده‌است.
مدارک احتمالی
اگر کسی تنها اعداد فرد تولید شده در دنباله کولاتز را در نظر بگیرد، آنگاه کسی می‌تواند استدلال کند که در حالت میانگین(در حالت خاص میانگین هندسی قسمتها) عدد فرد بعدی باید 3⁄4قبلی باشد، که اظهار می‌کند این دسته اعداد باید با ترتیبی طولانی کاهش یابند.(اگرچه این مدرکی علیه چرخه‌ها نیست، فقط علیه واگرایی است)
دیدگاه‌های دیگر درباره موضوع
در حالت معکوس
دیدگاه دیگری برای اثبات این حدس به کار می‌رود، که روش رشد از بالا به پایین را در نظر می‌گیرد که گراف کولاتز نام دارد.
گراف کولاتز گرافی است که با رابطه معکوس زیر تعریف می‌شود:
بنابراین به جای این که ثابت کنیم همه اعداد طبیعی به‌طور اتفاقی به ۱ می‌رسند، می‌توانیم ثابت کنیم که ۱ به تمام اعداد طبیعی سوق داده می‌شود. برای تمام اعداد صحیح
همچنین، رابطه معکوس، به جز حلقه ۱و۲و۴، یک درخت است(وارون حلقه ۱و۴و۲ یک تابع بدون تغییر است که در عبارت مشکل بالا مطرح شده‌است). وقتی رابطه ۳n+۱ در تابع (f(n، با جانشینی رایج «میان بر» با رابطه ۳n + ۱)/۲) جا به جا شود(بهینه سازی زیر را ببینید)، گراف کولاتز با رابطه وارون زیر تعریف می‌شود:
این رابطه معکوس، به جز حلقه ۱-۲، به شکل یک درخت در می‌آید (معکوس حلقه ۱-۲در تابع (f(n، همانطور که نشان داده شد، در بالا بازبینی شده‌است)
به عنوان اعداد گویا
اعداد طبیعی می‌توانند با به‌کارگیری روشی مشخص، به اعداد گویا تبدیل شوند. براای به دست آوردن مدل گویا، بزرگترین عددتوان ۲ که کمتر مساوی عدد اصلی است پیدا کنیدو آن را به عنوان مخرج در نظر بگیرید. سپس آن را از عدد اصلی کم کنید و به عنوان صورت در نظر بگیرید (۱۵/۵۱۲→۵۲۷). برای به دست آوردن مدل طبیعی عدد صورت و مخرج کسر را با هم جمع کنید (۵۱۱→ ۲۵۵/۲۵۶).
حدس کولاتز می‌گوید که صورت سرانجام برابر صفر می‌شود. تابع کولاتز به صورت زیر تغییر می‌کند:
f(n, d) = \begin{cases (3n + d + 1)/2d - \mbox{if 3n + d + 1
R, so temporarily reverse
tt = "".join(reversed(ss))
carry = ۱ # preset carry (the ۱ of ۳n+۱)
answer = "" # initialize answer
for i,j in enumerate(t): # walk through operands one char at a time
the_input = carry + j + tti # assemble input from previous carry - two operands
the_sum = sum_ttthe_input # look up sum out in sum Truth Table
carry = carry_ttthe_input # look up carry out in carry Truth Table
answer = answer + the_sum # append sum to answer (carry used on next iteration)
final_answer = "".join(reversed(answer)) # un-reverse answer
if final_answer۰==۰: # if the last pad caharacter didnt receive a carry,
final_answer = final_answer # …get rid of it
print final_answer # show result before stripping LS ۰s
else: # its even
final_answer = s
m = re.search((. *۱)(۰*$),final_answer) # remove all LS ۰s in one fell swoop
s = "".join(m.groups()۰) # reassemble answer to do next iteration
print s
def base_۲(n):
while n>۱:
f = gmpy.scan۱(n,۰) # find position of LS ۱-bit
if f>۰: # its even
print gmpy.digits(n,۲) # print n in base ۲
n = n>> f # remove all LS ۰s in one fell swoop
else: # its odd
print gmpy.digits(n,۲) # print n in base ۲
n = (n <<۱) + n + ۱ # multiply by ۳ and add ۱
print gmpy.digits(n,۲) # print n in base ۲
# main
print test of abstract machine:
print
abstract_machine(۱۱۱)
print
print
print test of base ۲:
print
base_۲(۷)
## test of abstract machine:
## ۱۱۱
## ۱۰۱۱۰
## ۱۰۱۱
## ۱۰۰۰۱۰
## ۱۰۰۰۱
## ۱۱۰۱۰۰
## ۱۱۰۱
## ۱۰۱۰۰۰
## ۱۰۱
## ۱۰۰۰۰
## ۱
## test of base ۲:
## ۱۱۱
## ۱۰۱۱۰
## ۱۰۱۱
## ۱۰۰۰۱۰
## ۱۰۰۰۱
## ۱۱۰۱۰۰
## ۱۱۰۱
## ۱۰۱۰۰۰
## ۱۰۱
## ۱۰۰۰۰
## ۱
به عنوان یک تابع زوج
برای این قسمت تابع کولاتز را که اندکی تغییر کرده را در نظر بگیرید:
ما مجوز ایجاد این تغییر را داریم زیرا وقتی n فرد است ۳n+۱ همیشه زوج است. اگر (…)Pزوجیت یک عدد باشد، به صورتی که P(۲n) = ۰ و P(۲n + ۱) = ۱. پس ما می‌توانیم دنباله زوجیت کولاتز را برای یک عدد n به صورت (p i = P(a i که a ۰ = n و(a i+۱ = f(a i تعریف می‌کنیم.
استفاده از این شکل (f(n می‌تواند نشان دهد که دنباله زوجیت برای دو عدد m,n در k دوره اول مساوی است اگر و تنها اگر m,n به پیمانه k ۲برابر باشند. این موضوع به این اشاره دارد که هر عدد به‌طور خاص با دنباله زوجیت خود شناخته می‌شود و علاوه بر این اگر حلقه‌های کولاتز متعددی وجود داشت، حلقه زوجیت متناظر با آن‌ها نیز باید متفاوت باشد.
اثبات این موضوع بسیار ساده‌است، می‌توان به صورت شهودی و بسیار ساده مشاهده کرد که اعمال f تابع ،k بار بر عددa ۲ k +b عدد a ۳ c +d را نتیجه خواهد داد، که d نتیجه اعمال f تابع ،k بار بر عدد b است و c عددی است که نشان می‌دهد چه تعداد عدد فرد در طی این دنباله به دست آمده‌است بنابراین زوجیت k عدد اول به کلی با b معین می‌شود و زوجیت عدد k+۱ام، اگر آخرین عدد پرمعنیa تغییر کند، تغییر خواهد کرد.
حدس کولاتز را می‌توان به این صورت بیان کرد که، زوجیت دنباله کولاتز برای هر عدد نهایتا وارد حلقه ۰ → ۱ → ۰ می‌شود.
مانند یک سیستم برچسب
برای تابع کولاتز به فرم:
دنباله‌های کولاتز توسط سیستم بسیار ساده ۲-برچسبی که قانون حاصل جمع آن به صورت زیر است محاسبه می‌شوند:
و به صورتی که عدد صحیح مثبت n یک رشته nتایی از aها بیان شده‌است، با بیان این موضوع که عملیات برچسب روی هر کلمه‌ای که طولش از ۲ کمتر است می‌ایستد.
حدس کولاتز را می‌توان به این صورت بیان کرد که، این سیستم برچسب گذاری، با یک رشته دلخواه کراندار از aها به عنوان عدد اولیه، در پایان می‌ایستد.
بسط در دامنه‌های بزرگتر
تکرار روی تمام اعداد صحیح:
برای هر عدد صحیح، نه فقط اعداد صحیح مثبت، ما آن را روی (f(n می‌نگاریم که:
*اگر n زوج f(n) = ۳n + ۱;
*اگر n فرد f(n) = n/۲.
بطور جالب توجه مشاهده می‌شود که در این حالت تنها پنج حلقه داریم، که به نظر می‌رسد که تمام اعداد نهایتا مشمول این تکرار می‌شوند. این ۵ حلقه در پایین نشان داده شده‌است.
برای ذخیره گامها، ما فقط اعداد فرد را در حلقه یادداشت می‌کنیم (به جز حلقه کوچک {۰). هر عدد فرد n، وقتی تابع f مکررا اعمال می‌شود به عدد فرد بعدی خواهد رسید در:
(بزرگترین عدد توان دو که۳n+۱ را عاد می‌کند)/۳n+۱
هر حلقه با اولین عضو کمترین مقدار مطلقش فهرست شده.
ما هر حلقه را با اندازه حلقه کامل دنبال می‌کنیم (داخل پرانتز):شماره اعضا، زوج یا فرد، به حلقه متعلق است که بدون تکرار محاسبه شده‌است.
a) ۱ → ۱ (size ۳)
b) ۰ → ۰ (size ۱)
c) -۱ → -۱ (size ۲)
d) -۵ → -۷ → -۵ (size ۵)
e) -۱۷ → -۲۵ → -۳۷ → -۵۵ → -۴۱ → -۶۱ → -۹۱ → -۱۷ (size ۱۸)
در اینجا حدس کولاتز تعمیم یافته را بیان کردیم به این نظر که هر عدد صحیح، در تکرار توسط f، در پایان وارد یکی از حلقه‌های a,b،c,d،e می‌شود.
تکرار روی اعداد گویا با مخرج زوج:
نگاشت استاندارد کولاتز را می‌توان به اعداد گویا بسط داد (چه منفی چه مثبت) که مخرج فرد دارند، زمانی که در ساده‌ترین حالت نوشته می‌شوند. زوج یا فرد بودن عدد با توجه به این تعیین می‌شود که صورت زوج است یا فرد.
دنباله‌های زوجیت همانطور که در بالا تعریف شد دیگر برای کسرها منحصربه‌فرد نیستند، هر چند می‌توان نشان داد هر حلقه زوجیت ممکن یک دنباله زوجیت برای دقیقا یک کسر است:اگر یک حلقه دارای طول n و شامل اعداد فرد دقیقا m تا به صورت
k ۰ , …, k m-۱ ، آنگاه کسر منحصربه‌فرد که حلقه زوجیت را به وجود می‌آورد برابر:
برای مثال، حلقه زوجیت (۱ ۰ ۱ ۱ ۰ ۰ ۱) دارای طول ۷ و ۴ عدد فرد به صورت ۰،۲،۳ است و کسر منحصربه‌فرد که حلقه زوجیت را تولید می‌کند برابر:
حلقه کامل موجود به صورت:
۱۵۱/۴۷ → ۸۵/۴۷ → ۱۷۰/۴۷ → ۳۴۰/۴۷ → ۲۱۱/۴۷ → ۱۲۵/۴۷ → ۲۵۰/۴۷ →
۱۵۱/۴۷
هرچند جایگشت‌های تناوبی دنباله‌های زوجیت اصلی کسرهایی منحصربه‌فرد هستند ولی حلقه منحصربه‌فرد نیست. هر کسر جایگشت برابر عدد بعدی در دور حلقه‌است:
(۰ ۱ ۱ ۰ ۰ ۱ ۱) →
(۱ ۱ ۰ ۰ ۱ ۱ ۰) →
(۱ ۰ ۰ ۱ ۱ ۰ ۱) →
(۰ ۰ ۱ ۱ ۰ ۱ ۱) →
(۰ ۱ ۱ ۰ ۱ ۱ ۰) →
(۱ ۱ ۰ ۱ ۱ ۰ ۰) →
همچنین برای منحصربه‌فردی، دنباله‌های زوجیت باید «اول» باشد. نباید قابل تقسیم به زبر دنباله‌های یکسان باشد. برای مثال، دنباله‌های زوجیت (۱ ۱ ۰ ۰ ۱ ۱ ۰ ۰) می‌تواند به دو زیر دنباله یکسان(۱ ۱ ۰ ۰)(۱ ۱ ۰ ۰) تقسیم شود. محاسبه کسر ۸-عاملی این دنباله نشان می‌دهد:
(۱ ۱ ۰ ۰ ۱ ۱ ۰ ۰) →
ولی وقتی کسر را ساده کنیم {۵/۷ مانند همان زیر دنباله ۴-عاملی است:
(۱ ۱ ۰ ۰) →
و این به این دلیل است که دنباله زوجیت ۸-عاملی در واقع دو حلقه از دور حلقه‌ای تعریف شده توسط زیر دنباله ۴-عاملی است.
در این زمینه، حدس کولاتز برابر با این است که بگوییم(۰،۱) تنها حلقه‌ای است که تمام اعداد مثبت ایجاد می‌شود.
تکرار روی اعداد حقیقی یا اعداد مختلط:
نمودار تار عنکبوت در دور ۱۰-۵-۸-۴-۲-۱-۲-۱-۲-۱-… در بسط حقیقی نگاشت کولاتز
(توسط جایگزینی “۳n+۱”با “۳n+۱)/۲)”بهینه شده‌است)
نگاشت کولاتز را می‌توان به عنوان یک محدودیت برای اعداد حقیقی یا اعداد مختلط نشان داد:
پس از ساده سازی:
اگر نگاشت استاندارد کولاتزی که در بالا تعریف شده توسط جایگزینی “۳n+۱”با “۳n+۱)/۲)”بهینه شده باشد، این موضوع می‌تواند نشان داده شود که یک محدودیت برای اعداد حقیقی یا اعداد مختلط است:
پس از ساده سازی:
تکرار نگاشت بهینه‌سازی شده فوق در صفحه اعداد مختلط فراکتال کولاتز را ایجاد می‌کند.
بهینه سازیها
در قسمت «زوجیت» راهی برای سرعت بخشیدن به شبیه سازی دنباله ارائه شد. برای جلو افتادن k قدم در هر تکرار (با استفاده از تابع f در همان قسمت)، عدد فعلی را به دو قسمت تقسیم می‌کنیم،b(kتا کم ارزشترین رقم‌ها)، و a (بقیه رقم‌های عدد). نتیجه جلوپریدن k+cb قدم به صورت زیر خود را نشان می‌دهد:
f k+cb (a ۲ k +b) = a ۳ cb +db
مقادیر c,d برای تمام اعداد K-بیتی ممکن از قبل محاسبه شده‌است که da نتیجه اعمال k بار تابع f روی b است، و caتعداد اعداد فرد در طول مسیر است.
برای مثال اگر ،k=۵ باشد، می‌توان ۵ قدم در هرتکرار توسط جدا کردن ۵ تا از کم ارزشترین رقم‌ها به جلو پرید و استفاده از:
c = {۰،۳،۲،۲،۲،۲،۲،۴،۱،۴،۱،۳،۲،۲،۳،۴،۱،۲،۳،۳،۱،۱،۳،۳،۲،۳،۲،۴،۳،۳،۴،۵
d = {۰،۲،۱،۱،۲،۲،۲،۲۰،۱،۲۶،۱،۱۰،۴،۴،۱۳،۴۰،۲،۵،۱۷،۱۷،۲،۲،۲۰،۲۰،۸،۲۲،۸،۷۱،۲۶،۲۶،۸۰،۲۴۲
تابع سیراکوس
اگر k یک عدد فرد باشد، آنگاه ۳k+۱ زوج است، پس می‌توانیم بنویسیم ۳k + ۱ = ۲ a k′، K یک عدد فرد و a ≥ ۱ است. ما تابع f را از روی مجموعه Iاز اعداد فرد به روی خودش تعریف می‌کنیم، که تابع سیراکوس نام دارد، با فرض این که f (k) = k′
برخی از خواص تابع سیراکوس:
برای تمام kها درI f (۴k + ۱) = f (k)
برای تمام p ≥ ۲ و hهای فرد،f p - ۱(۲ p h - ۱) = ۲ ۳ p - ۱h – ۱
برای تمام hهای فرد،f (۲h - ۱) ≤ (۳h - ۱)/۲
حدس سیراکوس این است که برای تمام kها در I، وجود دارد عدد صحیح n ≥ ۱ به صورتی کهf n (k) = ۱. به‌طور هم ارز، فرض می‌کنیم E مجموعه اعداد فرد k باشد که عدد صحیح n ≥ ۱ وجود دارد به صورتی کهf n (k) = ۱باشد. مشکل این است که نشان دهیم E=I است. در ادامه تلاشی را برای اثبات از طریق استقرا آغاز می‌کنیم:
میدانیم ۱و۳و۵و۷و۹ در E وجود دارند. فرض می‌کنیم k عددی فرد بزرگتر از ۹ باشد. فرض می‌کنیم که k-۲ و تمام اعداد فرد قبل از آن در E هستند و اثبات می‌کنیم که kدر E است. وقتی k یک عدد فرد است پس می‌توان نتیجه گرفت k + ۱ = ۲ p h برای p ≥ ۱ و hهای فرد و k = ۲ p h-۱پس حالا داریم:
اگر p=۱، آنگاه k=۲h-۱. به راحتی می‌توان امتحان کرد که f (k) <k، بنابراین f (k) ∈ E از اینرو k ∈ E.
اگر p ≥ ۲و hمضرب ۳ باشد، می‌توانیم بنویسیمh = ۳h′. فرض می‌کنیم k′ = ۲ p + ۱ h′ - ۱پس داریم f (k′) = k، و تا زمانی کهk′ <k، k′در E وجود دارد، بنابراین k = f (k′) ∈ E.
اگر p ≥ ۲و hمضرب ۳ نباشد ولی h ≡ (-۱) p mod ۴ ولی باز هم می‌توان نشان داد k ∈ E.
قسمت مشکل ساز آنجاست که p ≥ ۲و hمضرب ۳ نباشد و h ≡ (-۱) p+۱ mod ۴. در اینجا اگر سعی کنیم که نشان دهیم که برای هر عدد صحیح فرد′k،
۱ ≤k′≤ k-۲ ; ۳k′ ∈ E
کار تمام است.
نظریه اعداد