این برنامه‌ی مت‌لب یک هزارتو (Maze) تولید می‌کند. روش استفاده از برنامه ساده است؛ کافی است عرض و ارتفاع هزارتو را به شکل mazesa(w,h) به آن بدهید. برای مثال شکل زیر را با دستور mazesa(75,75) ساختم. توجه کنیده که فرمت شکل خروجی svg که مطمئن نیستم ویندوز به‌صورت پیش‌فرض پشتیبانی کند و شاید مجبور باشید یک ابزار کمکی برای این کار دانلود کنید. نکته‌ی دیگر این که برنامه را با Octave روی لینوکس نوشتم. مطمئن نیستم با مت‌لب روی ویندوز کار کند. می‌دانم که برنامه‌ی به‌دردبخوری نیست ولی شاید برای سرگرمی بد نباشد. :)

یک موقعی در دوران دبیرستان در درس جبر می‌گفتند که عمل‌گر جمع دارای خاصیت شرکت‌پذیری است. یعنی:

a+(b+c) = (a+b)+c

غافل از این که این خاصیت لزومن در کامپیوتر صادق نیست؛ مثل این:

1+(-1+1e-16)!=(1-1)+1e-16

احتمالن خودتان به‌تر از من می‌دانید که دلیل این تفاوت خطای گرد کردن (Round-off) کامپیوتر است چون کامپیوتر در محاسبه‌های اعشاری دقت محدودی دارد. خب تا این‌جا مشکل خاصی نیست. تنها باید حواس‌تان به خطای گردکردن باشد.

ولی حالا فرض کنید که یک برنامه‌ی کامپیوتری نوشته‌اید و می‌خواهید آن را کامپایل کنید. معمولن کامپایلرها یک سری پارامتر ورودی دارند به‌نام پرچم (Flag). بعضی از این پرچم‌ها برای بهینه کردن سرعت اجرای برنامه هستند. مثلن در کامپایلر گنو، GCC، باید از پرچم O3 استفاده کنید تا برنامه‌تان برای اجرای سریع‌تر بهینه شود. متأسفانه پرچم O3 ممکن است باعث شود که کامپایلر ترتیب جملات در یک فرمول ریاضی را عوض کند. خاصیت شرکت پذیری هم که دیگر وجود ندارد. احتمالن نتیجه را می‌توانید حدس بزنید.

اگر سعی کنید که با کامپیوتر یک مسأله‌ی غیرخطی را شبیه‌سازی کنید، استفاده از پرچم‌های بهینه‌سازی در کامپایلر ممکن است نتایج را عوض کند.

خبر را شنیده‌اید؟ یک جوان ۲۷ ساله که محقق هوش مصنوعی است رکورد محاسبات ذهنی را شکست. الکسی لومیر توانست در ۷۲ ثانیه ریشه‌ی سیزده‌ام یک عدد ۲۰۰ رقمی را به‌طور ذهنی محاسبه کند. این زمان ۵ ثانیه به‌تر از رکورد قبلی است. البته رکورد قبلی هم مال خود این آقا بوده است.

عدد اصلی این بود:

8633234880035284361012699002231346851047
7370930755992152681390347795323097511687
1700576364808072714138332471217057631111
0855841562345802001852561285289722619610
5357173387251523920946707380414694987101

و ریشه‌ی سیزده‌ام آن هم 2397207667966701 است.

توضیح تکمیلی: جناب آرش در کامنت‌ها گفته‌اند که این آقا برای ماه‌ها به‌مدت روزی دو ساعت تمرین کرده بود تا بتواند در این رکوردگیری شرکت کند. راست‌اش من از این موضوع خبر نداشتم، ولی این خبر هم‌چنان برای من عجیب است. بگذارید توضیح دهم که چرا کار این آقا حفظ کردن محض و از روی بی‌کاری نبوده است. تعداد اعداد ۲۰۰ رقمی که ریشه‌ی سیزده‌ام صحیح داشته باشند بیش از ۴۶۹ تریلیون است. اگر این آقا هرثانیه یک عدد ۲۰۰ رقمی را حفظ کند، در مجموع باید ۱۵ میلیون سال وقت صرف کند که کل جواب‌ها را به‌خاطر بسپارد. گمان نمی‌کنم کسی بتواند در هر ثانیه یک عدد ۲۰۰ رقمی را حفظ کند و گمان نمی‌کنم کسی ۱۵ میلیون سال وقت داشته باشد.

اگرچه زیاد دوست ندارم این‌جا معما مطرح کنم، دوستی برای‌ام یک لینک فرستاد که حیف‌ام آمد ننویسم. معادله‌ی زیر را در نظر بگیرید:

KYOTO + KYOTO + KYOTO = TOKYO

حالا عدد n را طوری پیدا کنید که معادله‌ی بالا در پایه‌ی n برقرار باشد و هر کدام از حروف هم یک رقم در پایه‌ی n باشد. توجه کنید که حروف مختلف معرف رقم‌های مختلف است.

منبع: مسئله‌ی سوم این لینک

ام‌روز، در نیوساینتیست مطلبی خواندم که خیلی برای‌ام جالب بود. مطلب درباره‌ی کاشی‌کاری پنروز (Penrose Tiling) در مسجدهای قدیمی هست. فکر کنم لازم باشه اول کمی درباره‌ی کاشی‌کاری پنروز توضیح بدم.

مفهوم کاشی‌کاری (Tiling) یعنی این که شما یک سطح را با تعدادی کاشی بپوشانید. مثلن اگر کاشی‌ها مربع شکل باشند، چیزی شبیه شکل زیر به دست می‌آید. همان‌طور که می‌بینید، این نوع کاشی‌کاری از یک الگوی تکراری پیروی می‌کند. به همین خاطر به این نوع کاشی‌کاری می‌گویند تناوبی (Periodic).

در سال ۱۹۷۳، راجر پنروز، فیزیک‌پیشه‌ی مشهور، یک سوآل مطرح کرد: آیا می‌شود سطحی را طوری کاشی‌کاری کرد که از یک الگوی تکراری پیروی نکند؟ جواب پنروز شکل زیر بود. همان‌طور که می‌بینید کل شکل از دو نوع کاشی لوزی‌شکل (rhomboidal) چاق (سبز) و لاغر (آبی) درست شده که البته از یک الگوی تکراری هم پیروی نکرده. به همین خاطر به این شکل، کاشی‌کاری غیرتناوبی (Aperiodic)  می‌گویند.

پس کاشی‌کاری غیر تناوبی در ریاضی تنها ۳۵ سال قدمت دارد. ولی نکته‌ی جالب این هست که در خیلی از مسجدهای قدیمی این نوع کاشی‌کاری روی دیوارها وجود دارد. برای مثال امام‌زاده درب امام در اصفهان یک نمونه‌ی دقیق از این کاشی‌کاری را دارد؛ امام‌زاده‌ای با بیش از ۴۰۰ سال قدمت. بنابراین، پنروز چیزی را کشف کرد که قرن‌ها قبل کشف شده بود.

مفهوم کاشی‌کاری غیرتناوبی یا شبه‌تناوبی کاربرد زیادی در فیزیک حالت جامد دارد. من اگر وقت کنم، بعدن کمی در این باره می‌نویسم.

منبع عکس: ویکی‌پدیا

یک فرضیه هست که می‌گوید: گراف ارتباطی انسان‌ها یک شبکه‌ی دنیای کوچک (Small World Network) با درجه‌ی تقریبی شش است. بگذارید بگویم معنی این جمله چیست.

به احتمال زیاد شما دوستانی دارید. اصطلاحن می‌گوییم درجه‌ی ارتباط شما با دوستان‌تان یک است. ولی دوستان شما ممکن است دوستان دیگری داشته باشند که شما نشناسید. درجه‌ی ارتباطی شما با دوست دوست‌تان دو است. به همین ترتیب می‌توان درجه‌ی ارتباط هر دو نفر روی کره‌ی زمین را پیدا کرد. یک فرضیه هست که می‌گوید: درجه‌ی ارتباط بین دو نفر در کره‌ی زمین به‌طور متوسط شش است. خیلی جالب هست نه؟ احساس شهودی ما در وهله‌ی اول می‌گوید که یک فرد در ایران و یک فرد در برزیل ممکن است با ده‌ها یا صدها واسطه به هم مربوط باشند. ولی عدد شش واقعن کوچک است. اما آیا این فرضیه درست هست؟

این فرضیه اولین بار توسط استنلی میلگرم (Stanley Milgram) گفته شد. میلگرم را که می‌شناسید. همان کسی که آزمایش معروف میلگرم را در مورد تبعیت از فرمان انجام داده بود. این فرضیه یکی دیگر از کارهای میلگرم است. بعد از میلگرم کسی این فرضیه را به‌طور جدی آزمایش نکرد.

حالا آقای دانکن واتز، پژوهش‌گر دانش‌گاه کلمبیا، قصد دارد با استفاده از اینترنت و ای‌میل این آزمایش را تکرار کند. تخمین کلی این است که ۱۰۰ میلیون نفر در جهان به طور معمول از ای‌میل استفاده می‌کنند. گروه پژوهش آقای واتز امید دارد که با استفاده از ای‌میل بتواند یک نمونه‌ی آماری بزرگ فراهم کند و فرضیه‌ی بالا را تست کند.

شما هم اگر دوست دارید سهمی در این پژوهش داشته باشید، به سایت آن بروید و یک حساب کاربری بسازید. گمان می‌کنم سایت پروژه به اندازه‌ی کافی گویا باشد. ولی اگر توضیح بیش‌تری لازم بود، ممنون می‌شوم در نظرخواهی بگویید.

یک بازی آشوب‌

ریاضی | نظرخواهی بسته است

احتمالن شما هم چیزهایی درباره‌ی سیستم‌های آشوب‌ناک (Chaotic) شنیده‌اید. در این پست می‌خوام یک بازی ریاضی آشوب‌ناک و جالب را به شما معرفی کنم. با این بازی به‌سادگی می‌تونید با یک برنامه‌ی کامپیوتری مثلث سیرپینسکی را بکشید.

خب اول بگم بازی چه جوری هست. یک کاغذ سفید بردارید و یک مثلث بزرگ روی آن بکشید. سه گوشه‌ی مثلث را با اعداد ۱ تا ۳ شماره‌گذاری کنید. حالا نقطه‌ی دل‌خواه P را روی صفحه‌ی کاغذ بکشید. بعد یک گوشه‌ی تصادفی از مثلث را انتخاب کنید، مثلن ۳. نقطه‌ای که دقیقن وسط نقطه‌ی P و گوشه‌ی ۳ مثلث باشد را پیدا کنید و اسم‌اش را Q بگذارید. دوباره یک گوشه‌ی تصادفی ازمثلث را انتخاب کنید و نقطه‌ی وسط این گوشه و Q را پیدا کنید و اسم‌اش را R بگذارید. اگر همین کار را هزاران بار تکرار کنید، شکلی شبیه شکل زیر به دست می‌آید.
خیلی جالب هست، نه؟ اسم این شکل مثلث سیرپینسکی (Sierpinski) هست. نکته‌ی جالب‌تر اینه که مهم نیست نقطه‌ی P که اول انتخاب کرده بودید، کجای صفحه باشه. این روند همیشه منجر به تولید مثلث سیرپینسکی می‌شه. نکته‌ی جالب دیگه این هست که ترتیب انتخاب گوشه‌های مثلث اصلی هم اهمیتی نداره.

مثلث سیرپینسکی در بازی بالا یک نمونه از مفهمومی هست به نام جاذب (Attractor) که در سیستم‌های آشوب‌ناک زیاد به کار می‌ره. جاذب به طور ساده یعنی این که جواب یک سیستم آشوب‌ناک تنها یک زیرفضا از کل فضای حل‌های ممکن را پوشش بده. مثلن در مثال بالا، فضا کل نقاط صفحه هست. ولی همان‌طور که دیدید، این بازی تنها یک مثلث سیرپینسکی را پوشش داد، نه کل نقاط صفحه را.

من این بازی را اولین بار حدود ۹ سال پیش در یک فیلم دیدم که متأسفانه اسم‌اش یادم نیست.

تکمیلی: ظاهرن این نوشته کمی گنگ بود. باید اذعان کنم که بازی بالا مثال خوبی برای توصیف پدیده‌ی آشوب نیست، ولی از نظر ریاضی آشوب‌ناک هست. چون نمی‌خوام در این مرحله متن را ویرایش کنم، توصیه می‌کنم که پاراگراف یکی مانده به آخر را ندیده بگیرید و نوشته را به چشم راهی برای کشیدن مثلث سیرپینسکی ببینید.

نوشته‌ی چند روز پیش من درباره‌ی حدس پوانکاره را احتمالن به یاد دارید. نوشته بودم یک ریاضی‌پیشه‌ی روس به نام دکتر گریشا پرلمن این قضیه را بعد از ۱۰۰ سال حل کرد. حالا یک خبر جدید.

دکتر پرلمن گفته اگر اثبات‌اش درست ارزیابی بشود، او جایزه‌ی یک میلیون دلاری مؤسسه‌ی کلی (Clay) را قبول نخواهد کرد. همچنین روایت‌هایی وجود داره که می‌گه احتمالن دکتر پرلمن جایزه‌ی فیلدز (Fields) را هم رد می‌کند. عجیب هست نه؟ بردن فیلدز آرزوی هر ریاضی‌پیشه‌ای هست.

البته پرلمن مدتی پیش هم یک جایزه‌ی معتبر اروپایی را رد کرد. او گفته بود که کمیته‌ی جایزه را شایسته‌ی قضاوت در مورد کارش نمی‌داند.

یک نکته‌ی جالب دیگر روش انتشار مقاله بود. مقاله‌ای که پرلمن در آن اثبات را نوشته، بعد از ۸ سال کار در سال ۲۰۰۲ منتشر شد. ولی نه در یک ژورنال دارای داور که در آرشیو مقاله‌های ریاضی. فکرش را بکنید، اون وقت ماها خودمان را می‌کشیم تا در یک ژورنال دسته چندم مقاله چاپ کنیم.

دکتر دوساتوی استاد آکسفورد گفته: «اگر او جایزه را ببرد و بعد آن را رد کند، ممکن است کمی توهین‌آمیز باشد. او خود را از جامعه‌ی ریاضی منزوی کرده است. به پول علاقه‌ای ندارد و جایزه‌اش، اثبات قضیه‌اش بود.»

منبع: Guardian

تکمیلی: ظاهرن پرلمن از پست‌اش در مؤسسه‌ی ریاضی استکلوف (Steklov) در سنت‌پترزبورگ استعفا داده و کسی هم نمی‌دونه کجا رفته. به نظر علاقه‌اش را به ریاضی از دست داده.

منبع: New Scientist

احتمالن درباره‌ی جایزه‌ی کلی (Clay Prize) شنیدید. در ریاضی ۷ مسأله‌ی مهم هست که هنوز حل نشده‌اند و مؤسسه‌ی کلی برای حل هر کدام از این مسأله‌ها یک میلیون دلار جایزه می‌ده که واقعن برای حل چنین مسائلی قابل توجه نیست.

یکی از این مسأله‌ها حدس پوانکاره (Poincare Conjecture) هست. حدس پوانکاره بیش از ۱۰۰ سال هست که مطرح شده و تا حالا کسی اون را حل نکرده بود. ولی ظاهرن یک ریاضی‌دان روس این مسأله را حل کرده.

توضیح این که حدس پوانکاره چی هست یک خرده سخته. با این حال خود حدس خیلی ��اده هست و تعجب می‌کنید چه‌طور این همه مدت کسی این مسأله را حل نکرده بود. حدس این هست: هر منی‌فلد سه‌بعدی هم‌بند ساده‌ی بسته با یک کره‌ی ۳ بعدی هم‌ریخت هست. حالا این یعنی چی؟

منی‌فلد (Manifold) یعنی یک سطح که به صورت موضعی تخت به نظر بیاد. مثلن سطح کره‌ی زمین یک منی‌فلد دوبعدی هست. هم‌بند ساده‌ و بسته (Closed and Simply Connected) یعنی این که در سطح سوراخی نباشه. یک مثال ساده فنجان قهوه‌خوری شما هست. داخل دسته‌ی فنجان یک سوراخ هست. پس سطح فنجان یک منی‌فلد هم‌بند بسته نیست. هم‌ریخت (Homeomorphic) هم یعنی این که هندسه‌ی دو سطح ممکن هست فرق کنه ولی توپولوژی اون‌ها یکی هست.

حالا یک توپ را در نظر بگیرید. دور خط استوای توپ یک کش لاستیکی ببندید. کش را به طرف قطب شمال توپ حرکت بدین. در نهایت کش در قطب شمال به یک نقطه تبدیل می‌شه. اثبات می‌شه هر وقت بتونید کش را به یک تقطه تبدیل کنید، آن شکل یک کره هست.

حالا حدس پوانکاره می‌گه اگر شما منی‌فلدی سه‌بعدی داشته باشید و بتونید یک کش را به همین طریق به یک نقطه تبدیل کنید، اون سطح باید یک کره‌ی سه‌بعدی باشه.

مسأله به نظر خیلی پیچیده نمی‌آد، ولی از بس سخت بوده که تازه بعد از ۱۰۰ سال حل شده. کسی که این قضیه را اثبات کرده گریشا پرلمن (Grisha Perelman) هست و احتمالن با این حل نه تنها جایزه‌ی کلی که جایزه‌ی فیلدز را هم می‌بره. جایزه‌ی فیلدز چیزی در حد نوبل برای ریاضی هست.

منبع: Nature

روش مونتی کارلو

ریاضی | نظرخواهی بسته است

پیش از همه، از این که این پست یک کمی زیادی ریاضی دارد عذر می‌خوام ولی فکر می‌کنم براتون جالب باشه. در عین حال یک مقدمه هست برای روشی که شاید بعدها بیش‌تر درباره‌اش بنویسم.

فرض کنید می‌خواهید مساحت یک دایره را حساب کنید. یک راه ساده اینه که یک مربع بکشید و آن را با تعدادی نقطه‌ی تصادفی پر کنید. بعد یک دایره درون مربع بکشید و ببنید چند نقطه داخل دایره می‌افتد. اگر تعداد نقاط داخل دایره را به تعداد کل نقاط تقسیم کنید، نسبت مساحت دایره به مربع به دست می‌آد. جزئیات را در شکل زیر کشیدم.


به این روش می‌گن روش مونتی کارلو(Monte Carlo). چرا؟ چون بر اساس نقاط تصادفی کار کرد. مثل کازینوهای شهر مونتی کارلو که همه چیز شانسی است. حالا با شکل بالا می‌شه مقدار تقریبی عدد پی را حساب کرد. من با استفاده از یک میلیون نقطه عدد پی را 3.1412 به دست آوردم که به 3.1415 واقعی خیلی نزدیک است.

اما بگذارید جلوتر بریم. این‌ها که ساده بود. حالا می‌خواهیم حجم یک کره‌ی ۷ بعدی در فضای تخت را حساب کنیم. علی‌الاصول هر کس که ریاضی ۲ را گذرانده باشه باید بتونه به‌طور تحلیلی این کار را انجام بده. حجم یک کره‌ی ۷ بعدی با شعاع R برابر است با:

حالا اگر مثل من مهندسی خونده باشین و وضع ریاضی‌تون خراب باشه :))، می‌تونین با روش مونتی کارلو به‌سادگی این کار را انجام بدین. تکه کد MATLAB زیر (من با GNUOctave اجرا کردم) حجم یک کره‌ی d بعدی را به شما می‌ده. عدد n تعداد نقاط تصادفی هست که برای محاسبه استفاده می‌کنید.

function sphr_vol
n = 1000000;
d = 7;
x = rand(d,n);
size(find(sum(x.^2)
همان‌طور که می‌بینید من حجم یک کره‌ی ۷ بعدی با شعاع واحد را با یک میلیون نقطه‌ی تصادفی حساب کردم که برابر 4.7277 در آمد در حالی که مقدار دقیق با فرمولی که در بالا گفتم 4.7244 است. می‌بینید چه ساده بود. حالا می‌توانید حجم کره از هر بعدی را که دوست دارید حساب کنید.

البته این یک کاربرد ساده‌ی روش مونتی کارلو بود. روش مونتی کارلو در سیستم‌های غیرخطی و آشوبناک با درجات آزادی بالا ارزش خود را بیش‌تر نشون می‌ده. شاید به زودی یک مثال پیچیده‌تر را با این روش حل کردم.

گمان می‌کنم مطلب به اندازه‌ی کافی واضح باشه ولی اگر جاییش گنگ هست خوشحال می‌شم بدونم تا اصلاح کنم.

I used the Monte Carlo Method to calculate the volume of a 7 Dimensional sphere in the flat Euclidean space. The monte Carlo method is also useful to simulate stochastic systems with many degrees of freedom.
keep looking »