<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>Hadi's personal blog</title>
    <link>http://blog.pykello.net/</link>
    <description>Written to be remembered ...</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.2 - http://www.s9y.org/</generator>
    <pubDate>Mon, 31 May 2010 12:36:23 GMT</pubDate>

    <image>
        <url>http://blog.pykello.net/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: Hadi's personal blog - Written to be remembered ...</title>
        <link>http://blog.pykello.net/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>Adleman, BPP, Modality, Resolution, Davis-Putnam, ... while being Nostalgic.</title>
    <link>http://blog.pykello.net/index.php?/archives/220-Adleman,-BPP,-Modality,-Resolution,-Davis-Putnam,-...-while-being-Nostalgic..html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/220-Adleman,-BPP,-Modality,-Resolution,-Davis-Putnam,-...-while-being-Nostalgic..html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=220</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=220</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;... و عملیات خودنابودسازی به شکست انجامید.&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Mon, 31 May 2010 08:36:23 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/220-guid.html</guid>
    
</item>
<item>
    <title>Intuitionistically Faraway</title>
    <link>http://blog.pykello.net/index.php?/archives/219-Intuitionistically-Faraway.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/219-Intuitionistically-Faraway.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=219</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=219</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;اژدهای شوخ طبع به من سلام کرد، ولی من او را همچنان نادیده گرفتم.&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sun, 30 May 2010 13:20:09 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/219-guid.html</guid>
    
</item>
<item>
    <title>Father of all nerds died when the Search Engine invited again ...</title>
    <link>http://blog.pykello.net/index.php?/archives/218-Father-of-all-nerds-died-when-the-Search-Engine-invited-again-....html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/218-Father-of-all-nerds-died-when-the-Search-Engine-invited-again-....html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=218</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=218</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;برخی در بازی احتمالاتی زندگی استراتژی همواره برد دارند.&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Wed, 26 May 2010 15:21:12 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/218-guid.html</guid>
    
</item>
<item>
    <title>Who Knows? Part 1</title>
    <link>http://blog.pykello.net/index.php?/archives/217-Who-Knows-Part-1.html</link>
            <category>Daily Comments</category>
            <category>Thinking</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/217-Who-Knows-Part-1.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=217</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=217</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;1. آیا انسان هرگز می تواند &lt;strong&gt;عدم وجود&lt;/strong&gt; خود را تصور کند؟ چگونه؟ آیا انسان در هنگام فعالیت مغزی می تواند &lt;strong&gt;عدم تجربه&lt;/strong&gt; را تصور کند؟&lt;/p&gt;

&lt;p&gt;2. آیا انسان می تواند به مرگ خود &lt;strong&gt;یقین&lt;/strong&gt; داشته باشد؟&lt;br /&gt;
&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sat, 22 May 2010 17:51:33 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/217-guid.html</guid>
    
</item>
<item>
    <title>CodeForces</title>
    <link>http://blog.pykello.net/index.php?/archives/216-CodeForces.html</link>
            <category>Competing</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/216-CodeForces.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=216</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=216</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;سلام،&lt;br /&gt;
يک سایت مسابقات برنامه نویسی جدیدا ایجاد شده است به نام &lt;a href=&quot;http://codeforces.com/&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Codeforces&lt;/a&gt;. اگر دوست داشتید سری بزنید. به نظر من که خیلی جذاب است. &lt;br /&gt;
يکی از ويژگی های این سایت این است که هر کدام از اعضاء می توانند وبلاگ هم داشته باشند. &lt;a href=&quot;http://codeforces.com/blog/hadi&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;این&lt;/a&gt; لینک وبلاگ من در آنجاست.&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sat, 06 Mar 2010 03:36:49 -0500</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/216-guid.html</guid>
    
</item>
<item>
    <title>IAUM CCC 6 - Online Round 1</title>
    <link>http://blog.pykello.net/index.php?/archives/215-IAUM-CCC-6-Online-Round-1.html</link>
            <category>Competing</category>
            <category>IAUM CCC</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/215-IAUM-CCC-6-Online-Round-1.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=215</wfw:comment>

    <slash:comments>11</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=215</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;مسابقه ی آنلاین دوم نیز برگزار شد. سوال های A و D و G را من طرح کرده بودم.&lt;/p&gt;

&lt;p&gt;برای دریافت صورت سوال ها به &lt;a href=&quot;http://pykello.net/iaum-c3-6-1.tar&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;http://pykello.net/iaum-c3-6-1.tar&lt;/a&gt; مراجعه کنید.&lt;/p&gt;

&lt;p&gt;سوال A، تنها یک پیاده سازی معمولی بود. برای دیدن کد من برای این سوال به &lt;a href=&quot;http://wiki.pykello.net/doku.php?id=implementation:iaumc3_cheaters&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;http://wiki.pykello.net/doku.php?id=implementation:iaumc3_cheaters&lt;/a&gt; مراجعه کنید.&lt;/p&gt;

&lt;p&gt;سوال D، یک سوال احتمالاتی بود که از سوال احتمالاتی دفعه ی پیش کمی آسان تر بود. راه حل من برای این سوال از نوع برنامه سازی پویا بود. تنها مشکلی که برخی از شرکت کننده ها داشتند این بود که بعضی جاها 0.00000- چاپ می کردند به جای 0.00000 که چون به نظرم مشکل حادی نبود، یک clarification فرستادم تا ملت این مشکل را درست کنند. برای دیدن کد من برای این سوال به &lt;a href=&quot;http://wiki.pykello.net/doku.php?id=implementation:iaumc3_quiz&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;http://wiki.pykello.net/doku.php?id=implementation:iaumc3_quiz&lt;/a&gt; مراجعه کنید.&lt;/p&gt;

&lt;p&gt;راه حل من برای سوال G جستجوی دودوئی بود. برای اینکه بفهمم آیا با زمان x می شود به هدف رسید، ترتیب های مختلف نقاط را امتحان می کردم. مکان هندسی که هر کدام از نقاط در زمان x می توانند به آن بروند یک دایره است. اگر اشتراک تمام این دایره ها ناتهی بود، با زمان x می شود به هدف رسید، وگرنه نمی شود. برای دیدن کد من برای این سوال، به &lt;a href=&quot;http://wiki.pykello.net/doku.php?id=implementation:iaumc3_atoms&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;http://wiki.pykello.net/doku.php?id=implementation:iaumc3_atoms&lt;/a&gt; مراجعه کنید.&lt;/p&gt;

&lt;p&gt;لطفا نظرتان را درباره ی سوال ها به صورت کامنت یا ایمیل ارسال کنید.&lt;/p&gt;

&lt;p&gt;پ.ن. : ایده ی سوال G برگرفته از &lt;a href=&quot;http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3159&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3159&lt;/a&gt; بود، که توضیح راه حل را می توانید در &lt;a href=&quot;http://wiki.pykello.net/doku.php?id=zju:feburary09&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;http://wiki.pykello.net/doku.php?id=zju:feburary09&lt;/a&gt; پیدا کنید. دلیلی که باعث شد فکر کنم تغییر من بر روی این سوال تبدیل به یک سوال جدید جالب می شود، این بود که گمان می کردم قسمت اشتراک دایره ها سخت ترین بخش سوال است، و راه حل های اولی که به ذهنم رسیده بود هم سخت بود، ولی راه حل آخرم چندان هم سخت نبود :)&lt;/p&gt;

&lt;p&gt;در ضمن، نمی دانم چرا سوال B با اینکه سخت نبود تنها توسط یک نفر حل شد.&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sun, 19 Jul 2009 12:42:09 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/215-guid.html</guid>
    
</item>
<item>
    <title>IAUM CCC 6 - Online Round 0</title>
    <link>http://blog.pykello.net/index.php?/archives/214-IAUM-CCC-6-Online-Round-0.html</link>
            <category>Competing</category>
            <category>IAUM CCC</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/214-IAUM-CCC-6-Online-Round-0.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=214</wfw:comment>

    <slash:comments>16</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=214</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;امروز مسابقه ی آنلاین اول IAUM CCC 6 برگزار شد. سه سوال از 7 سوال توسط من طرح شده بود. در این پست، ابتدا انتقاداتی از طرز انتقاد مسابقه دهندگان می کنم، و سپس به توضیح کوتاهی در باره ی سوال ها می پردازم.&lt;/p&gt;

&lt;p&gt;سه سوال A و B و G توسط من طرح شده بود. برای دریافت صورت سوال ها، به آدرس &lt;a href=&quot;http://pykello.net/iaumc3-6-0.tar&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;http://pykello.net/iaumc3-6-0.tar&lt;/a&gt; مراجعه کنید. البته صورت سوال B در مسابقه یک اشتباه تایپی داشته که در این نسخه درست شده است.&lt;/p&gt;

&lt;p&gt;سوال A مشکل خاصی نداشت، راه حل من که سعی کردم کندترین راه حل معقول باشد( از مرتبه ی زمانی (O(n^2 بود)، در کمتر از یک ثانیه اجرا می شد. سوال آسانی بود، و وقتی کد طولانی برخی شرکت کنندگان را دیدم بسی تعجب کردم. و واقعا چگونگی دست یافتن برخی شرکت کننده ها به نتیجه ی Time Limit Exceeded واقعا حیرت آور بود. به هر حال، عده ای به طرز Judge شدن این سوال معترض بودند که دلیلش را نمی دانم. من هم جزو Judge ها نبودم تا دلیل اعتراض آن ها را بدانم. داده های تست مشکلی نداشت. تعداد زیادی از افراد با اینکه در صورت سوال ذکر شده بود نقطه ای با مختصات (0,0) در ورودی نیست، باز هم وجود چنین نقطه ای را سوال می کردند.&lt;/p&gt;

&lt;p&gt;سوال B ... معترضین به این سوال سه دسته بودند. دسته ای که معنی &amp;quot;متوسط&amp;quot; را بلد نبودند، و صورت سوال را مبهم می دانستند. اولا اینکه در صورت تمایل دوستان، می توانم بیش از 10 سوال مشابه پیدا کنم که بدون تعریف معنی متوسط، مقدار متوسط را خواسته بودند. پس اینکه تعریف &amp;quot;متوسط&amp;quot; را شخصی بلد نیست، ضعف در صورت سوال محسوب نمی شود. مبهم دانستن این مساله مانند این است که عدم ذکر معنای کوتاه ترین مسیر در مساله ی گراف را دلیل مبهم دانستن آن سوال بدانیم.&lt;br /&gt;
دسته ای دیگر، به clarification ها با دقت کافی نگاه نکرده بودند، و با اینکه به تعداد مراتبی زیادی ذکر کردم که k بار شیر افتادن باید &amp;quot;پشت سر هم&amp;quot; باشند، باز هم با اعتماد به نفس این مساله را ندیده می گرفتند و ورودی و خروجی نمونه را اشتباه می دانستند!&lt;br /&gt;
دسته ای دیگر، راه حل اشتباهی را انتخاب کرده بودن و مساله را به تعداد تکرار زیادی شبیه سازی کرده بودند، و مسلما جواب اشتباه می گرفتند. جالب این بود که انصاف را رها کرده بودند، و چون از 2-3 سوال دیگر و همچنین از نتیجه ی خودشان ناراضی بودند، با اعتماد به نفس زیادی می گفتند: &amp;quot;سوال گیر الکی داشت&amp;quot;. مطمئنا کسانی که راه حل درست را پیدا کرده بودند، به مشکل خاصی برنخوردند.&lt;/p&gt;

&lt;p&gt;سوال G، تقریبا کسی به طور جدی به این سوال نپرداخت، با اینکه از لحاظ ایده ای سخت نبود، ولی شاید پیاده سازی اش کمی طول می کشید و سوال های دیگر زمانی برای این سوال باقی نگذاشته بودند.&lt;/p&gt;

&lt;p&gt;در باره ی ایده ها:&lt;/p&gt;

&lt;p&gt;تنها به توضیح مختصری و کدها بسنده می کنم. ممکن است در آینده توضیح بیشتری بنویسم!&lt;/p&gt;

&lt;p&gt;سوال A: برای دیدن کد من برای این سوال به &lt;a href=&quot;http://wiki.pykello.net/doku.php?id=implementation:iaum_c3_6_sight&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;http://wiki.pykello.net/doku.php?id=implementation:iaum_c3_6_sight&lt;/a&gt; مراجعه کنید. تنها نکته ای باید در نظر می گرفتید این بود که مثلا اگر دو نقطه در (1,1) و (1-,1-) قرار داشته باشند، هر دو نقطه را می بینیم، با اینکه نسبت x/y هر دو یکسان است.&lt;/p&gt;

&lt;p&gt;سوال B: برای مشاهده کد من برای این سوال به &lt;a href=&quot;http://wiki.pykello.net/doku.php?id=implementation:iaum_c3_6_kconsecutive&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;http://wiki.pykello.net/doku.php?id=implementation:iaum_c3_6_kconsecutive&lt;/a&gt; مراجعه کنید.&lt;/p&gt;

&lt;p&gt;کسانی که با معنای &amp;quot;متوسط&amp;quot; یا &amp;quot;امید ریاضی&amp;quot; در نظریه ی احتمال آشنا نیستند، به &lt;a href=&quot;http://en.wikipedia.org/wiki/Expected_value&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;http://en.wikipedia.org/wiki/Expected_value&lt;/a&gt; مراجعه کنند.&lt;/p&gt;

&lt;p&gt;فرض کنید [expDays[i برابر با تعداد متوسط روزهای لازم برای اینکه عمل سکه انداختن تمام شود با فرض اینکه i دفعه ی قبلی نتیجه سکه انداختن ها شیر بود، باشد. همانطور که معلوم است، expDays[k] = 0 است، چون k بار شیر پشت سر هم رخ داده است و بازی تمام شده است. در غیر اینصورت، expDays[i] = expDays[i+1] * p + expDays[0] * (1-p) + 1 است. عدد 1، برای این است که حتما یک بار سکه پرتاب می کنیم. با احتمال p، به حال [expDays[i+1 میرویم، یعنی به تعداد شیرهای پشت سرهم یکی اضافه می شود. و با احتمال q=1-p، به حالت [expDays[0 می رویم، یعنی تعداد شیرهای پشت سرهم به صفر می رسد. تابع calcDays در واقع این دنباله را محاسبه می کند. تابع calcMoney نیز از روشی مشابه ولی کمی پیچیده تر برای محاسبه متوسط پول استفاده می کند.&lt;/p&gt;

&lt;p&gt;سوال G: برای مشاهده ی کد من برای این سوال، به &lt;a href=&quot;http://wiki.pykello.net/doku.php?id=implementation:iaum_c3_6_grid&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;http://wiki.pykello.net/doku.php?id=implementation:iaum_c3_6_grid&lt;/a&gt; مراجعه کنید.&lt;/p&gt;

&lt;p&gt;راه حل مطلوب این سوال، از نوع برنامه سازی پویا بود. حالت برنامه سازی پویا نیز (شماره سطر، شماره ستون، بیت های لازم از وضعیت سطر بالا، بیت های لازم از وضعیت سطر فعلی) است. اگر این مدل را بصورت بدیهی پیاده سازی کنید، مسلما تعداد حالات خیلی زیاد خواهد بود. ولی باید دقت کنید در این مساله وضعیت سطری به طول n حداکثر می تواند (F(n) = F(n-1) + F(n-3 حالت داشته باشد، که برای n=30، کمتر از 500000 حالت می شود که زیاد نیست. با کمی طراحی خوب، می توان در بدترین حالت در زمان کمتر از 2 ثانیه به هر ورودی جواب داد.&lt;/p&gt;

&lt;p&gt;خوب :) دوست دارم نظرتان در باره ی سوال ها را بدانم. لطفا کامنت یا ایمیل ارسال کنید!&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Fri, 17 Jul 2009 12:03:41 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/214-guid.html</guid>
    
</item>
<item>
    <title>Hava kara bulutlu ...</title>
    <link>http://blog.pykello.net/index.php?/archives/213-Hava-kara-bulutlu-....html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/213-Hava-kara-bulutlu-....html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=213</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=213</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;img src=&quot;images/cloudy.jpg&quot; align=&quot;left&quot;&gt;&lt;br /&gt;
در آن عصر هنگام من مُردم،&lt;br /&gt;
ولی پس از مرگ من معجزه ای رخ داد،&lt;br /&gt;
و به زندگی جاودانه دست یافتم و باور کردم که مرگ پایان دنیا نیست،&lt;br /&gt;
و من هرگز این معجزه را فراموش نخواهم کرد.&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Wed, 15 Jul 2009 06:36:27 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/213-guid.html</guid>
    
</item>
<item>
    <title>Topcoder SRM 444</title>
    <link>http://blog.pykello.net/index.php?/archives/212-Topcoder-SRM-444.html</link>
            <category>Competing</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/212-Topcoder-SRM-444.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=212</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=212</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;عملکرد من در این مسابقه خوب نبود، ولی بد هم نبود. البته نسبت به دو مسابقه قبل خیلی بهتر بود :)&lt;/p&gt;

&lt;p&gt;در سوال 250 امتیازی، نسبتا خوب عمل کردم و سعی کردم با دقت بنویسم و در نتیجه نسبتا کند نوشتم. سوال نسبتا آسانی بود، ولی در مقایسه با اکثر سوال های 250 امتیازی سخت تر بود و دقت بیشتری می خواست.&lt;/p&gt;

&lt;p&gt;در سوال 500 امتیازی، سوال برنامه سازی پویای نسبتا آسان و سرراستی بود، انتظار داشتم بتوانم بیشتر از 400 امتیاز بدست بیاورم، ولی به علت اشتباهاتی نامعلوم، در ورودی های نمونه جواب درست نگرفتم، و پس از تلف کردن زمانی برای دیباگ، بخشی از کد را دوباره نوشتم و حدود 270 امتیاز گرفتم. اشتباه من در این سوال این بود که در جاهایی که می توانستم از تابع استفاده کنم از تابع استفاده نکرده بودم و کد کثیف و غیر قابل فهم شده بود.&lt;/p&gt;

&lt;p&gt;با توجه به اینکه این دو سوال نسبتا زیاد طول کشید و زمان زیادی برای سوال سخت باقی نمانده بود، در زمان باقیمانده هر دو سوال را با مقداری ورودی دستی تست کردم و کدشان را دوباره بررسی کردم تا مطمئن شوم مشکلی ندارند.&lt;/p&gt;

&lt;p&gt;در مرحله ی Challenge، سعی کردم محتاط باشم، ولی 2 کدی که تشخصیص دادم اشتباه است و می توانستم Challenge کنم، قبل از اینکه من اقدام کنم Challenge شدند. اشتباه من در این مرحله این بود که تعدادی تست خوب آماده نکرده بودم تا بتوانم سریع تر Challenge کنم.&lt;/p&gt;

&lt;p&gt;رتبه ام 103 شد، امتیاز تاپکدرم از 2221 به 2242 افزایش پیدا کرد، که تغییر زیادی نبود، و تنها از اینکه نتیجه مثل دو دفعه پیش افتضاح نشده بود راضی بودم. ولی دوست دارم به دورانی برگردم که نصف مسابقات جزو 50 تای اول بودم :)&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Thu, 09 Jul 2009 08:36:34 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/212-guid.html</guid>
    
</item>
<item>
    <title>ZOJ Monthly Contest, June 2009 Analysis</title>
    <link>http://blog.pykello.net/index.php?/archives/211-ZOJ-Monthly-Contest,-June-2009-Analysis.html</link>
            <category>Algorithms</category>
            <category>Competing</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/211-ZOJ-Monthly-Contest,-June-2009-Analysis.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=211</wfw:comment>

    <slash:comments>6</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=211</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;برای مشاهده ی توضیح و بررسی سوال های مسابقه ی ZOJ Monthly Contest, June 2009 به &lt;a href=&quot;http://wiki.pykello.net/doku.php?id=zju:june09&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;http://wiki.pykello.net/doku.php?id=zju:june09&lt;/a&gt; مراجعه کنید. البته هنوز ناقص است، ولی امیدوارم کامل تر کنم :) البته از هر گونه کمکی استقبال می کنم :)&lt;/p&gt;

&lt;p&gt;پ.ن. : توضیح سوال D کامل تر شد.&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Thu, 09 Jul 2009 08:30:25 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/211-guid.html</guid>
    
</item>
<item>
    <title>ZOJ Monthly Contest, June 2009 </title>
    <link>http://blog.pykello.net/index.php?/archives/210-ZOJ-Monthly-Contest,-June-2009.html</link>
            <category>Competing</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/210-ZOJ-Monthly-Contest,-June-2009.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=210</wfw:comment>

    <slash:comments>4</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=210</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;دیروز در &lt;a href=&quot;http://acm.zju.edu.cn/onlinejudge/showContestRankList.do?contestId=297&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;این مسابقه آنلاین&lt;/a&gt; شرکت کردم. با توجه به اینکه با کمی دقت می توانستم جزو 4 تیم اول بشوم (به جای هشتم)، از عملکرد خودم کاملا راضی نبودم، ولی به هر حال بد هم نبود.&lt;/p&gt;

&lt;p&gt;در این پست، به عملکرد خود و مقداری به سوال ها می پردازم، ولی بررسی کامل سوال ها را بعدا و هنگامی که همه سوال ها را حل کردم در پستی جداگانه خواهم نوشت :)&lt;/p&gt;

&lt;p&gt;ابتدا شروع به خواندن سوال ها کردم، تا سوال های خیلی آسان را پیدا کنم. تا اینکه يکی از شرکت کنندگان &lt;a href=&quot;http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=3393&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;سوال G&lt;/a&gt; را با سرعت حیرت انگیز در دقیقه 12 حل کرد. سوال سختی نبود، یک سوال احتمالاتی که با تشکیل دستگاه معادلات خطی و حل آن به راحتی حل می شد. ولی چون تعداد دفعاتی که سر مسابقه کد حل دستگاه معادلات خطی نوشته بودم کم بود، کد این مساله را با احتیاط و کند زدم و دقیقه 41 این مساله را حل کردم. یکی از کارهای مثبتی که کردم این بود که قبل از submit چند تست دستی دادم، و یکی از خطاهایی که مرتکب شده بودم را رفع کردم (سایز آرایه را کم در نظر گرفته بودم). عملکردم در این سوال نسبتا راضی کننده بود. تنها يک نکته ی منفی وجود داشت و آن این بود که کد این مساله را با تسلط کامل و سریع نزدم، و احتمالا باید مروری بر الگوریتم های استاندارد بکنم تا آن هایی را که کاملا مسلط نیستم را کاملا مسلط شوم.&lt;/p&gt;

&lt;p&gt;سوال دومی که حل کردم، &lt;a href=&quot;http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=3388&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;سوال B&lt;/a&gt; بود، که مساله ی شبیه سازی آسانی بود. نمی دانم کار درستی کردم یا نه، ولی چون اندازه ورودی مساله بزرگ بود، به جای استفاده از ساختار map زبان ++C، از ساختار داده ای استفاده کردم که عملیات مجموعه رشته ها را سریع تر انجام دهد، که برای همین کد این مساله هم کمی زیاد طول کشید (حدود 30 دقیقه). البته باز هم راضی بودم، خیلی زیاد طول نکشید، با اینکه می شد حدود 15 دقیقه صرفه جویی کرد.&lt;/p&gt;

&lt;p&gt;سوال سومی که حل کردم، &lt;a href=&quot;http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=3395&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;سوال I&lt;/a&gt; بود، که به صورت حریصانه، و با استفاده از BFS حل کردم. از عملکردم برای این مساله ناراضی بودم. اولین اشتباهی که کردم، دقت نکردم که برای تعداد پریدن ها محدودیت وجود دارد و الگوریتم و کد اولم مشکل داشت و باعث شد مدتی تلف شود. پس از اینکه برای ورودی نمونه جواب اشتباه کردم، متوجه خطایم شدم و الگوریتم صحیح را طراحی و پیاده سازی کردم که زیاد طول نکشید، ولی Wrong Answer گرفتم. پس از بررسی الگوریتم و اطمینان از صحت آن، و اطمینان از اینکه هیچ جای برنامه overflow رخ نمی دهد، و خواندن کد و نیافتن اشتباه، چند تست دستی به برنامه دادم تا تستی که برای آن جواب اشتباه می گرفتم را پیدا کنم و متوجه شوم که جایی از برنامه به جای r*r، نوشته بودم r. کمی باید بیشتر دقت کنم!&lt;/p&gt;

&lt;p&gt;سوال چهارمی که حل کردم، &lt;a href=&quot;http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=3394&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;سوال H&lt;/a&gt; بود، که یک شبیه سازی ساده بود. این مساله را نسبتا بدون خطا حل کردم، و شاید تنها نکته ی منفی این بود که حل این مساله آسان 40 دقیقه طول کشید. البته با فرض اینکه بررسی سوال های باقیمانده ی دیگر و خواندن صورت سوال احتمالا 15 دقیقه طول کشیده، خیلی هم بد نبود.&lt;/p&gt;

&lt;p&gt;سوال پنجمی که حل کردم، &lt;a href=&quot;http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=3390&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;سوال D&lt;/a&gt; بود، که با استفاده از مدل کردن مساله به صورت ضرب ماتریس حل می شد. یافتن ایده برای حل این مساله، نسبتا زیاد طول کشید، شاید حدود 40 دقیقه. ولی باز هم خیلی زیاد نبود. بزرگترین اشتباهم در این مساله که کد آن ساده بود این بود که در نوشتن کد عجله کردم و ماتریسی که تشکیل می دادم درست نبود و جواب نمی گرفتم. البته تست های صورت سوال را می گرفتم، ولی یکی از کارهای خوبی که کردم این بود که چند تست دستی ساده دادم تا متوجه شوم برنامه ام در برخی موارد اشتباه جواب می دهد. دیباگ کردن این مساله کلی طول کشید تا مدت زمان حل این مساله حدود 90 دقیقه باشد.&lt;/p&gt;

&lt;p&gt;سوال ششمی که حل کردم، &lt;a href=&quot;http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=3392&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;سوال F&lt;/a&gt; بود، که یک مساله خیلی ساده بود، ولی با این حال عجله کردم و دقت نکردم و دو اشتباه مضحک کردم که باعث شد 2 بار Wrong Answer بگیرم. البته در نتیجه ی مسابقه خیلی تاثیر نداشت، ولی اگر این 2 خطا را نمی کردم، به جای هشتم، هفتم می شدم.&lt;/p&gt;

&lt;p&gt;سپس به سراغ &lt;a href=&quot;http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=3391&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;سوال E&lt;/a&gt; رفتم، که پس از کمی بررسی روی کاغذ آن را با استفاده از برنامه سازی پویا حل کردم، و حدود 15 دقیقه به پایان مسابقه کد آن را شروع کردم که متاسفانه نتوانستم آن را بدون اشکال تمام کنم. اگر اشتباه های سوال های قبل را نکرده بودم، وقت خیلی بیشتری برای این سوال داشتم (حداقل 90 دقیقه به جای 40 دقیقه) و می توانستم 7 سواله شوم.&lt;/p&gt;

&lt;p&gt;در مورد دو سوال باقیمانده: &lt;a href=&quot;http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=3389&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;سوال C&lt;/a&gt; به نظر قابل حل با برنامه سازی پویا می آید، و &lt;a href=&quot;http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=3387&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;سوال A&lt;/a&gt; احتمالا با استفاده از روش عقبگرد و حرس کردن حل می شود.&lt;/p&gt;

&lt;p&gt;امیدوارم دفعات بعدی خطاهای کمتری مرتکب شوم :)&lt;br /&gt;
&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Mon, 29 Jun 2009 17:55:26 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/210-guid.html</guid>
    
</item>
<item>
    <title>Topcoder SRM 443</title>
    <link>http://blog.pykello.net/index.php?/archives/209-Topcoder-SRM-443.html</link>
            <category>Algorithms</category>
            <category>Competing</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/209-Topcoder-SRM-443.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=209</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=209</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;برای مشاهده بررسی سوال ها و راه حل ها به &lt;a href=&quot;http://wiki.pykello.net/doku.php?id=tc:srm_443&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;http://wiki.pykello.net/doku.php?id=tc:srm_443&lt;/a&gt; مراجعه کنید.&lt;/p&gt;

&lt;p&gt;بررسی عملکرد من در این مسابقه:&lt;br /&gt;
در یک کلام، نتیجه ام اصلا خوب نبود، و خیلی بد بود. ولی، این نتیجه بد در اثر صرفا تقدیر و سرنوشت و بدشانسی نبود، و من بد عمل کردم. اشتباه هایی که کردم:&lt;/p&gt;

&lt;p&gt;- برای سوال آسان، می توانستم با کمی بیشتر فکر کردن راه حلی آسان تر پیدا کنم، و امتیاز بیشتری بدست بیاورم. این اشتباه، خیلی بزرگ نبود و در نتیجه خیلی تاثیر نداشت.&lt;/p&gt;

&lt;p&gt;- سوال متوسط: اشتباهی که کردم، این بود که ابتدا از کنارهای راه های الگوریتمی به سرعت گذشتم و سعی کردم راه های ریاضی و فرمولی پیدا کنم. بدیهی بود که می شد این سوال را با BFS حل کرد، ولی BFS عادی زمان زیادی لازم داشت و مناسب نبود. ولی اکثر مواقع ارزش دارد که آدم راه های درست با زمان بد را بیشتر بررسی کند، که در اکثر مواقع منجر به راه حلی خوب می شود. که این مورد هم یکی از آن موارد بود. بالاخره، پس از صرف مدت قابل توجهی بر روی راه های ریاضی و عدم موفقیت، بدون اینکه به اندازه ی کافی فکر کنم، چون زمان کمی باقی مانده بود، سعی کردم راه حل BFS ای با مقداری بهینه سازی ساده بنویسم شاید جواب دهد. ولی با اینکه بر روی خیلی از تست ها خوب جواب می داد، بر روی برخی تست های دستی بیشتر از زمان مجاز 2 ثانیه طول می کشید، و برای همین submit نکردم. یک اشتباه دیگر این بود که به شکل خاص این گراف دقت نکردم. به آسانی با کمی تامل می شد BFS را طوری طراحی کرد که در زمان خیلی خوبی اجرا شود.&lt;/p&gt;

&lt;p&gt;- سوال سخت: با توجه به اینکه اکثر زمان را بر روی سوال متوسط صرف کردم، به این سوال تقریبا وقتی نرسید، و بنابراین برای این سوال تقریبا هیچ کار اشتباهی انجام ندادم :)&lt;/p&gt;

&lt;p&gt;- مرحله Challenge: اصولا آدم باید طوری عمل کند که برای داشتن رتبه ی خوب و افزایش rating نیازی به امتیازهای challenge نداشته باشد، و تنها برای بیشتر شدن افزایش rating در این مرحله تلاش کند. به هر حال، چون در حل مساله ها خوب عمل نکرده بودم، به این مرحله امید داشتم که در این مرحله نیز 50 امتیاز از دست دادم و نتیجه بدتر از پیش شد. دو کد در اتاق ما بود که با توجه به ranklist احتمال زیاد اشتباه بودند (و بودند)، اشتباه اول من این بود که کد شخصی با رتبه بهتر را زودتر باز کردم (اشتباه بود، چون بقیه نیز همین کار را می کنند، و برای اینکه احتمال اینکه فرصت Challenge پیدا کنم بیشتر باشد، بهتر است کدی که توسط شخص با رتبه بدتر نوشته شده است را زودتر باز کنم، یعنی بر عکس بقیه). به هر حال، 100 امتیاز مفت را در اینجا از دست دادم، و دو challenge ناموفق هم کردم و در کل 50 امتیاز در این مرحله از دست دادم. یکی از کدهایی که با عدم موفقیت challenge کردم، به طور واضحی اشتباه بود، ولی test case من به طرز احمقانه ای آسان بود و کد طرف درست جواب داد. به هر حال، در این مرحله چند تصمیم استراتژیک بهتر دیگر می شد گرفت، ولی چون این مرحله خیلی مهم نیست، بیشتر به این مرحله نمی پردازم.&lt;/p&gt;

&lt;p&gt;به هر حال، rating ام به اندازه 109 تا کاهش پیدا کرد، ولی کاملا امیدوارم که بتوانم در مسابقات بعدی خوب عمل کنم و دوباره به rating بالاتر دست پیدا کنم :) امیدوارم تا پایان امسال بتوانم به 2650 برسم. البته برای این کار باید 5-6 مسابقه مداوم بدون اشتباه و خوب عمل کنم.&lt;br /&gt;
&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Wed, 24 Jun 2009 18:12:26 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/209-guid.html</guid>
    
</item>
<item>
    <title>ZOJ Monthly Contest, Feburary 2009</title>
    <link>http://blog.pykello.net/index.php?/archives/208-ZOJ-Monthly-Contest,-Feburary-2009.html</link>
            <category>Algorithms</category>
            <category>Competing</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/208-ZOJ-Monthly-Contest,-Feburary-2009.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=208</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=208</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;بررسی سوال های مسابقه ی ZOJ Monthly Contest, Feburary 2009 : به &lt;a href=&quot;http://wiki.pykello.net/doku.php?id=zju:feburary09&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;http://wiki.pykello.net/doku.php?id=zju:feburary09&lt;/a&gt; مراجعه کنید.&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Tue, 23 Jun 2009 13:23:00 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/208-guid.html</guid>
    
</item>
<item>
    <title>POJ Founder Monthly Contest – 2008.07.27</title>
    <link>http://blog.pykello.net/index.php?/archives/207-POJ-Founder-Monthly-Contest-2008.07.27.html</link>
            <category>Algorithms</category>
            <category>Competing</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/207-POJ-Founder-Monthly-Contest-2008.07.27.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=207</wfw:comment>

    <slash:comments>3</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=207</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;بررسی سوال های مسابقه ی  POJ Founder Monthly Contest 2008.07.27 : به &lt;a href=&quot;http://wiki.pykello.net/doku.php?id=pku:2008-07-27&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;http://wiki.pykello.net/doku.php?id=pku:2008-07-27&lt;/a&gt; مراجعه کنید.&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Mon, 22 Jun 2009 13:07:34 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/207-guid.html</guid>
    
</item>
<item>
    <title>I had a nightmare last night</title>
    <link>http://blog.pykello.net/index.php?/archives/206-I-had-a-nightmare-last-night.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/206-I-had-a-nightmare-last-night.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=206</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=206</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;دلبندم! اجازه نده مخالفتت با شخصی باعث شود تا در تصمیم گیری ها شتاب کنی! عمیق تر بنگر!&lt;/p&gt;

&lt;p&gt;پ.ن. : این را بعد از دیدن خوابی نوشتم، در اثر اتفاقات روزمره ننوشتم.&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sun, 10 May 2009 07:19:28 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/206-guid.html</guid>
    
</item>
<item>
    <title>Russel told Moein to tell Mostafa to inform me that ...</title>
    <link>http://blog.pykello.net/index.php?/archives/205-Russel-told-Moein-to-tell-Mostafa-to-inform-me-that-....html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/205-Russel-told-Moein-to-tell-Mostafa-to-inform-me-that-....html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=205</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=205</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;شخص الف: &amp;quot;2 + 2 چند می شود؟&amp;quot;&lt;br /&gt;
شخص ب: &amp;quot;4&amp;quot;&lt;br /&gt;
شخص الف: &amp;quot;بی شعور، همه می دانند که 2 + 2 برابر با 5 است!&amp;quot;&lt;br /&gt;
شخص ب: &amp;quot;نه، حاصل تفکرات من می گوید که 4 می شود!&amp;quot;&lt;br /&gt;
شخص الف: &amp;quot;احمق، نادان، تو را خواهم کشت تا زمین از فساد پاک شود، و درس عبرتی برای دیگران شود که بدانند 2 + 2 برابر با 5 است!&amp;quot;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sun, 10 May 2009 06:58:06 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/205-guid.html</guid>
    
</item>
<item>
    <title>Ultimate sin</title>
    <link>http://blog.pykello.net/index.php?/archives/204-Ultimate-sin.html</link>
            <category>Daily Comments</category>
            <category>Joy of Science</category>
            <category>Mathematics</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/204-Ultimate-sin.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=204</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=204</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;ltr&quot; align=&quot;left&quot;&gt;There is no sin except 1/csc!&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sun, 26 Apr 2009 19:04:29 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/204-guid.html</guid>
    
</item>
<item>
    <title>Opera 14, in F, Allegro non troppo</title>
    <link>http://blog.pykello.net/index.php?/archives/203-Opera-14,-in-F,-Allegro-non-troppo.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/203-Opera-14,-in-F,-Allegro-non-troppo.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=203</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=203</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;ltr&quot; align=&quot;left&quot;&gt;Sergey&#039;s diaries, April 22nd: &quot;The doors were invented to enter, but I re-invented them to leave!&quot;&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sun, 26 Apr 2009 01:58:25 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/203-guid.html</guid>
    
</item>
<item>
    <title>... and I learned to lie painlessly!</title>
    <link>http://blog.pykello.net/index.php?/archives/202-...-and-I-learned-to-lie-painlessly!.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/202-...-and-I-learned-to-lie-painlessly!.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=202</wfw:comment>

    <slash:comments>4</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=202</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;از دفترچه خاطرات سريوژا در 15 آوریل 2009: «اعتراف می کنم، دروغ گفتم! شاید بزرگترین دروغ زندگی ام را! (تا حالا؟)»&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Wed, 15 Apr 2009 12:42:48 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/202-guid.html</guid>
    
</item>
<item>
    <title>IAUM CCC 5 Final Analysis - Part 1</title>
    <link>http://blog.pykello.net/index.php?/archives/201-IAUM-CCC-5-Final-Analysis-Part-1.html</link>
            <category>Algorithms</category>
            <category>Competing</category>
            <category>IAUM CCC</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/201-IAUM-CCC-5-Final-Analysis-Part-1.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=201</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=201</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;
&lt;a href=&quot;http://pykello.net/pdf/CCC5-Onsite-Finals.pdf&quot;&gt;لینک سوالات&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;
&lt;a href=&quot;http://wiki.pykello.net/doku.php?id=iaum:ccc5finals&quot;&gt;توضیح راه حل ها&lt;/a&gt;(فعلا توضیح سه سوال)&lt;/br&gt;
&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sun, 21 Dec 2008 13:40:28 -0500</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/201-guid.html</guid>
    
</item>
<item>
    <title>Independence is NP-Hard</title>
    <link>http://blog.pykello.net/index.php?/archives/200-Independence-is-NP-Hard.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/200-Independence-is-NP-Hard.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=200</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=200</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;احساسی عجیب به من دست داد هنگامی که دریافتم بدست آوردن&lt;a href=&quot;http://en.wiktionary.org/wiki/independence_number&quot;&gt; استقلال&lt;/a&gt; کار&lt;a href=&quot;http://en.wikipedia.org/wiki/NP-hard&quot;&gt; بسیار سختی&lt;/a&gt; است، و ممکن است نه تنها عمر انسان، بلکه عمر زمین هم برای یافتن آن کافی نباشد.
&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Fri, 05 Dec 2008 13:41:25 -0500</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/200-guid.html</guid>
    
</item>
<item>
    <title>Post-Fountain Era a.k.a Winter</title>
    <link>http://blog.pykello.net/index.php?/archives/199-Post-Fountain-Era-a.k.a-Winter.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/199-Post-Fountain-Era-a.k.a-Winter.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=199</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=199</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;مرگ به سراغ همه کس می آید، حتی خاطرات ...&lt;br /&gt;
&lt;center&gt;&lt;img src=&quot;images/summerwinter.png&quot; /&gt;&lt;/center&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Tue, 18 Nov 2008 06:05:23 -0500</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/199-guid.html</guid>
    
</item>
<item>
    <title>Lux Aeterna</title>
    <link>http://blog.pykello.net/index.php?/archives/198-Lux-Aeterna.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/198-Lux-Aeterna.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=198</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=198</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;کاش قایقی تنها بودم در اقیانوسی بی کران.&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Wed, 05 Nov 2008 13:47:04 -0500</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/198-guid.html</guid>
    
</item>
<item>
    <title>Top of the world</title>
    <link>http://blog.pykello.net/index.php?/archives/197-Top-of-the-world.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/197-Top-of-the-world.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=197</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=197</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;اجازه ی حضور در بهشت به مدت یک دقیقه را بدست آوردم،&lt;br /&gt;
وارد بهشت شدم، دقیقه ای گریستم،&lt;br /&gt;
خارج شدم به جهنم بازگشتم، به سرعت دویدم و در دره ای از آتش فرو رفتم.&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sat, 01 Nov 2008 02:57:49 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/197-guid.html</guid>
    
</item>
<item>
    <title>Women Mathematicians</title>
    <link>http://blog.pykello.net/index.php?/archives/196-Women-Mathematicians.html</link>
            <category>Joy of Science</category>
            <category>Mathematics</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/196-Women-Mathematicians.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=196</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=196</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;
امروز سری به صفحه &lt;a href=&quot;http://en.wikipedia.org/wiki/Category:Women_mathematicians&quot;&gt;لیست ریاضی دانان زن ویکی پدیا&lt;/a&gt; زدم. نکته ی جالب توجه برای من این بود که اسم دو ایرانی هم در آن لیست بود:&lt;br/&gt;
1. &lt;a href=&quot;http://en.wikipedia.org/wiki/Leila_Khatami&quot;&gt;لیلا خاتمی&lt;/a&gt;&lt;br/&gt;
2. &lt;a href=&quot;http://en.wikipedia.org/wiki/Maryam_Mirzakhani&quot;&gt;مریم میرزاخانی&lt;/a&gt;&lt;/br/&gt;&lt;br/&gt;&lt;br/&gt;
از افراد آن لیست تنها سه نفر را می شناختم :&lt;br/&gt;
1. &lt;a href=&quot;http://en.wikipedia.org/wiki/Sofia_Kovalevskaya&quot;&gt;سوفیا کوالوسکایا&lt;/a&gt;&lt;br/&gt;
2. &lt;a href=&quot;http://en.wikipedia.org/wiki/Emmy_Noether&quot;&gt;اِمی نوثر&lt;/a&gt;&lt;br/&gt;
3. &lt;a href=&quot;http://en.wikipedia.org/wiki/Ada_Lovelace&quot;&gt;ادا لاولیس&lt;/a&gt;&lt;br/&gt;
گمان کنم &quot;امی نوثر&quot; از دو فرد دیگر تاثیرگذارتر بود!
&lt;br/&gt;&lt;br/&gt;
همین طوری! برام جالب بود!
&lt;/div&gt;
&lt;br/&gt;&lt;br/&gt;
&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;http://83.137.212.42/sitearchive/eoc/images/womeninmaths.jpg&quot; alt=&quot;Women Mathematicians&quot;/&gt;&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Thu, 02 Oct 2008 14:31:09 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/196-guid.html</guid>
    
</item>
<item>
    <title>Dancing With the Bear</title>
    <link>http://blog.pykello.net/index.php?/archives/195-Dancing-With-the-Bear.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/195-Dancing-With-the-Bear.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=195</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=195</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;لحظات دردناک حداقل این خوبی را دارد که انسان برخی شرایط نامطبوع خود را کشف می کند،&lt;br /&gt;
ولی ممکن است این بدی را داشته باشد که برخی از این کشفیات اشتباه باشند!&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Wed, 01 Oct 2008 08:58:00 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/195-guid.html</guid>
    
</item>
<item>
    <title>Xibalba</title>
    <link>http://blog.pykello.net/index.php?/archives/194-Xibalba.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/194-Xibalba.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=194</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=194</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;گاهی اوقات انسان محکوم است که زندگی شادی داشته باشد،&lt;br /&gt;
گاهی اوقات انسان محکوم است که احساس تنهایی نکند،&lt;br /&gt;
گاهی اوقات انسان خاطرات گذشته را پاک می کند،&lt;br /&gt;
و زمان حال بدون هیچ خاطره و ردپایی می گذرد،&lt;br /&gt;
و آینده ای مجهول و بی اهمیت فرا می رسد.&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Fri, 26 Sep 2008 16:57:21 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/194-guid.html</guid>
    
</item>
<item>
    <title>A quote on life</title>
    <link>http://blog.pykello.net/index.php?/archives/193-A-quote-on-life.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/193-A-quote-on-life.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=193</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=193</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;ltr&quot; align=&quot;left&quot;&gt;
Just living is not enough.  One must have sunshine, freedom, and a little flower.  &lt;b&gt;~Hans Christian Anderson&lt;/b&gt;
&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Wed, 17 Sep 2008 16:32:08 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/193-guid.html</guid>
    
</item>
<item>
    <title>Almost Here</title>
    <link>http://blog.pykello.net/index.php?/archives/192-Almost-Here.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/192-Almost-Here.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=192</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=192</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;وجود خودمان (و بازخورد رفتارمان) دلیل خوبی است برای اینکه درباره ی دیگران و معنی رفتار آن ها زود قضاوت نکنیم.&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sun, 14 Sep 2008 12:30:01 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/192-guid.html</guid>
    
</item>
<item>
    <title>Break with your past</title>
    <link>http://blog.pykello.net/index.php?/archives/191-Break-with-your-past.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/191-Break-with-your-past.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=191</wfw:comment>

    <slash:comments>4</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=191</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;هنگامی که جوان تر بودم، هنگام سحر با صدای پرنده ها از خواب بیدار می شدم، و لذتی عجیب به من دست می داد.&lt;br /&gt;
تا آنکه مدتی پیش، در جایی سکنی گُزیدم که پرنده ی مهاجر در آن می خواند!&lt;br /&gt;
شنیدن صدای پرنده ی مهاجر و مشاهده ی طریقه پرواز آن از هر لذتی فراتر بود،&lt;br /&gt;
دوست داشتم تا آخر عمر هر روز صبح تا شب به صدای پرنده ی مهاجر گوش فرا می دادم،&lt;br /&gt;
ولی حیف که پرنده ی مهاجر نیاز دارد که مهاجرت کند، و من هرگز به آرزوی خود نخواهم رسید!&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Fri, 12 Sep 2008 01:38:59 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/191-guid.html</guid>
    
</item>
<item>
    <title>I hate 213.207.241.4</title>
    <link>http://blog.pykello.net/index.php?/archives/190-I-hate-213.207.241.4.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/190-I-hate-213.207.241.4.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=190</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=190</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;

مردم به من افتخار خواهند کرد، &lt;br/&gt;
هم میهنانم، هم نژادهایم، هم کیشانم،&lt;br/&gt;
چون آن ها نیاز دارند، نیاز دارند به دلیلی،&lt;br/&gt;
به دلیلی که با آن ثابت کنند که ایرانی بودن خوب است، ترک بودن خوب است، &lt;br/&gt;
آن ها نیاز دارند که خوش باشند،&lt;br/&gt;
ولی خوشی را در چیزهایی جستجو می کنند که خودشان در ایجاد آن هیچ اختیاری ندارند،&lt;br/&gt;
و نخواهند اندیشید به اینکه که خوشی آن ها مصادف با ناخوشی ملتی دیگر است.

&lt;br/&gt;&lt;br/&gt;
--------------------------------------------------------------------------
&lt;br/&gt;&lt;br/&gt;

مردم اسطوره ها خواهند ساخت،&lt;br/&gt;
و فراموش خواهند کرد که اسطوره یعنی دست نیافتنی، &lt;br/&gt;
و نخواهند فهمید که با این کار خودشان را محدود کرده اند،&lt;br/&gt;
و نخواهند فهمید که بدون اسطوره می توان زندگی بهتری داشت.

&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Wed, 10 Sep 2008 11:39:19 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/190-guid.html</guid>
    
</item>
<item>
    <title>How does it feel to be 87208151?</title>
    <link>http://blog.pykello.net/index.php?/archives/188-How-does-it-feel-to-be-87208151.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/188-How-does-it-feel-to-be-87208151.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=188</wfw:comment>

    <slash:comments>5</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=188</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;تحصیل خواهم کرد، تحصیل خواهم کرد تا فراموش کنم ...&lt;br /&gt;
 فراموش کنم که من تنها هستم.&lt;/p&gt;

&lt;p&gt;تحصیل خواهم کرد، و به مدارج بالاتر دست پیدا خواهم کرد ...&lt;br /&gt;
 احساس بودن در بهشت را خواهم کرد،&lt;br /&gt;
 ولی فراموش خواهم کرد که در بهشت واقعی نیستم،&lt;br /&gt;
 و جایی که من هستم تنها یک باغچه است،&lt;br /&gt;
 و پائیز و زمستانی در راه است.&lt;/p&gt;

&lt;p&gt;تحصیل خواهم کرد، و شخصیت مهمی خواهم شد، شخصیتی بسیار مهم!&lt;br /&gt;
 مردم مرا دوست خواهند داشت، و مرا تحسین خواهند کرد، &lt;br /&gt;
 ولی فراموش خواهم کرد که مردم تخصص مرا دوست دارند، و نه من را،&lt;br /&gt;
 فراموش خواهم کرد که مردم مثل من شدن را دوست دارند، و نه بودن با من را، &lt;br /&gt;
 و فراموش خواهم کرد که تنها یک تصادف برای فراموش شدن کافی است!&lt;/p&gt;

&lt;p&gt;تحصیل خواهم کرد، تحصیل خواهم کرد تا فراموش کنم، فراموش کنم درد واقعی وجود داشتن را! درد تنها بودن را ...&lt;/p&gt;

&lt;hr /&gt;
&lt;p&gt;پائیز خواهد آمد، و من تنها خواهم بود، تنهاتر از گذشته، &lt;br /&gt;
زمستان خواهد آمد، و من سرد خواهم شد، سردتر از گذشته، &lt;br /&gt;
بهار خواهد آمد، و آرام از کنارم خواهد گذشت، بی آنکه وجودش را حس کنم، &lt;br /&gt;
تابستان خواهد آمد، ولی من به فکر رسیدن پائیز سال بعد خواهم بود!&lt;/p&gt;

&lt;p&gt;دوباره پائیز خواهد آمد، زمستان، بهار، و تابستان نیز،&lt;br /&gt;
ولی دردها همه فراموش شده، و من فقط به فکر بالا رفتن هستم، به فکر بالا رفتن از قله های افتخار!&lt;/p&gt;

&lt;p&gt;به اوج قله های افتخار خواهم رسید، نفسی خواهم کشید،&lt;br /&gt;
و سپس خود را پرت خواهم کرد به سوی دردهای فراموش شده،&lt;br /&gt;
ولی حیف که ظرفیتش را نخواهم داشت،&lt;br /&gt;
و چه پایان غم انگیزی خواهد داشت بودن من!&lt;/p&gt;

&lt;hr /&gt;
&lt;p&gt;چه خوش گفت آن دوست نیک کردار:&lt;br /&gt;
«از فراموش شدگان هستیم و خواهیم بود»&lt;br /&gt;
وای به حال من،&lt;br /&gt;
منی که مرگ نیز فراموشم کرده است!&lt;/p&gt;

&lt;hr /&gt;
&lt;p&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;br /&gt;
پ.ن. : منظورم از جملات بالا این نبود که حس می کنم دوستانم مرا به خاطر چیز دیگری ، و نه به خاطر خودم، دوست دارند. لطفا سوء تفاهم نشود! اگر با کسی رفتار دوستانه ای دارم، مطمئن باشد که از او خیلی خوشم می آید! :) و اگر نسبت به کسی احساس خوبی نداشته باشم، معمولا آشکار می سازم!&lt;br /&gt;
&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&amp;lt;/html&amp;gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Wed, 10 Sep 2008 08:05:22 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/188-guid.html</guid>
    
</item>
<item>
    <title>Summer of Big Decisions</title>
    <link>http://blog.pykello.net/index.php?/archives/187-Summer-of-Big-Decisions.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/187-Summer-of-Big-Decisions.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=187</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=187</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;تابستان تصمیمات بزرگ، تصمیماتی که هیچ کدام عملی نشد ...&lt;br /&gt;
ولی زندگی همچنان جریان دارد.&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Mon, 08 Sep 2008 22:40:11 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/187-guid.html</guid>
    
</item>
<item>
    <title>Cyber Madness</title>
    <link>http://blog.pykello.net/index.php?/archives/186-Cyber-Madness.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/186-Cyber-Madness.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=186</wfw:comment>

    <slash:comments>11</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=186</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;justify&quot;&gt;
بحثی که می خواهم مطرح کنم، احتمالا موافقان و مخالفانی خواهد داشت. نکته ی مورد بحث من اين است که: &quot;تا چه حدی به کامپیوتر و اينترنت نیازمندیم؟&quot; &lt;br/&gt; &lt;br/&gt;
نمی توان منکر آن شد که کامپیوتر و اینترنت، نقش برجسته ای در تسهیل زندگی و به اشتراک گذاشتن اطلاعات دارد. من خودم شخصی هستم که ساعات بسیاری را پشت کامپیوتر و متصل به اینترنت صرف می کنم. البته میزان این ساعات بستگی به وضعیت فعلی زندگی ام دارد، مثلا الان احتمالا روزی 12 ساعت یا بیشتر پشت کامپیوتر هستم. ولی آيا واقعا اين میزان استفاده از کامپیوتر زندگی من را بهتر کرده است؟ مرا دانشمندتر کرده است؟ آیا زندگی ای بهتر از این نمی توان داشت؟  &lt;br/&gt; &lt;br/&gt;
البته، خودم از این نوع زندگی اصلا راضی نیستم، و خیلی از اوقات دلیلم برای این کار این است که مثلا در حال فعلی، توانایی انجام کار دیگری را ندارم، یا مثلا در بعضی از اوقات، صرف ساعات پشت کامپیوتر تنها برای از یاد بردن مشکلات دیگر زندگی است و به عنوان نوعی مسکن به کار می رود. ولی احتمالا همان گونه که دوستانم شاید به یاد داشته باشند، در روزهایی که از زندگی بسیار راضی بودم، استفاده ی من از کامپیوتر به شدت کمتر بود. مثلا وقتی از دانشگاه به خوابگاه می آمدم، دیگر از کامپیوتر استفاده ای نمی کردم، ... &lt;br/&gt; &lt;br/&gt;
عقیده ی من این است که اکثر اوقات (و نه همیشه، مثلا نه هنگام آمادگی برای مسابقات برنامه نویسی)، روزی حداکثر 3 ساعت پشت کامپیوتر نشستن، و روزی حداکثر 1 ساعت متصل بودن به اینترنت کافی است! اگر مخالف این عقیده هستید، لطفا ابتدا چند روز استفاده خود از کامپیوتر را بررسی کنید، و سپس به خواندن ادامه دهید. &lt;br/&gt; &lt;br/&gt;
یکی از دوستان می گفت که اینترنت منبع دانش است، و اگر بخواهیم همان دانش را خودمان تولید کنیم قرن ها طول می کشد. تا حدی قبول می کنم.  ولی تا حدی نه. اولا، به نظر من اینترنت بیشتر منبع &quot;اطلاعات&quot; است و نه دانش. اگر چیزی که مثلا در یک ساعت خوانده می شود، به همان میزان یا بیشتر مورد تفکر و بررسی قرار نگیرد، شک دارم بتواند تاثیر بسزایی در شخصیت، قدرت تفکر، ... ما داشته باشد. و برای فکر کردن، اصولا باید پردازنده ی مغز متمرکز بر روی آن موضوع شود، و بعید می دانم اگر بقیه ی روز را پشت کامپیوتر صرف کنیم هیچ گاه این فرصت را به دست بیاوریم.   &lt;br/&gt; &lt;br/&gt;
ثانیا، تجربه ی شخصی من بیان می کند که معمولا راه های بهتری برای دانشمندتر شدن وجود دارد. مثلا من خودم روزگاری به شدت در اینترنت به دنبال مطالبی مرتبط با نظریه ی گراف ها بودم، و دوست داشتم منابع بیشتری پیدا کنم و دانش خود را در این زمینه افزایش دهم. ولی واقعا اعتقاد دارم آن یک ماهی که به جای این کار نشستم و یک کتاب در زمینه ی نظریه ی گراف ها خواندم و تمرین های آن را حل کردم، به میزان خیلی بیشتر تاثیرگذارتر بود. &lt;br/&gt; &lt;br/&gt;
تجربه ی دیگر اینکه، تا حدودی حس می کنم اینکه در مسابقات برنامه نویسی تنها یک کامپیوتر در اختیار تیم های سه نفری است، خیلی اوقات، مزیت و نه محدودیت محسوب می شود. دلیل من و خیلی از افراد با تجربه هم این خواهد بود که روی کاغذ بهتر می شود فکر کرد، و یک شخص کم تجربه تر وقتی پشت کامپیوتر است، وسوسه می شود که شروع به نوشتن کد کند، و تقریبا فرصتی برای فکر کردن پیدا نمی کند، و چنین شخصی هیچ وقت موفق نخواهد شد یک مساله ی سخت را حل کند! داشتن یک کامپیوتر حداقل این مزیت را دارد که در هر لحظه حداقل دو نفر مجبورند پشت کامپیوتر نباشند، و بهترین کاری که می توانند فکر کردن است، که به مراتب از نوشتن کد سخت تر و البته شیرین تر است. &lt;br/&gt; &lt;br/&gt;

همچنین گمان می کنم داشتن دوستان و اطرافیانی (مهربان :D) با علایق مشترک، خیلی اوقات می تواند به اندازی جستجو در اینترنت و یا حتی بیشتر در پیشرفت علمی انسان تاثیر گذار باشد. حداقل این مزیت را هم خواهد داشت که انسان با چند نفر ارتباطی عاطفی نیز برقرار خواهد کرد، و لذت های فراتری را نیز تجربه می کند.

&lt;br/&gt;&lt;br/&gt;

تحصیلات عالی برای شخصی علاقه مند به علوم کامپیوتر حداقل این مزیت را دارد که شخصی که در زمینه ی علوم کامپیوتر  تحصیلات عالی دارد دیگر نیازی ندارد برای پول درآوردن ساعت های زیادی را پشت کامپیوتر بنشیند، و کد بنویسد، و این کار احمقانه (یعنی نشستن پشت کامپیوتر به میزان زیاد) را تا آخر عمر ادامه دهد. و به جای این کار می توان در مکانی سرسبز، کنار رودخانه ای، بنشیند، و به مساله ای که روی آن باید تحقیق کند فکر کند! یا اینکه در حالی که بچه های خود را در حال بازی کردن می بیند، و از صدای آن ها لذت می برد، روی مساله ای فکر کند. &lt;br/&gt; &lt;br/&gt;
لطفا نظرات خود را بیان کنید! فقط این نکته را در نظر داشته باشید که مورد بحث من نشستن اکثر روز پشت کامپیوتر و زل زدن به مانیتور، و نه استفاده های مفید آن (مثلا گوش دادن به موسیقی، ...) است.

&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;color:green&quot;&gt;
پ.ن. : ظاهرا این گونه از متن بالا برداشت می شود که من اعتقاد دارم دانشمندتر = خوشبخت تر. (و چقدر احمق هستم اگر این اعتقاد را داشته باشم) ولی معلومه که اینطوری نیست :) اگر بحث های بالا را مطرح کردم، به این دلیل بود که اکثر افرادی که من می شناسم که به میزان زیاد پشت کامپیوتر هستند و این کارشان را موجه می دانند، دلیلشان همین است که به دنبال دانش بیشتری هستند، و من گمان می کنم این گونه افراد اشتباه می کنند، و راه های بهتری برای کسب دانش بیشتر که لذت بیشتری هم دارد وجود دارد. و گرنه افرادی که مثلا به چت یا گیم اعتیاد دارند، از نظر من به صورت بدیهی اشتباه می کنند و گمان کنم نظر اکثر افراد هم همین باشد، و خودشان هم توجیه خاصی برای این کارشان نداشته باشند، و اصلا نیازی نیست به بحث در مورد آن ها پرداخته شود. گمان کنم اکثرا افرادی که مثلا به دنبال دانش هستند کارشان را موجه می دانند، و برای همین من فقط به این گروه افراد پرداختم، که به نظرم اصولا کار اشتباهی انجام می دهند. که نه تنها دانش قابل توجهی کسب نمی کنند، بلکه در این حین میزان زیادی وقت تلف می کنند، و خودشان را از لذت واقعی زندگی نیز محروم می کنند. و این افراد می توانند با میزان ساعات استفاده ی خیلی کمتر از کامپیوتر و رایانه ( و نه هیچ استفاده ای ) به همان نتیجه یا حتی بهتر دست پیدا کنند.
&lt;/span&gt;

&lt;br/&gt;&lt;br/&gt;
&lt;span style=&quot;color:blue&quot;&gt;
پ.ن. 2 : برای اینکه نسبتا ثابت کنم به نظرم دانشمندتر مخالف خوشبخت تر است، گمان کافی باشد که بگویم تا لحظات آخر، یعنی تا حدود یک هفته مانده به ثبت نام ارشد (یعنی حدودا هشتم شهریور 1387) نمی خواستم ادامه تحصیل بدهم و در دوره ی ارشد ثبت نام کنم. و الان هم که ثبت نام کردم، به این دلیل نیست که خودم انگیزه پیدا کرده ام، یا آینده ی خود را روشن تر می بینم. دلیل اصلی ام برای انصراف از ادامه تحصیل این بود که می خواستم زندگی بهتر و با آرامش تری داشته باشم، هر چند مطمئنم خیلی از افراد مرا به خاطر این دلیل احمق خواهند نامید، و البته آزادند هر اعتقادی داشته باشند، ولی من هرگز دلایل آن ها را برای ادامه ی تحصیل نپذیرفتم و نپذیرفته ام، ولی چه کنم که انسان مستقل از دیگران نیست و برخی اوقات باید تن به خواسته های دیگران دهد!
&lt;br/&gt;
یا مثال دیگر اینکه پارسال نمی خواستم در ACM ICPC شرکت کنم، ولی به دلایلی به غیر از لذت بردن از این مسابقات، در آخرین لحظات ممکن وارد معرکه شدم!
&lt;/span&gt;

&lt;br/&gt;&lt;br/&gt;
&lt;span style=&quot;color:green&quot;&gt;
پ.ن. 3 : اینکه اعتقاد ندارم دانشمند تر شدن = خوشبخت تر بودن، چندین موضوع را می رساند : اولا اینکه شرط کافی برای احساس خوشبختی در خودم فقط علم زیاد نیست (هرچند جزئی از آن است). ثانیا، اگر اینگونه اعتقاد داشته باشم، منجر به دید بدی و طبقه بندی بدی نسبت به دیگران خواهد شد. ثالثا، اگر این دو را مساوی در نظر نگیرم، این به این معنا نیست که اشتراک مجموعه افراد خوشبخت و افراد دانشمند تهی است، و مسلما افراد دانشمند زیادی بوده اند که بسیار خوشبخت بودند. شاید داشتن کمی دید در زمینه ی ریاضیات گسسته و نظریه ی مجموعه ها در رفع ابهام کمک کند! و امیدوارم کسی از دست من ناراحت نشده باشد.
&lt;/span&gt;
&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sat, 06 Sep 2008 22:48:38 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/186-guid.html</guid>
    
</item>
<item>
    <title>Last Judgement</title>
    <link>http://blog.pykello.net/index.php?/archives/185-Last-Judgement.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/185-Last-Judgement.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=185</wfw:comment>

    <slash:comments>4</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=185</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;ساعت دوازده و چهل و پنچ دقیقه، هنگامی که به نظر می رسید خوشبختی من در حال آغاز شدن است، دنیا به پایان رسید.&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Thu, 28 Aug 2008 08:31:49 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/185-guid.html</guid>
    
</item>
<item>
    <title>Promentory</title>
    <link>http://blog.pykello.net/index.php?/archives/184-Promentory.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/184-Promentory.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=184</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=184</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;جاودانگی نیاز به کارهای بزرگ دارد، ولی کارهای بزرگ نیازی به جاودانگی ندارند ...&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Wed, 27 Aug 2008 16:02:55 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/184-guid.html</guid>
    
</item>
<item>
    <title>Fort Battle</title>
    <link>http://blog.pykello.net/index.php?/archives/183-Fort-Battle.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/183-Fort-Battle.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=183</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=183</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;هنگامی که «ارواح پلید» به «رویاها» ی انسان راه پیدا می کنند، احساس عجیبی به انسان دست می دهد که در یک هنگام، هم احساس خوشبختی می کند و هم احساس بدبختی ...&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Mon, 25 Aug 2008 13:02:20 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/183-guid.html</guid>
    
</item>
<item>
    <title>IOI 2008</title>
    <link>http://blog.pykello.net/index.php?/archives/182-IOI-2008.html</link>
            <category>Competing</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/182-IOI-2008.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=182</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=182</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;justify&quot; &gt;
&lt;img src=&quot;images/karatkevich.jpg&quot; align=&quot;left&quot; alt=&quot;IOI, Karatkevich&quot; style=&quot;padding:10px&quot;/&gt;

&lt;a href=&quot;http://ioi2008.org/&quot; &gt;المپیاد کامپیوتر جهانی 2008&lt;/a&gt; برگزار شد. از نکات جالب  مسابقه ی امسال:&lt;br/&gt;&lt;br/&gt;

1. متاسفانه دولت مصر ابتدا از دادن ویزا به تیم ایران سر باز زد، و وقتی ویزا صادر کرد که یک روز از مسابقات گذشته بود، و دیگر دیر شده بود. واقعا جای تاسف داره!&lt;br/&gt;&lt;br/&gt;

2. موجودی بلاروسی به نام &lt;a href=&quot;http://www.topcoder.com/tc?module=MemberProfile&amp;cr=22263204&quot;&gt;Henadzi Karatkevich&lt;/a&gt; که تنها 14 سال دارد، مدال طلا گرفت. البته خیلی جای تعجب نداره، چون وقتی 12 ساله بود مدال نقره گرفته بود، و هنگام 13 سالگی مدال طلا. اگر 2 سال دیگر هم مدال طلا بگيره، به پرافتخارترین شرکت کننده ی المپیاد کامپیوتر را کسب می کنه. (فعلا متعلق به &lt;a href=&quot;http://www.topcoder.com/tc?module=MemberProfile&amp;cr=7300191&quot;&gt;Filip Wolski&lt;/a&gt; هست با 4 مدال طلا). 
&lt;br/&gt;&lt;br/&gt;
3. پس از گذشت مدت نسبتا زیادی، هنوز نتایج در وب سایت مسابقات قرار نگرفته. به هر حال، می توانید نتایج را در &lt;a href=&quot;http://contests.snarknews.info/index.cgi?data=ioi/2008/ioi08res_e&amp;menu=index&amp;head=index&amp;hide12=y&quot;&gt;SnarkNews&lt;/a&gt; ّببینید.
&lt;br/&gt;&lt;br/&gt;
4. نتیجه تیم چین خیلی خوب نبود. یکی از اعضای تیم خیلی بد عمل کرد و مدال نقره گرفت، و در نتیجه تنها موفق به اخذ 3 طلا شدند :D سال 2004 تا سال 2007 همه ی مدال های چین طلا بود.
&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sat, 23 Aug 2008 18:40:14 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/182-guid.html</guid>
    
</item>
<item>
    <title>The Fountain of Youth</title>
    <link>http://blog.pykello.net/index.php?/archives/180-The-Fountain-of-Youth.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/180-The-Fountain-of-Youth.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=180</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=180</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;justify&quot;&gt;
&lt;img src=&quot;images/last_of_mohicans.jpg&quot; align=&quot;left&quot; border=&quot;0&quot; alt=&quot;The Last of Mohicans&quot; style=&quot;padding:10px&quot; /&gt;

مواقع زیادی در زندگی، خیلی از معانی context free نیستند، و خیلی از چیزها با توجه به context-ای که در آن وجود دارند معنا پیدا می کنند ...&lt;br/&gt;&lt;br/&gt;
موسیقی ای که ممکن است برای یکی بسیار جذاب و پر از مفاهیم عمیق باشد، ممکن است برای دیگری موسیقی ای بسیار بد و بی هیچ مفهوم سازنده ای به نظر برسد ...&lt;br/&gt;&lt;br/&gt;
موسیقی ای که زمانی یادآور پیروزی و شکست ناپذیری بود، ممکن است روزی یادآور بدبختی و فلاکت و «نابودی رویاهای شیرین» باشد ...&lt;br/&gt;&lt;br/&gt;
توانایی حرف زدن نعمتی بزرگ است، توانایی حرف نزدن نعمتی بزرگ تر.&lt;br/&gt;&lt;br/&gt;
نقد هنگام رخ دادن؟ یا نقد پس از رخ دادن؟&lt;br/&gt;
نقد هنگام دقت؟ یا نقد هنگام عدم دقت؟&lt;br/&gt;
&lt;br/&gt;
&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sat, 23 Aug 2008 16:56:10 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/180-guid.html</guid>
    
</item>
<item>
    <title>Hadi Saei wins gold medal!</title>
    <link>http://blog.pykello.net/index.php?/archives/179-Hadi-Saei-wins-gold-medal!.html</link>
            <category>Competing</category>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/179-Hadi-Saei-wins-gold-medal!.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=179</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=179</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;
&lt;img src=&quot;images/saei.jpg&quot; align=&quot;left&quot; /&gt; 
هادی ساعی مدال طلای المپیک پکن را تصاحب کرد!
&lt;br/&gt;&lt;br/&gt;
 ای کاش همه ی ما «ساعی» باشیم ...
&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Fri, 22 Aug 2008 08:34:36 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/179-guid.html</guid>
    
</item>
<item>
    <title>IAUM CCC 5</title>
    <link>http://blog.pykello.net/index.php?/archives/176-IAUM-CCC-5.html</link>
            <category>Competing</category>
            <category>IAUM CCC</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/176-IAUM-CCC-5.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=176</wfw:comment>

    <slash:comments>8</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=176</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;

&lt;img src=&quot;images/iaumc3.png&quot; alt=&quot;IAUM CCC 5&quot; border=0 align=&quot;left&quot; /&gt;

بالاخره، مرحله نهایی مسابقه ی IAUM CCC 5 برگزار شد، و تنها چیزی که برای من به جا ماند، خاطره ای نسبتا خوش بود! هرچند از چند روز قبل از مسابقه تا اتمام مسابقه ی نهایی استرس شدیدی داشتم و آرزوی اتمام این لحظات را داشتم، ولی پس از اتمام مسابقه ی نهایی و شنیدن نظرات شرکت کنندگان، احساس رضایت کردم. &lt;br/&gt;&lt;br/&gt;

من فقط یک طراح سوال و داور بودم، و عضو هیئت اجرایی نبودم، با این حال، در این مدتی که در مشهد بودم، تلاش قابل تقدیر دانشجویان دانشگاه آزاد مشهد را مشاهده کردم، و از ته دل آرزو کردم که این مسابقات باز هم ادامه داشته باشد. احتمالا مهم ترین دلیل اینکه هر سال شرکت کنندگان این مسابقات بیشتر می شود، و افراد قوی تری هر سال جذب این مسابقات می شوند، برگزاری بسیار خوب این مسابقات است. &lt;br/&gt;&lt;br/&gt;

به نظر من، یکی از نکات مثبت حضور داشتن در این مسابقات آشنا شدن با افرادی است که علايقم با علايق آن ها  همپوشانی دارد، ولی قبلا با آن ها آشنا نبودم، و این احساس خوبی در من ایجاد می کند.&lt;br/&gt;&lt;br/&gt;

نظرم در رابطه با نتیجه ی مرحله ی نهایی: گمان کنم چند نفر از افراد، احتمالا به علت عوامل جانبی (مانند استرس سر مسابقه، ...)، و نه به علت ضعف در حل مساله و توانایی علمی، ضعیف تر از توان واقعی خود عمل کردند و نتیجه نهایی کمی اعجاب انگیز بود. برنده ی نهایی مسابقه، آقای نیما احمدی پور بود، که بسیار خوب عمل کرد، و توانست همه ی مسائل را حل کند. به هر حال، تعداد زیادی از شرکت کننده ها را می شناختم و با تعدادی از آن ها دوست بودم، و از خوب عمل کردن خیلی های خوشحال شدم، و از بد عمل کردن خیلی ها ناراحت. &lt;br/&gt;&lt;br/&gt;

با این حال، عادی است که شدیدا دوست داشته باشم که کسی که دو سال هم تیمی ام بود، و یک ترم هم اتاقی، و برای باقی عمرم یک دوست بسیار خوب، یعنی محمدرضا خانی، خیلی خوب عمل کند. نتیجه نهایی او (یعنی چهارم) خوب بود، ولی با توجه به اینکه به نظر من باهوش ترین عضو تیم Dreamers United  بود، گمان می کنم می توانست بهتر از این هم عمل کند. احتمالا یکی از دلایل اینکه خیلی خوب عمل نکرد، کمبود تمرین در چند ماه اخیر بود. امیدوارم هر روز موفق تر از دیروز باشد. &lt;br/&gt;&lt;br/&gt;

در ادامه به توضیح مختصر در مورد سوالاتی که من طرح کرده بودم می پردازم: &lt;br/&gt;&lt;br/&gt;

&lt;span style=&quot;color:red&quot;&gt;مسابقه نیمه نهایی صفر&lt;/span&gt;(&lt;a href=&quot;http://pykello.net/pdf/CCC5-Onsite-Semifinals-0.pdf&quot;&gt;لینک سوالات&lt;/a&gt;)&lt;br/&gt;&lt;br/&gt;

&lt;span style=&quot;color:green&quot;&gt;سوال C - کوتاه ترین زیر رشته ی نا مشترک : &lt;/span&gt; این سوال را با استفاده از Trie و مرتبه ی زمانی (O(n^2 حل کرده بودم، ولی راه حل های با مرتبه ی زمانی (O(n^2 log n نیز پذیرفته می شدند.&lt;br/&gt;&lt;br/&gt;

&lt;span style=&quot;color:green&quot;&gt;سوال D - مربع ها : &lt;/span&gt; هدف این بود که راه حل های (O(n^2 (برنامه نویسی پویا) و (O(n^2 log n (تبدیل به هیستوگرام و مرتب سازی و ...) پذیرفته شوند، ولی متاسفانه داده های تست ضعیف بود و راه حل (O(n^3 نیز پذیرفته می شد. &lt;br/&gt;&lt;br/&gt;

&lt;span style=&quot;color:green&quot;&gt;سوال E - تطبیق الگو : &lt;/span&gt; این سوال قرار بود سخت ترین سوال مسابقه باشد، ولی به علت عدم دقت در تنظیم محدودیت ها، آسان ترین سوال مسابقه بود! (مثلا باید اگر طول الگو 20000 بود و تعداد علامت سوال ها حداکثر 100، در آن صورت، بازهم راه حل خوبی برای حل مساله وجود داشت، ولی راه حل بدیهی خوب عمل نمی کرد.) با همین محدودیت ها، راه حل بدیهی به خوبی جواب می دهد. ولی اگر محدودیت ها خیلی سخت تر از این بودند، نسخه ی تغییر یافته ای از KMP، یا استفاده از Aho-Corasick می توانست مساله را به خوبی حل کند.&lt;br/&gt;&lt;br/&gt;

&lt;span style=&quot;color:green&quot;&gt;سوال F - شمارش جفت ها : &lt;/span&gt; قرار بود راه حل (O(n log n پذیرفته شود، ولی ظاهرا برخی از شرکت کننده ها با راه حل (O(n^2 محدود شده نیز توانسته بودند این سوال را حل کنند.&lt;br/&gt;&lt;br/&gt;

&lt;span style=&quot;color:green&quot;&gt;جمع بندی :&lt;/span&gt;در مجموع، از این مسابقه چندان راضی نبودم! چون زیاد اشتباه کرده بودیم! در انتها نیز دو نفر (نیما احمدی پور، و حامد احمدی) توانستند تمام سوالات را حل کنند، و حامد احمدی عنوان اول این مسابقه را کسب کرد.&lt;br/&gt;&lt;br/&gt;

&lt;span style=&quot;color:red&quot;&gt;مسابقه نیمه نهایی یک&lt;/span&gt;(&lt;a href=&quot;http://pykello.net/pdf/CCC5-Onsite-Semifinals-1.pdf&quot;&gt;لینک سوالات&lt;/a&gt;)&lt;br/&gt;&lt;br/&gt;

&lt;span style=&quot;color:green&quot;&gt;سوال B - علی کوچولو و کلمات متقارن : &lt;/span&gt; راه حل داور دارای مرتبه ی زمانی متناسب با مجموع طول کلمات بود. &lt;br/&gt;&lt;br/&gt;

&lt;span style=&quot;color:green&quot;&gt;سوال C - تجزیه ی گراف ها : &lt;/span&gt; تبدیل می شود به مساله ی 2SAT . تنها یک نفر موفق شد این مساله را سر مسابقه حل کند (مهدی صفرنژاد) ولی حداقل دو نفر دیگر به ایده ی این سوال رسیده بودند ولی از آن جایی که بلد نبودند کد 2SAT را بنویسند، موفق به حل آن نشدند. ظاهرا محمدرضا خانی راه حل دیگری برای این سوال داشت، که به علت خستگی، از او خواستم بعدا توضیح دهد!&lt;br/&gt;&lt;br/&gt;

&lt;span style=&quot;color:green&quot;&gt;سوال F - یافتن زیر درخت : &lt;/span&gt; بیش از یک راه حل با مرتبه ی زمانی خطی برای حل این مساله وجود دارد.&lt;br/&gt;&lt;br/&gt;

&lt;span style=&quot;color:green&quot;&gt;جمع بندی :&lt;/span&gt; این مسابقه راضی کننده تر از مسابقه ی قبلی بود، و تقریبا هیچ مشکل خاصی پیش نیامد. در انتها مهدی صفر نژاد با حل 5 سوال نفر اول این مسابقه شد.&lt;br/&gt;&lt;br/&gt;

&lt;span style=&quot;color:red&quot;&gt;مسابقه ی نهایی&lt;/span&gt;(&lt;a href=&quot;http://pykello.net/pdf/CCC5-Onsite-Finals.pdf&quot;&gt;لینک سوالات&lt;/a&gt;)&lt;br/&gt;&lt;br/&gt;

&lt;span style=&quot;color:green&quot;&gt;سوال A - شمارش درخت های پوشا : &lt;/span&gt; این مساله را می توان با استفاده از قضیه ی Matrix-Tree حل کرد. ولی از آن جایی که اصولا نباید انتظار داشته باشیم شرکت کننده ها چنین قضایایی را بلد باشند، من خودم این مساله را با استفاده از یک الگوریتم برنامه سازی پویای (O(n^2 3^n حل کرده بودم. سر مسابقه سه نفر این مساله را حل کردند که دو نفر از قضیه ی مذکور استفاده کردند، و یک نفر از راه حل برنامه سازی پویا (نمی دانم راه حلش شبیه مال من بود یا نه). &lt;br/&gt;&lt;br/&gt;

&lt;span style=&quot;color:green&quot;&gt;سوال B - کوچک ترین مثلث : &lt;/span&gt; با راه حل (O(n^3  ای که خوب پیاده سازی شده باشد حل می شود، ولی احتمالا راه حل های بهتری نیز وجود دارند!&lt;br/&gt;&lt;br/&gt;

&lt;span style=&quot;color:green&quot;&gt;سوال C - رشته های امن : &lt;/span&gt; برنامه سازی پویا با استفاده از آرایه ی overlap الگوریتم KMP! &lt;br/&gt;&lt;br/&gt;

&lt;span style=&quot;color:green&quot;&gt;سوال D - مسافرت های تصادفی : &lt;/span&gt; راه حل من یک DFS بود، ولی ظاهرا اکثر شرکت کنندگان از راه حل دیگری استفاده کردند.&lt;br/&gt;&lt;br/&gt;

&lt;span style=&quot;color:green&quot;&gt;سوال E - انتخاب پروژه ها : &lt;/span&gt; تبدیل می شود به مساله ی مشهور Minimum Cut در گراف. تنها یک نفر (نیما احمدی پور) موفق به حل این مساله شد، ولی حداقل یک نفر دیگر ایده ی درست برای حل این مساله را داشت (مهدی صفرنژاد)، که متاسفانه راه حلش جواب درست را نمی داد.&lt;br/&gt;&lt;br/&gt;

&lt;span style=&quot;color:green&quot;&gt;سوال F - پارادوکس : &lt;/span&gt; راه حل این مساله ترکیبی است از پیدا کردن مولفه های همبند، Brute Force، و برنامه سازی پویا. باز هم تنها یک نفر موفق به حل این مساله شد (نیما احمدی پور) ولی راه حل مهدی صفرنژاد هم اکثر تست ها را درست جواب می داد و تنها در چندین تست با پاسخ داور تفاوت داشت.&lt;br/&gt;&lt;br/&gt;

&lt;span style=&quot;color:green&quot;&gt;سوال G - طولانی ترین زیردنباله ی مشترک : &lt;/span&gt; برنامه سازی پویا. نکته ی اساسی این مساله این بود که هر عدد حداکثر یک بار در هر دنباله وجود دارد. چندین نفر تلاش کردند که از چندین LCS دو به دو استفاده کنند که مسلما راه حل درستی نیست و با کمی تامل می توان مثال نقضی برای آن پیدا کرد. &lt;br/&gt;&lt;br/&gt;

&lt;span style=&quot;color:green&quot;&gt;جمع بندی : &lt;/span&gt; از آن جایی که مشکل خاصی وجود نداشت، و شرک کنندگان هم از سطح و نوع سوالات راضی بودند، مسابقه ی خوبی بود، و باعث شد که مسابقات به خوشی برای من تمام شود. در انتها نیز نیما احمدی پور با حل 8 سوال مقام اول را کسب کرد.

&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Mon, 18 Aug 2008 10:24:00 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/176-guid.html</guid>
    
</item>
<item>
    <title>I run</title>
    <link>http://blog.pykello.net/index.php?/archives/178-I-run.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/178-I-run.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=178</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=178</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;
می دوم در کوچه های پر از بن بست، و خیابان های پر از وحشت ...&lt;br/&gt; فرار می کنم از حال، فرار می کنم از گذشته ...&lt;br/&gt; چرا دیگر از کوه های زیبا بالا نمی روم؟
&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Mon, 18 Aug 2008 00:37:00 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/178-guid.html</guid>
    
</item>
<item>
    <title>Minilek Boycotts Google Codejam </title>
    <link>http://blog.pykello.net/index.php?/archives/177-Minilek-Boycotts-Google-Codejam.html</link>
            <category>Competing</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/177-Minilek-Boycotts-Google-Codejam.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=177</wfw:comment>

    <slash:comments>5</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=177</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;
&lt;img src=&quot;http://www.topcoder.com/i/m/Minilek_big3.jpg&quot; align=&quot;Left&quot;&gt;
احتمالا بعضی از شما می دانید که قوانین امسال &lt;a href=&quot;http://code.google.com/codejam/&quot;&gt;Google CodeJam&lt;/a&gt; اجازه ی شرکت در مسابقات نیمه نهایی و نهایی را به ساکنان ایران و ساکنان سایر کشورهای مورد تحریم آمریکا نمی دهد. شاید برایتان جالب باشد که بدانید حداقل یک آمریکایی (&lt;a href=&quot;http://www.topcoder.com/tc?module=MemberProfile&amp;cr=9958883&quot;&gt;Jelani Nelson یا Minilek&lt;/a&gt;) به همین دلیل این مسابقات را تحریم کرده است. (&lt;a href=&quot;http://forums.topcoder.com/?module=Thread&amp;threadID=615210&amp;start=345&amp;mc=351#1013978&quot;&gt;لینک اول&lt;/a&gt;، &lt;a href=&quot;http://groups.google.com/group/google-code/browse_thread/thread/d05482fadf6cd882/d36f55ed556b7252?lnk=raot&quot;&gt;لینک دوم&lt;/a&gt;).
&lt;br/&gt;&lt;br/&gt;به عنوان یک ایرانی، از او تشکر می کنم!
&lt;br/&gt;&lt;br/&gt; شاید جالب باشید بدانید که این شخص آدم خفنی می باشد. (&lt;a href=&quot;http://web.mit.edu/minilek/www/&quot;&gt;صفحه شخصی وی&lt;/a&gt;)
&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sun, 17 Aug 2008 12:15:31 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/177-guid.html</guid>
    
</item>
<item>
    <title>The Sky is the Limit</title>
    <link>http://blog.pykello.net/index.php?/archives/175-The-Sky-is-the-Limit.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/175-The-Sky-is-the-Limit.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=175</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=175</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;اساطیر باعث محدودیت و عدم موفقیت می شوند.&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sun, 17 Aug 2008 09:47:08 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/175-guid.html</guid>
    
</item>
<item>
    <title>The Art</title>
    <link>http://blog.pykello.net/index.php?/archives/174-The-Art.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/174-The-Art.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=174</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=174</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt; هُنَریست «لبخند زدن و خوش برخورد بودن» در هنگام استرس و نگرانی بسیار شدید.&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sun, 17 Aug 2008 08:17:53 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/174-guid.html</guid>
    
</item>
<item>
    <title>Importance of &quot;Possibly&quot;, U+2203, ...</title>
    <link>http://blog.pykello.net/index.php?/archives/173-Importance-of-Possibly,-U+2203,-....html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/173-Importance-of-Possibly,-U+2203,-....html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=173</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=173</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;RTL&quot; align=&quot;right&quot;&gt;یکی از تفاوت های نوشته های پولیا و دیگران در نحوه ی به کار بردن adverb ها و quantifier هاست. &lt;br/&gt;&lt;br/&gt;برنده ی بازی کیست؟ &lt;br/&gt; این تنها یک ارجاع است!&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Tue, 29 Jul 2008 11:17:03 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/173-guid.html</guid>
    
</item>
<item>
    <title>... were always there ...</title>
    <link>http://blog.pykello.net/index.php?/archives/172-...-were-always-there-....html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/172-...-were-always-there-....html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=172</wfw:comment>

    <slash:comments>7</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=172</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;RTL&quot; align=&quot;right&quot;&gt;
رابطه ی حالت کنونی من و حالت کنونی دنیا چیست؟ &lt;br/&gt;&lt;br/&gt;حالت کنونی من عضو ی از حالت کنونی دنیا است، یا حالت کنونی دنیا عضوی از حالت کنونی من؟
&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Tue, 29 Jul 2008 11:04:47 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/172-guid.html</guid>
    
</item>
<item>
    <title>We got a winner!</title>
    <link>http://blog.pykello.net/index.php?/archives/171-We-got-a-winner!.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/171-We-got-a-winner!.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=171</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=171</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;RTL&quot; align=&quot;right&quot;&gt;برخی اوقات از اول نوشتن کد، آسان تر از پیدا کردن و رفع اشکال های کد است. ممکن است در زندگی واقعی هم همچنین مواقعی وجود داشته باشند!&lt;/div&gt;
&lt;div dir=&quot;RTL&quot; align=&quot;right&quot;&gt;اگر خدا Feedback را نمی آفرید، احتمالا بدبخت می شدیم! یا لا اقل، خوشبخت نمی شدیم.&lt;/div&gt;&lt;br /&gt;
&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sun, 27 Jul 2008 15:07:58 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/171-guid.html</guid>
    
</item>
<item>
    <title>All the Sad People</title>
    <link>http://blog.pykello.net/index.php?/archives/169-All-the-Sad-People.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/169-All-the-Sad-People.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=169</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=169</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;مگه فرقی می کنه چطوری خوشبخت باشم؟ با گذشته یا بی گذشته؟ با دوستان قدیمی یا با دوستان جدید؟ با قد بلند یا با قد کوتاه؟&lt;br/&gt;&lt;br/&gt;چه چیزی هویت منو تشکیل می ده؟ چند تا خط کج و کوله یا چند تا کلمه؟&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Tue, 15 Jul 2008 16:22:33 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/169-guid.html</guid>
    
</item>
<item>
    <title>Travelling Salesman Problem</title>
    <link>http://blog.pykello.net/index.php?/archives/167-Travelling-Salesman-Problem.html</link>
            <category>Algorithms</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/167-Travelling-Salesman-Problem.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=167</wfw:comment>

    <slash:comments>3</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=167</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div align=&quot;center&quot;&gt;
&lt;a href=&quot;http://xkcd.com/399/&quot;&gt;
&lt;img src=&quot;images/travelling_salesman_problem.png&quot; alt=&quot;Travalling Salesman Problem&quot;/&gt;
&lt;/a&gt;
&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Wed, 25 Jun 2008 08:50:14 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/167-guid.html</guid>
    
</item>
<item>
    <title>Brainy Quotes</title>
    <link>http://blog.pykello.net/index.php?/archives/166-Brainy-Quotes.html</link>
            <category>Programming</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/166-Brainy-Quotes.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=166</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=166</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;ltr&quot; align=&quot;left&quot;&gt; 
&quot;Live as if you were to die tomorrow. Learn as if you were to live forever.&quot;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; align=&quot;right&quot;&gt;
&lt;b&gt;- Mohandas Karamchand “Mahatma” Gandhi&lt;/b&gt;
&lt;/div&gt;
&lt;br/&gt;&lt;br/&gt;
&lt;div dir=&quot;ltr&quot; align=&quot;left&quot;&gt; 
&quot;A diamond is a piece of coal that stuck to the job.&quot;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; align=&quot;right&quot;&gt;
&lt;b&gt;- Thomas A. Edison&lt;/b&gt;
&lt;/div&gt;
&lt;br/&gt;&lt;br/&gt;
&lt;div dir=&quot;ltr&quot; align=&quot;left&quot;&gt; 
&quot;Programming is not a zero-sum game. Teaching something to a fellow programmer doesn&#039;t take it away from you. I&#039;m happy to share what I can, because I&#039;m in it for the love of programming.&quot;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; align=&quot;right&quot;&gt;
&lt;b&gt;- John Carmack&lt;/b&gt;
&lt;/div&gt;
&lt;br/&gt;&lt;br/&gt;
&lt;div dir=&quot;ltr&quot; align=&quot;left&quot;&gt; 
&quot;Low-level programming is good for the programmer&#039;s soul.&quot;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; align=&quot;right&quot;&gt;
&lt;b&gt;- John Carmack&lt;/b&gt;
&lt;/div&gt;
&lt;br/&gt;&lt;br/&gt;
&lt;div dir=&quot;ltr&quot; align=&quot;left&quot;&gt; 
&quot;Do what you think is interesting, do something that you think is fun and worthwhile, because otherwise you won&#039;t do it well anyway.&quot;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; align=&quot;right&quot;&gt;
&lt;b&gt;- Brian Kernighan&lt;/b&gt;
&lt;/div&gt;
&lt;br/&gt;&lt;br/&gt;
&lt;div dir=&quot;ltr&quot; align=&quot;left&quot;&gt; 
&quot;Software has to be designed by hackers who understand design, not designers who know a little about software. If you can&#039;t design software as well as implement it, don&#039;t start a startup.&quot;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; align=&quot;right&quot;&gt;
&lt;b&gt;- Paul Graham&lt;/b&gt;
&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Fri, 20 Jun 2008 13:52:48 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/166-guid.html</guid>
    
</item>
<item>
    <title>404</title>
    <link>http://blog.pykello.net/index.php?/archives/165-404.html</link>
            <category>Competing</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/165-404.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=165</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=165</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;روزی که کارخانه ها داده ها را پردازش می کنند و بی نهایت داده داریم، آن قدر زياد که عددها سرريز می کنند، باید به فکر به چالش کشیده شدن و مغلوب شدن هم بود.&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Fri, 06 Jun 2008 00:25:48 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/165-guid.html</guid>
    
</item>
<item>
    <title>An Enumeration Theorem</title>
    <link>http://blog.pykello.net/index.php?/archives/164-An-Enumeration-Theorem.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/164-An-Enumeration-Theorem.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=164</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=164</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;
شهر بردارهای n-بعدی که فقط همین یک در را ندارد. همه ی اهالی آن که به دنبال خریدن بردارهای مستقل خطی نیستند.&lt;br/&gt;&lt;br/&gt;
اما حيف؛ حيف که برخی شهرها هيچ دری ندارند و برای ورود به آن ها تله پورت نياز است!
&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Wed, 04 Jun 2008 15:37:00 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/164-guid.html</guid>
    
</item>
<item>
    <title>Fire Effect</title>
    <link>http://blog.pykello.net/index.php?/archives/163-Fire-Effect.html</link>
            <category>Programming</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/163-Fire-Effect.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=163</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=163</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;
چند روز پیش الگوریتم مشهور و قدیمی اثر آتش را با استفاده از SDL پیاده سازی کردم. البته قبلا با استفاده از pygame نیز این روش را پیاده سازی کرده بودم، ولی سرعت آن خیلی کمتر از این پیاده سازی بود.&lt;br/&gt;&lt;br/&gt;

فایل اجرایی:  &lt;a href=&quot;http://pykello.net/fire.exe&quot;&gt;fire.exe&lt;/a&gt; &lt;br/&gt;&lt;br/&gt;
احتمالا نیاز داشته باشید &lt;a href=&quot;http://www.libsdl.org/release/SDL-1.2.13-win32.zip&quot; title=&quot;SDL.dll&quot;&gt;SDL.dll&lt;/a&gt; را هم دانلود کنید.&lt;br/&gt;&lt;br/&gt;
کد منبع: &lt;a href=&quot;http://wiki.pykello.net/doku.php?id=implementation:fire_effect&quot; title=&quot;http://wiki.pykello.net/doku.php?id=implementation:fire_effect&quot;&gt;http://wiki.pykello.net/doku.php?id=implementation:fire_effect&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;
توضیح الگوریتم: &lt;a href=&quot;http://www.gamedev.net/reference/list.asp?categoryid=72#251&quot; title=&quot;http://www.gamedev.net/reference/list.asp?categoryid=72#251&quot;&gt;http://www.gamedev.net/reference/list.asp?categoryid=72#251&lt;/a&gt;
&lt;br/&gt;&lt;br/&gt;
&lt;center&gt;
    &lt;img src=&quot;images/fire.png&quot; alt=&quot;Fire Effect in SDL&quot; /&gt;
&lt;/center&gt;
&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sun, 23 Mar 2008 16:25:15 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/163-guid.html</guid>
    
</item>
<item>
    <title>BigInt / BigNum / Huge Numbers Implementation</title>
    <link>http://blog.pykello.net/index.php?/archives/161-BigInt-BigNum-Huge-Numbers-Implementation.html</link>
            <category>Algorithms</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/161-BigInt-BigNum-Huge-Numbers-Implementation.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=161</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=161</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;
&lt;a href=&quot;http://wiki.pykello.net/doku.php?id=implementation:bignum2&quot; title=&quot;پیاده سازی کلاس BigInt در ++C&quot;&gt;پیاده سازی کلاس BigInt در ++C&lt;/a&gt;
&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sun, 03 Feb 2008 10:17:17 -0500</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/161-guid.html</guid>
    
</item>
<item>
    <title>Links of the Week</title>
    <link>http://blog.pykello.net/index.php?/archives/160-Links-of-the-Week.html</link>
            <category>Programming</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/160-Links-of-the-Week.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=160</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=160</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;
1. &lt;a href=&quot;http://developer.apple.com/documentation/developertools/gcc-4.0.1/gcc/Other-Builtins.html#Other-Builtins&quot;&gt;توابع داخلی GCC که بعضی وقت ها (مثلا در مسابقات برنامه نویسی) ممکن است به کار بیاید.&lt;/a&gt;
&lt;br/&gt;&lt;br/&gt;
2. &lt;a href=&quot;http://www.webdesignerwall.com/tutorials/css-gradient-text-effect/&quot; title=&quot;CSS Gradient Text Effect&quot;&gt;CSS Gradient Text Effect&lt;/a&gt;
&lt;br/&gt;&lt;br/&gt;
3. &lt;a href=&quot;http://lucasmanual.com/mywiki/TurboGears&quot; title=&quot;آموزش TurboGears&quot;&gt;آموزش TurboGears&lt;/a&gt;
&lt;br/&gt;&lt;br/&gt;
4. &lt;a href=&quot;http://wxformbuilder.org/&quot; title=&quot;wxFormBuilder&quot;&gt;نرم افزار wxFormBuilder 3.0 RC5 عرضه شد.&lt;/a&gt;
&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sat, 26 Jan 2008 08:57:48 -0500</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/160-guid.html</guid>
    
</item>
<item>
    <title>AVL Tree</title>
    <link>http://blog.pykello.net/index.php?/archives/159-AVL-Tree.html</link>
            <category>Programming</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/159-AVL-Tree.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=159</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=159</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;
&lt;a href=&quot;http://wiki.pykello.net/doku.php?id=implementation:avl&quot;&gt;پیاده سازی درخت جستجوی دودوئی متوازن AVL&lt;/a&gt;
&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sat, 26 Jan 2008 04:46:22 -0500</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/159-guid.html</guid>
    
</item>
<item>
    <title>Yungom</title>
    <link>http://blog.pykello.net/index.php?/archives/158-Yungom.html</link>
            <category>Algorithms</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/158-Yungom.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=158</wfw:comment>

    <slash:comments>4</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=158</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot;&gt;
&lt;a href=&quot;http://wiki.pykello.net/doku.php?id=tehran2007:yungom&quot;&gt;توضیح سوال D مسابقه ی منطقه ای تهران 2007&lt;/a&gt; توسط تیزترین عضو تیم Tiz Boys: ارسلان موسویان.
&lt;br/&gt;&lt;br/&gt;
به غیر از ارسلان، دو نفر دیگر هم قول همکاری داده اند، و احتمالا یک نفر دیگر هم همکاری کند.
&lt;br/&gt;
پ.ن: یک تغییر کوچولو تو متن مقاله انجام شد.
&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Mon, 14 Jan 2008 14:04:00 -0500</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/158-guid.html</guid>
    
</item>
<item>
    <title>Some nice links</title>
    <link>http://blog.pykello.net/index.php?/archives/156-Some-nice-links.html</link>
            <category>Programming</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/156-Some-nice-links.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=156</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=156</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;a href=&quot;http://www.smashingmagazine.com/2007/01/19/53-css-techniques-you-couldnt-live-without/&quot; title=&quot;53 تکنیک CSS که زندگی بدون آن ها امکان پذیر نیست!&quot;&gt;53 تکنیک CSS که زندگی بدون آن ها امکان پذیر نیست!&lt;/a&gt;
&lt;br/&gt;&lt;br/&gt;
&lt;a href=&quot;http://11011110.livejournal.com/&quot; title=&quot;David Eppstein&quot;&gt;وبلاگ David Eppstein&lt;/a&gt;
&lt;br/&gt;&lt;br/&gt;
&lt;a href=&quot;http://programming.reddit.com/&quot; title=&quot;programming.reddit.com&quot;&gt;programming.reddit.com&lt;/a&gt;
&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Thu, 10 Jan 2008 11:02:49 -0500</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/156-guid.html</guid>
    
</item>
<item>
    <title>Faster Input</title>
    <link>http://blog.pykello.net/index.php?/archives/154-Faster-Input.html</link>
            <category>Programming</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/154-Faster-Input.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=154</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=154</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;بعضی وقت ها از &lt;a href=&quot;http://wiki.pykello.net/doku.php?id=implementation:fast_input&quot; title=&quot;ورودی سریع&quot;&gt;این کد&lt;/a&gt; برای سریع تر خواندن ورودی استفاده می کنم. مسلما از scanf سریع تر است. چون شرایطی که مورد استفاده قرار می گیرد محدود تر است و می توان بسیاری از چیز ها را فرض گرفت.&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Mon, 07 Jan 2008 21:15:06 -0500</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/154-guid.html</guid>
    
</item>
<item>
    <title>November Rain</title>
    <link>http://blog.pykello.net/index.php?/archives/153-November-Rain.html</link>
            <category>Algorithms</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/153-November-Rain.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=153</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=153</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;سلام،
&lt;br/&gt;&lt;br/&gt;
اگر دوست داشتید، سری به &lt;a href=&quot;http://wiki.pykello.net/doku.php?id=november_rain&quot;&gt;http://wiki.pykello.net/doku.php?id=november_rain&lt;/a&gt; بزنید.
&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Mon, 07 Jan 2008 18:55:59 -0500</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/153-guid.html</guid>
    
</item>
<item>
    <title>Some nice online textbooks</title>
    <link>http://blog.pykello.net/index.php?/archives/152-Some-nice-online-textbooks.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/152-Some-nice-online-textbooks.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=152</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=152</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;چند کتاب مجانی خیلی خوب برای خواندن و لذت بردن از زندگی:&lt;br/&gt;
1. &lt;a href=&quot;http://www.math.ucla.edu/~tom/Game_Theory/Contents.html&quot;&gt;کتاب نظریه ی بازی&lt;/a&gt;&lt;br/&gt;
2. &lt;a href=&quot;http://web.ew.usna.edu/~wdj/book/book.html&quot;&gt;جبر مجرد کاربردی&lt;/a&gt;&lt;br/&gt;
3. &lt;a href=&quot;http://www.cs.umd.edu/~mount/754/Lects/754lects.pdf&quot;&gt;هندسه ی محاسباتی&lt;/a&gt;
&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sun, 06 Jan 2008 19:04:38 -0500</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/152-guid.html</guid>
    
</item>
<item>
    <title>A Love Story</title>
    <link>http://blog.pykello.net/index.php?/archives/149-A-Love-Story.html</link>
    
    <comments>http://blog.pykello.net/index.php?/archives/149-A-Love-Story.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=149</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=149</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;
&lt;a href=&quot;http://tafaramooshi.persianblog.ir/1386_8_tafaramooshi_archive.html#7418313&quot;&gt;لینک&lt;/a&gt;
&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Thu, 20 Dec 2007 14:44:08 -0500</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/149-guid.html</guid>
    
</item>
<item>
    <title>Misconception</title>
    <link>http://blog.pykello.net/index.php?/archives/63-Misconception.html</link>
            <category>Thinking</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/63-Misconception.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=63</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=63</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;i&gt;&amp;quot;Experience is the name everybody gives to his mistakes!&amp;quot;&lt;/i&gt;  Oscar Wilde&lt;/font&gt;&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sun, 25 Nov 2007 08:14:37 -0500</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/63-guid.html</guid>
    
</item>
<item>
    <title>Consistency</title>
    <link>http://blog.pykello.net/index.php?/archives/65-Consistency.html</link>
            <category>Competing</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/65-Consistency.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=65</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=65</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;در مسابقه ی تمرینی هفته ی پیش هنگامی که هنوز 20 دقیقه به پایان مسابقه باقی مانده بود، کار را تمام شده حساب کردم و از تلاش دست کشیدم! بعدا از خودم بدم اومد &lt;img src=&quot;http://blog.pykello.net/templates/default/img/emoticons/sad.png&quot; alt=&quot;:-(&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sun, 18 Nov 2007 17:36:22 -0500</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/65-guid.html</guid>
    
</item>
<item>
    <title>Arash est moitié moins grand que la Tour Eiffel!</title>
    <link>http://blog.pykello.net/index.php?/archives/66-Arash-est-moitie-moins-grand-que-la-Tour-Eiffel!.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/66-Arash-est-moitie-moins-grand-que-la-Tour-Eiffel!.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=66</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=66</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;آقای دکتر علی زاده در پاریس:&lt;br /&gt;&lt;br /&gt;&lt;div align=&quot;center&quot;&gt;&lt;img alt=&quot;Arash Alizadeh&quot; vspace=&quot;0&quot; hspace=&quot;0&quot; border=&quot;0&quot; src=&quot;images/arash.JPG&quot; /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Wed, 14 Nov 2007 07:02:42 -0500</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/66-guid.html</guid>
    
</item>
<item>
    <title>Einstein Quote of the Day</title>
    <link>http://blog.pykello.net/index.php?/archives/68-Einstein-Quote-of-the-Day.html</link>
            <category>Thinking</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/68-Einstein-Quote-of-the-Day.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=68</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=68</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;&lt;i&gt;&lt;font face=&quot;Georgia&quot;&gt;A clever person solves a problem. A wise person avoids it.&lt;/font&gt;&lt;/i&gt;&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Thu, 08 Nov 2007 03:09:27 -0500</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/68-guid.html</guid>
    
</item>
<item>
    <title>Words of Wisdom IV</title>
    <link>http://blog.pykello.net/index.php?/archives/69-Words-of-Wisdom-IV.html</link>
            <category>Sacred Words</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/69-Words-of-Wisdom-IV.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=69</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=69</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;حضرت علی (ع) می فرمايند: (خطبه ی 140 نهج البلاغه)&lt;br /&gt;« ...&lt;br /&gt;&lt;font color=&quot;#006633&quot;&gt;آيا آن عيب جو نمی بيند پرده پوشی خداوندی را درباره ی گناهان خود او، که بزرگ تر است از آن خطايي که آن انسان مرتکب خطا، مبتلا به آن شده است؟ آن عيب گير چگونه آن گرفتار را سرزنش می کند، در صورتی که خود او نيز همانند آن معصيت را مرتکب شده است! و اگر هم مانند آن گناه را مرتکب نشده باشد، در غير آن مورد، خدا را نافرمانی کرده است که بزرگ تر از آن معصيت بوده است. و سوگند به خدا، اگر آن عيب جو خدا را با گناه بزرگ نافرمانی نکرده و گناهی کوچک انجام داده باشد، جرات او به ابراز عيب مردم گناهی بزرگ تر است.&lt;br /&gt;ای بنده خدا، در اظهار عيب هيچ کس درباره ی گناهی که مرتکب شده است، شتاب مکن، زيرا شايد برای او بخشيده شده باشد. و برای خود درباره ی معصيت کوچک احساس امان مکن، شايد برای همان معصيت کوچک معذب خواهی گشت. پس هر کسی از شما که به عيب ديگری اطلاع پيدا کرده است، به جهت اطلاعی که از عيب خود دارد، از ابراز آن خودداری نمايد. و شکر و سپاسگزاری برای محفوظ ماندن از خطا او را از توجه به آنچه که ديگری به او مبتلا شده است، منصرف بسازد.&lt;/font&gt;»&lt;br /&gt;&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Fri, 02 Nov 2007 11:11:38 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/69-guid.html</guid>
    
</item>
<item>
    <title>Words of Wisdom III</title>
    <link>http://blog.pykello.net/index.php?/archives/71-Words-of-Wisdom-III.html</link>
            <category>Sacred Words</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/71-Words-of-Wisdom-III.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=71</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=71</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;p&gt;رسول خدا صلی الله عليه و آله فرمودند: &lt;/p&gt;&lt;p&gt;«عبادت هفتاد جزء است و بالاترين و بزرگترین آن کسب حلال است.» (ثواب الاعمال و عقاب الاعمال)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;«آنچه بیش از هر چیز بر امتم بعد از خود می ترسم، درآمدهای حرام، هواپرستی پنهانی، و رباست.» (بحارالانوار)&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;div align=&quot;justify&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Fri, 26 Oct 2007 19:34:26 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/71-guid.html</guid>
    
</item>
<item>
    <title>Longing ...</title>
    <link>http://blog.pykello.net/index.php?/archives/74-Longing-....html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/74-Longing-....html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=74</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=74</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div align=&quot;justify&quot; style=&quot;direction: rtl;&quot;&gt;&amp;quot;مدت زيادی به انتظار آمدن تو نشستم،&lt;/div&gt;&lt;div align=&quot;justify&quot; style=&quot;direction: rtl;&quot;&gt;آن قدر زياد که به نبودن تو عادت کردم،&lt;/div&gt;&lt;div align=&quot;justify&quot; style=&quot;direction: rtl;&quot;&gt;تو پس از مدت زيادی آمدی،&lt;/div&gt;&lt;div align=&quot;justify&quot; style=&quot;direction: rtl;&quot;&gt;ولی من اکنون انتظار برای تو را بيش از خودت دوست دارم ...&amp;quot; &lt;/div&gt;&lt;div align=&quot;justify&quot; style=&quot;direction: rtl;&quot;&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot; style=&quot;direction: rtl;&quot;&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot; style=&quot;direction: rtl;&quot;&gt;&lt;br /&gt;(شعری از&lt;a href=&quot;http://fa.wikipedia.org/wiki/%D8%B9%D8%B2%DB%8C%D8%B2_%D9%86%D8%B3%DB%8C%D9%86&quot;&gt; عزيز نسين&lt;/a&gt;)&lt;/div&gt;&lt;div align=&quot;justify&quot; style=&quot;direction: rtl;&quot;&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot; style=&quot;direction: rtl;&quot;&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot; style=&quot;direction: rtl;&quot;&gt;&lt;br /&gt;---------------------------------------------------&lt;/div&gt;&lt;div align=&quot;justify&quot; style=&quot;direction: rtl;&quot;&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot; style=&quot;direction: rtl;&quot;&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot; style=&quot;direction: rtl;&quot;&gt;&lt;br /&gt;کسانی که نمی دانند بدانند، &lt;a href=&quot;http://liveaut.blogfa.com/&quot;&gt;موفق کاتب&lt;/a&gt; نيز صاحب وبلاگ شد!&lt;/div&gt;&lt;div align=&quot;right&quot;&gt;&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Tue, 23 Oct 2007 01:46:00 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/74-guid.html</guid>
    
</item>
<item>
    <title>Checking for overflow</title>
    <link>http://blog.pykello.net/index.php?/archives/76-Checking-for-overflow.html</link>
            <category>Programming</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/76-Checking-for-overflow.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=76</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=76</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;فرض کنيد می خواهيد تابعی بنويسيد که عبارت a * b&lt;sup&gt;p&lt;/sup&gt; را محاسبه کند، در صورتيکه حاصل از 10&lt;sup&gt;18&lt;/sup&gt; کمتر بود، حاصل را برگرداند، و در غير اين صورت عدد 1- را برگرداند. از چه راه حلی استفاده می کنيد؟ (با فرض اينکه a و b و p از 10&lt;sup&gt;18&lt;/sup&gt; کوچکتر هستند.)&lt;br /&gt;&lt;br /&gt;&lt;font color=&quot;#ff0000&quot;&gt;راه حل 1: &lt;/font&gt;از کلاس Big Integer استفاده کنيد. حاصل را حساب کنيد، و سپس حاصل را با 10&lt;sup&gt;18&lt;/sup&gt; مقايسه کنيد. در ++C و C اين روش احمقانه ترين روش است (چون احتمالا بايد اين نوع داده را خودتان پياده سازی کنيد) ولی اگر از Java يا Python استفاده می کنيد، اين روش، روش خوب و ساده ايست.&lt;br /&gt;توجه: در راه حل های بعدی از اين نکته که نوع داده ی عدد صحيح 64 بيتی (long long در ++C) می تواند اعدادی تا بزرگی 9x10&lt;sup&gt;18&lt;/sup&gt; را نگهداری کند استفاده کرده ايم.&lt;br /&gt;&lt;br /&gt;&lt;font color=&quot;#ff0000&quot;&gt;راه حل 2:&lt;/font&gt; چون 2x10&lt;sup&gt;18&lt;/sup&gt; از محدوده ی long long بيرون نمی زند، به راحتی می توانيم دو عدد کوچکتر از 10&lt;sup&gt;18&lt;/sup&gt; را با هم جمع کنيم، و سپس با 10&lt;sup&gt;18&lt;/sup&gt; مقايسه کنيم تا بفهميم که حاصل از 1- بزرگتر است يا نه. همان طور که احتمالا می دانيد، عمل ضرب را می توان با استفاده از عمل جمع پياده سازی کرد. کد اين تابع را در زير مشاهده می کنيد:&lt;br /&gt;&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;&lt;div class=&quot;cpp&quot; style=&quot;text-align: left&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt; multiply&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt; a, &lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt; b&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;b == &lt;span style=&quot;color: #0000dd;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;0&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt; result = multiply&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;a, b / &lt;span style=&quot;color: #0000dd;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;result == &lt;span style=&quot;color: #0000dd;&quot;&gt;-1&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;-1&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; result += result;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;b % &lt;span style=&quot;color: #0000dd;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; result += a;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;result &amp;gt; 1000000000000000000ll&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;-1&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt; result;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;و عمل توان را با استفاده از عمل عمل ضرب می توان پياده سازی کرد:&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;&lt;div class=&quot;cpp&quot; style=&quot;text-align: left&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt; power&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt; a, &lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt; b&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;b == &lt;span style=&quot;color: #0000dd;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;1&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt; result = power&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;a, b / &lt;span style=&quot;color: #0000dd;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;result == &lt;span style=&quot;color: #0000dd;&quot;&gt;-1&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;-1&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; result = multiply&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;result, result&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;result == &lt;span style=&quot;color: #0000dd;&quot;&gt;-1&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;-1&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;b % &lt;span style=&quot;color: #0000dd;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; multiply&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;result, a&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;result == &lt;span style=&quot;color: #0000dd;&quot;&gt;-1&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;-1&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt; result;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;اين روش نسبت به روش قبل ساده تر و عاقلانه تر (در صورت عدم وجود امکانات) می باشد، ولی ساده ترين روش نيست!&lt;br /&gt;&lt;br /&gt;&lt;font color=&quot;#ff0000&quot;&gt;راه حل 3: &lt;/font&gt;با استفاده از عمل تقسيم می توان حداکثر مقداری که می توانيم در يک عدد ضرب کنيم تا حاصل کوچکتر از 10&lt;sup&gt;18&lt;/sup&gt; شود را پيدا کرد. با استفاده از اين نکته، کارمان کمی ساده تر می شود و می توانيم به صورت زير عمل کنيم:&lt;br /&gt;&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;&lt;div class=&quot;cpp&quot; style=&quot;text-align: left&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt; multiply&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt; a, &lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt; b&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;b == &lt;span style=&quot;color: #0000dd;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;0&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt; maxp = 1000000000000000000ll / b;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;a &amp;gt; maxp&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;-1&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt; a * b;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color=&quot;#ff0000&quot;&gt;راه حل 4:&lt;/font&gt; استفاده از لگاريتم در مبنای 10. فرض کنيد می خواهيم a*b^p را محاسبه کنيم. اگر به صورت زير عمل کنيم:&lt;br /&gt;&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;&lt;div class=&quot;cpp&quot; style=&quot;text-align: left&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt; power&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt; a, &lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt; b&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;b == &lt;span style=&quot;color: #0000dd;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;1&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt; result = power&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;a, b / &lt;span style=&quot;color: #0000dd;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; result *= result;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;b % &lt;span style=&quot;color: #0000dd;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; result *= a;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt; result;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt; calc&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt; a, &lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt; b, &lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt; p&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;double&lt;/span&gt; L = &lt;span style=&quot;color: #0000dd;&quot;&gt;log10&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;a&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; + p * &lt;span style=&quot;color: #0000dd;&quot;&gt;log10&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;b&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;L &amp;gt; &lt;span style=&quot;color: #0000dd;&quot;&gt;18&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;-1&lt;/span&gt; ;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt; a * power&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;b, p&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; ;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;ممکن است بعضی اوقات نتيجه گيری اشتباهی کنيم، چون اختلاف لگاريتم 10&lt;sup&gt;18&lt;/sup&gt; و 1+10&lt;sup&gt;18&lt;/sup&gt; کمتر از &lt;sup&gt;18-&lt;/sup&gt;10 می باشد و با اين مقايسه ها اين اختلاف ها مشخص نمی شوند. &lt;br /&gt;چون 10&lt;sup&gt;18.5&lt;/sup&gt; عمرا از محدوده ی long long خارج نیست و تمام اعداد کوچکتر يا مساوی 10&lt;sup&gt;18&lt;/sup&gt; دارای لگاريتمی کمتر از 18.5 هستند، حتی با در نظر گرفتن خطاهای محاسباتی، می توان به روش زير عمل کرد:&lt;br /&gt;&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;&lt;div class=&quot;cpp&quot; style=&quot;text-align: left&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt; power&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt; a, &lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt; b&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;b == &lt;span style=&quot;color: #0000dd;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;1&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt; result = power&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;a, b / &lt;span style=&quot;color: #0000dd;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; result *= result;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;b % &lt;span style=&quot;color: #0000dd;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; result *= a;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt; result;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt; calc&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt; a, &lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt; b, &lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt; p&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;double&lt;/span&gt; L = &lt;span style=&quot;color: #0000dd;&quot;&gt;log10&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;a&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; + p * &lt;span style=&quot;color: #0000dd;&quot;&gt;log10&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;b&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;L &amp;gt; &lt;span style=&quot;color: #0000dd;&quot;&gt;18.5&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;-1&lt;/span&gt; ;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;long&lt;/span&gt; result = a * power&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;b, p&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;result &amp;gt; 1000000000000000000ll&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;-1&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt; result ;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;مزيت روش آخر نسبت به روش های ديگر اين است که تمام چک های خارج از محدوده بودن تنها در يک نقطه انجام می گيرد، و بالطبع احتمال اشتباه کردن برنامه نويس کمتر است.&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Mon, 22 Oct 2007 05:19:26 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/76-guid.html</guid>
    
</item>
<item>
    <title>Sleeping late: Practical guide for the psycho</title>
    <link>http://blog.pykello.net/index.php?/archives/77-Sleeping-late-Practical-guide-for-the-psycho.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/77-Sleeping-late-Practical-guide-for-the-psycho.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=77</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=77</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;&lt;table width=&quot;100%&quot; boder=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;font color=&quot;#ff0000&quot;&gt;توجه:&lt;/font&gt; محتويات نوشته پايه ی علمی ندارد و صرفا بر اساس تجربيات خودم نوشته شده است.&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;&lt;br /&gt;&lt;font color=&quot;#003366&quot;&gt;ساعت 12 شب است. در حال ياد گرفتن يک موضوع بسيار جالب هستيد، و يا می خواهيد يک مساله ی بسيار سخت را حل کنيد، و آنقدر مشتاق هستيد که تصميم گرفته ايد بسيار دير بخوابيد.&lt;/font&gt; در اين حالت، بهترين دوست شما نوشيدنی ای به نام &amp;quot;قهوه&amp;quot; است. البته برای اينکه بتوانيد 3 ساعت ديرتر از معمول بخوابيد، برای استفاده از قهوه بايد نکاتی را در نظر بگيريد. &lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;&lt;br /&gt;اول اينکه زياد به فکر خوشمزه کردن قهوه ی خود نباشيد. به هيچ وجه از کافی ميت استفاده نکنيد، و شکر را به اندازه ای اضافه کنيد که قهوه بدمزه نباشد. قهوه ی خوشمزه اثری بسيار کمتر بر روی سيستم هوشياری شما دارد. دوم اينکه قهوه را داغ صرف ننماييد! حداقل در مورد خودم، قهوه ی داغ باعث خواب آلودگی می شود، ولی قهوه ی ولرم، يا سرد باعث هوشياری بسيار بالا می شود. سوم اينکه فکر نکنيد با يک فنجان قهوه می توانيد مدت زيادی بيدار بمانيد. برای اينکه همچنان هوشيار بمانيد، بايد حدودا هر 20 دقيقه يکبار يک ليوان قهوه بخوريد. چهارم اينکه کسانی که ناراحتی قلبی دارند از قهوه استفاده نکنند، چون ظاهرا به صورت کوتاه مدت باعث افزايش ضربان قلب می شود.&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;&lt;br /&gt;راهبرد ديگر برای دير خوابيدن اين است که تمرين کنيد تا بتوانيد به اين موضوع که &amp;quot;ممکن است خوابتان بيايد&amp;quot; فکر نکنيد! حداقل اين چنين افکاری بر روی من اثر دارد و باعث می شود زودتر خوابم بيايد.&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;&lt;br /&gt;&lt;font color=&quot;#990033&quot;&gt;البته روش های بالا برای افراد پستی که می خواهند برای امتحان فردا يا پس فردا آماده شوند و نگاهی مادی به علم دارند توصيه نمی شود.&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align=&quot;justify&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td width=&quot;325&quot; valign=&quot;top&quot; style=&quot;font-size: 10pt; font-family: courier new;&quot;&gt;&lt;center&gt;&lt;img align=&quot;left&quot; src=&quot;images/geek2.jpg&quot; /&gt;Copyright © &lt;a href=&quot;http://ellasworks.blogspot.com/&quot;&gt;Ella Elviana&lt;/a&gt;&lt;/center&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Mon, 22 Oct 2007 02:40:00 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/77-guid.html</guid>
    
</item>
<item>
    <title>Probability and Quizes</title>
    <link>http://blog.pykello.net/index.php?/archives/79-Probability-and-Quizes.html</link>
            <category>Joy of Science</category>
            <category>Mathematics</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/79-Probability-and-Quizes.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=79</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=79</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;&lt;img align=&quot;left&quot; src=&quot;images/dice.gif&quot; /&gt;&lt;p&gt;فرض کنيد می خواهيد در يک امتحان چهار گزينه ای شرکت کنيد (که به ازای هر غلط 1/3 نمره ی منفی دارد)، و هيچ مطالعه ای راجع به موضوع اين امتحان نداريد و قصد داريد شانس خود را امتحان کنيد و گزينه هايي را به صورت تصادفی انتخاب کنيد. چند درصد احتمال دارد که امتياز شما منفی نباشد؟ (البته با این فرض ها که احتمال درست پاسخ دادن به سوال 25% و احتمال شير آمدن سکه 50% می باشد.)&lt;/p&gt;&lt;p&gt;برای امتحان 1 سواله: 25%&lt;/p&gt;&lt;p&gt;برای امتحان 5 سواله: 36%&lt;/p&gt;&lt;p&gt;برای امتحان 6 سواله: 46%&lt;/p&gt;&lt;p&gt;برای امتحان 7 سواله: 55%&lt;/p&gt;&lt;p&gt;برای امتحان 8 سواله: 63%&lt;/p&gt;&lt;p&gt;برای امتحان 9 سواله: 39%&lt;/p&gt;&lt;p&gt;برای امتحان 10 سواله: 47%&lt;/p&gt;&lt;p&gt;برای امتحان 20 سواله: 58.51%&lt;/p&gt;&lt;p&gt;برای امتحان 30 سواله: 48.57%&lt;/p&gt;&lt;p&gt;...&lt;/p&gt;&lt;p&gt;پس اگر می خواهيد در امتحانی 9 سواله شانس خود را امتحان کنيد، تنها به 8 سوال اول پاسخ دهيد! به اين ترتيب شانس ضايع نشدن شما 24% افزايش می يابد.&lt;/p&gt;&lt;p&gt;حال فرض کنيد همراه خود سکه ای سر جلسه ی امتحان برده ايد و به اين شيوه عمل می کنيد: قبل از پاسخ به هر سوال سکه می اندازيد، اگر شير آمد يکی از گزينه ها را به صورت تصادفی انتخاب می کنيد، و گرنه هيچ گزينه ای را انتخاب نمی کنيد و به سراغ سوال بعدی می رويد.&lt;/p&gt;&lt;p&gt;در اين صورت احتمال اينکه امتياز شما منفی نشود:&lt;/p&gt;&lt;p&gt;برای امتحان 1 سواله: 62 %&lt;/p&gt;&lt;p&gt;برای امتحان 5 سواله: 50.6 %&lt;/p&gt;&lt;p&gt;برای امتحان 6 سواله: 52.41 %&lt;/p&gt;&lt;p&gt;برای امتحان 7 سواله: 52.83 % &lt;/p&gt;&lt;p&gt;برای امتحان 8 سواله: 52.41 %&lt;/p&gt;&lt;p&gt;برای امتحان 9 سواله: 51.79 %&lt;/p&gt;&lt;p&gt;برای امتحان 10 سواله: 51.37 %&lt;/p&gt;&lt;p&gt;برای امتحان 20 سواله: 51.13 %&lt;/p&gt;&lt;p&gt;برای امتحان 30 سواله: 50.95 %&lt;/p&gt;&lt;p&gt;...&lt;/p&gt;&lt;br /&gt;&lt;div align=&quot;justify&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sat, 20 Oct 2007 15:48:13 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/79-guid.html</guid>
    
</item>
<item>
    <title>Reinventing the wheel</title>
    <link>http://blog.pykello.net/index.php?/archives/80-Reinventing-the-wheel.html</link>
            <category>Thinking</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/80-Reinventing-the-wheel.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=80</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=80</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div align=&quot;justify&quot; dir=&quot;rtl&quot;&gt;&lt;img border=&quot;0&quot; align=&quot;left&quot; src=&quot;images/wheel.jpg&quot; /&gt;احتمالا اختراع دوباره ی چرخ کار درستی نيست،&lt;/div&gt;&lt;div align=&quot;justify&quot; dir=&quot;rtl&quot;&gt;ولی احتمالا برای ساختن يک چرخ بهتر، بايد با چگونگی اختراع چرخ آشنا شويم،&lt;/div&gt;&lt;div align=&quot;justify&quot; dir=&quot;rtl&quot;&gt;و برای به دست آوردن درک بهتر، يک چرخ بسازيم.&lt;div align=&quot;justify&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sat, 20 Oct 2007 13:37:56 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/80-guid.html</guid>
    
</item>
<item>
    <title>Paratroopers</title>
    <link>http://blog.pykello.net/index.php?/archives/81-Paratroopers.html</link>
            <category>Algorithms</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/81-Paratroopers.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=81</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=81</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div align=&quot;baseline&quot; dir=&quot;rtl&quot;&gt;&lt;font color=&quot;#ff0000&quot;&gt;مساله:&lt;/font&gt;&lt;font color=&quot;#006633&quot;&gt;جدولی mxn داريم که در برخی از خانه های آن درختی قرار گرفته است. در بالای هر ستون و در سمت چپ هر سطر تفنگی قرار گرفته است که با شليک کردن آن تفنگ تمام درختان موجود در آن سطر يا ستون نابود می شوند. شليک کردن هر کدام از تفنگ ها هزينه ای دارد. می خواهيم زيرمجموعه ای از اين تفنگ ها را شليک کنيم به طوری که تمام درختان قطع شوند و حاصل ضرب هزينه ها کمينه شود. (این مساله، یکی از مسائل مسابقه ی انتخابی دانشگاه امیرکبیر در سال 1385 بود. &lt;a href=&quot;http://acm.zju.edu.cn/show_problem.php?pid=2874&quot;&gt;لینک مساله در سایت acm.zju.edu.cn&lt;/a&gt;&lt;/font&gt;)&lt;/div&gt;&lt;div align=&quot;baseline&quot; dir=&quot;rtl&quot;&gt;&lt;/div&gt;&lt;div align=&quot;baseline&quot; dir=&quot;rtl&quot;&gt;&lt;/div&gt;&lt;div align=&quot;baseline&quot; dir=&quot;rtl&quot;&gt;&lt;div align=&quot;center&quot;&gt;&lt;img vspace=&quot;0&quot; hspace=&quot;0&quot; border=&quot;0&quot; src=&quot;http://blog.pykello.net/images/trees.png&quot; /&gt;&lt;/div&gt;&lt;br /&gt;&lt;font color=&quot;#ff0000&quot;&gt;توضيح و بررسی راه حل:&lt;/font&gt; ابتدا برای ساده تر کردن مساله، به جای کمينه کردن حاصل ضرب هزينه ها، لگاريتم حاصل ضرب هزينه ها را کمينه می کنيم. در نتيجه مساله تبديل می شود به: زيرمجموعه ای از اين تفنگ ها را انتخاب کنيد به طوری که تمام درختان را قطع کنند و حاصل جمع لگاريتم هزينه ها را کمينه شود. پس می خواهيم عبارت زير را کمينه کنيم:&lt;/div&gt;&lt;div align=&quot;baseline&quot; dir=&quot;rtl&quot;&gt;&lt;/div&gt;&lt;div align=&quot;baseline&quot; dir=&quot;rtl&quot;&gt;&lt;div align=&quot;left&quot;&gt;&lt;img src=&quot;http://blog.pykello.net/images/formula01.png&quot; /&gt;&lt;/div&gt;&lt;br /&gt;و در انتها جواب مساله ی اصلی برابر خواهد بود با:&lt;/div&gt;&lt;div align=&quot;baseline&quot; dir=&quot;rtl&quot;&gt;&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;&lt;div align=&quot;left&quot;&gt;&lt;img src=&quot;http://blog.pykello.net/images/formula02.png&quot; /&gt;&lt;/div&gt;&lt;br /&gt;خوب، برای حل کردن اين مساله، گرافی به شکل زير می سازيم:&lt;/div&gt;&lt;div align=&quot;baseline&quot; dir=&quot;rtl&quot;&gt;&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;&lt;div align=&quot;center&quot;&gt;&lt;img vspace=&quot;0&quot; hspace=&quot;0&quot; border=&quot;0&quot; src=&quot;http://blog.pykello.net/images/minvertexcover.png&quot; alt=&quot;Minimum Vertex Cover&quot; /&gt;&lt;/div&gt;&lt;br /&gt;که در گراف بالا r1 … r6 متناظر با سطرها می باشند و c1 … c9 متناظر با ستون ها می باشند. از s به هر کدام از سطرها يالی وصل می کنيم که وزن اين يال برابر با لگاريتم هزينه ی تفنگ آن سطر می باشد، و از هر کدام از ستون به t يالی وصل می کنيم که وزن اين يال برابر با لگاريتم هزينه ی تفنگ آن ستون می باشد. همچنين بين ri و cj يالی به وزن بی نهايت متصل می کنيم در صورتيکه در مکان [i,j] جدول درختی موجود باشد. &lt;br /&gt;&lt;br /&gt;همچنين عمل انتخاب تفنگ يک سطر را متناظر با حذف کردن يال بين s و آن سطر در نظر می گيريم و عمل انتخاب تفنگ يک ستون را متناظر با حذف کردن يال بين آن ستون و t در نظر می گيريم.&lt;br /&gt;&lt;br /&gt;حالا انتخابی از تفنگ ها را در نظر بگيريد که تمام درخت ها را قطع کند. خاصيت اين انتخاب چيست؟ خاصيت اين انتخاب اين است که به ازای هر يال ri به cj (که متناظر با يک درخت می باشد) بايد حداقل يکی از يال های s به ri  (که متناظر با تفنگ سطر می باشد) و cj به t (که متناظر با تفنگ ستون می باشد) حذف شده باشد (که متناظر با انتخاب شدن آن تفنگ می باشد). نتيجه ی اين عمل چيست؟ نتيجه ی اين عمل اين است که هيچ مسيری از s به t وجود نخواهد داشت که از اين يال ri به cj عبور کند (چون فقط يک مسير اين چنين داشتيم، و حال با حذف حداقل يک يال از آن، اين تنها مسير را هم از بين می بريم.)&lt;br /&gt;&lt;br /&gt;پس اگر بخواهيم تمام درخت ها را از بين ببريم، نبايد هيچ مسيری بين s و t باشد.&lt;br /&gt;&lt;br /&gt;بنابراين مساله ی ما تبديل شد به حذف کردن تعدادی از يال های گراف مذکور به طريقی که هيچ مسيری بين s و t نباشد و مجموع وزن های اين يال های انتخاب شده کمينه باشد. اين جمله شما را به ياد چه مساله ی مشهوری می اندازد؟&lt;br /&gt;&lt;br /&gt;احتمالا اکثر شما با &lt;a href=&quot;http://www.nist.gov/dads/HTML/minimumcut.html&quot;&gt;مساله ی مشهور Minimum Cut&lt;/a&gt; آشنا هستيد. اگر آشنا نيستيد:&lt;br /&gt;&lt;br /&gt;&lt;font color=&quot;#0000cc&quot;&gt;مساله ی Minimum Cut:&lt;/font&gt; می خواهيم تعدادی از يال های يک گراف را حذف کنيم به طوری که هيچ مسيری بين مبدا و مقصد نباشد و مجموع هزينه های يال های حذف شده می نيمم باشد.&lt;br /&gt;&lt;br /&gt;و اگر با روش حل اين مسال آشنا نيستيد، بايد عرض کنم که جواب اين مساله (کمترين هزينه) با جواب &lt;a href=&quot;http://en.wikipedia.org/wiki/Maximum_flow_problem&quot;&gt;مساله ی Maximum Flow&lt;/a&gt; يکی می باشد. اگر با اين مساله و طريقه ی حل آن آشنا نيستيد، به &lt;a href=&quot;http://www.topcoder.com/tc?module=Static&amp;d1=tutorials&amp;d2=maxFlow&quot;&gt;لينک 1 &lt;/a&gt;و &lt;a href=&quot;http://en.wikipedia.org/wiki/Maximum_flow_problem&quot;&gt;لينک 2 &lt;/a&gt;مراجعه کنيد.&lt;br /&gt;&lt;br /&gt;بنابراين برای حل کردن مساله، پس از ساختن گراف مذکور، با يکی از الگوريتم های معروف Maximum Flow، جواب مساله را بدست می آوريم! به همين سادگی و زيبايي!&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Wed, 10 Oct 2007 04:13:56 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/81-guid.html</guid>
    
</item>
<item>
    <title>Tanenbaum-Torvalds debate</title>
    <link>http://blog.pykello.net/index.php?/archives/83-Tanenbaum-Torvalds-debate.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/83-Tanenbaum-Torvalds-debate.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=83</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=83</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;29 ژانويه ی سال 1992، آندرو اس. تتنباوم: &lt;font color=&quot;#006633&quot;&gt;&amp;quot;&lt;font color=&quot;#ff0000&quot;&gt;لینوکس منسوخ شده است&lt;/font&gt;&lt;/font&gt;&amp;quot; (&lt;a href=&quot;http://groups.google.com/group/comp.os.minix/browse_thread/thread/c25870d7a41696d2/ac1b04eb0e09c03e?lnk=gst&amp;q=Linux+is+Obsolete&amp;rnum=5#ac1b04eb0e09c03e&quot;&gt;لینک بحث در گروه کاربران minix&lt;/a&gt;)&lt;br /&gt;&lt;p&gt;&lt;font color=&quot;#990099&quot;&gt;توضيح:&lt;/font&gt; نظر آندرو تننباوم این بود که سیستم های مدرن به سمت معماری ريزهسته (&lt;a href=&quot;http://en.wikipedia.org/wiki/Microkernel&quot;&gt;Micro-Kernel Architecture&lt;/a&gt;) حرکت می کنند، در حالیکه لینوکس دارای معماری یکپارچه (&lt;a href=&quot;http://en.wikipedia.org/wiki/Monolithic_kernel&quot;&gt;Monolothic Architecture&lt;/a&gt;) بود (و هست.)&lt;/p&gt;&lt;p&gt;برخی بخش های جالب و بامزه از این بحث:&lt;/p&gt;&lt;p style=&quot;direction: ltr;&quot;&gt;&lt;b&gt;&lt;font color=&quot;#006633&quot;&gt;Andy Tanenbaum says:&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;direction: ltr;&quot;&gt;&lt;font face=&quot;Courier, Monospaced&quot; class=&quot;fixed_width&quot;&gt;At most of you know, MINIX is a hobby&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;direction: ltr;&quot;&gt;&lt;b&gt;&lt;font color=&quot;#cc6600&quot;&gt;Linus Benedict Torvalds answers:&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;direction: ltr;&quot;&gt;&lt;font face=&quot;Courier, Monospaced&quot; class=&quot;fixed_width&quot;&gt;Re 1: &lt;/font&gt;&lt;font face=&quot;Courier, Monospaced&quot; class=&quot;fixed_width&quot;&gt;you doing minix as a hobby - look at who makes money off minix, and who gives linux out for free.  Then talk about hobbies.  Make minix freely available, and one of my biggest gripes with it will disappear. Linux&lt;b&gt;&lt;/b&gt;has very much been a hobby (but a serious one: the best type) for me: I get no money for it, and it&#039;s not even part of any of my studies in the university.  I&#039;ve done it all on my own time, and on my own machine.&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;direction: ltr;&quot; /&gt;&lt;p style=&quot;direction: ltr;&quot;&gt;&lt;b&gt;&lt;font color=&quot;#006633&quot;&gt;Andy Tanenbaum says:&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;direction: ltr;&quot;&gt;&lt;font face=&quot;Courier, Monospaced&quot; class=&quot;fixed_width&quot;&gt; My real job is a professor and researcher in the area of operating systems.&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;direction: ltr;&quot;&gt;&lt;b&gt;&lt;font color=&quot;#cc6600&quot;&gt;&lt;br /&gt;Linus Benedict Torvalds answers:&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;direction: ltr;&quot;&gt;&lt;font face=&quot;Courier, Monospaced&quot; class=&quot;fixed_width&quot;&gt; your job is being a professor and researcher: That&#039;s one hell of a good excuse for some of the brain-damages of minix. I can only hope (and assume) that Amoeba doesn&#039;t suck like minix does.&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;direction: ltr;&quot;&gt;&lt;b&gt;&lt;font color=&quot;#006633&quot;&gt;Andrew S. Tanenbaum says:&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;direction: ltr;&quot;&gt;&lt;font face=&quot;Courier, Monospaced&quot; class=&quot;fixed_width&quot;&gt;   MINIX is a microkernel-based system. ... Linux is a monolithic style system. &lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;direction: ltr;&quot;&gt;&lt;b&gt;&lt;font color=&quot;#cc6600&quot;&gt;Linus Benedict Torvalds answers:&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;direction: ltr;&quot;&gt;&lt;font face=&quot;Courier, Monospaced&quot; class=&quot;fixed_width&quot;&gt;If this was the only criterion for the &amp;quot;goodness&amp;quot; of a kernel, you&#039;d be right.  What you don&#039;t mention is that minix doesn&#039;t do the micro-kernel thing very well, and has problems with real multitasking (in the kernel).  If I had made an OS that had problems with a multithreading filesystem, I wouldn&#039;t be so fast to condemn others: in fact, I&#039;d do my &lt;br /&gt; damndest to make others forget about the fiasco.&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;direction: ltr;&quot;&gt;&lt;b&gt;&lt;font color=&quot;#cc6600&quot;&gt;Linus Benedict Torvalds says:&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;direction: ltr;&quot;&gt;&lt;font face=&quot;Courier, Monospaced&quot; class=&quot;fixed_width&quot;&gt;PS. I apologise for sometimes sounding too harsh: minix is nice enough if you have nothing else. Amoeba might be nice if you have 5-10 spare 386&#039;s lying around, but I certainly don&#039;t. I don&#039;t usually get into flames, but I&#039;m touchy when it comes to linux &lt;img src=&quot;http://blog.pykello.net/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;direction: ltr;&quot;&gt;&lt;b&gt;&lt;font color=&quot;#006633&quot;&gt;Andy Tanenbaum says:&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;direction: ltr;&quot;&gt;&lt;font face=&quot;Courier, Monospaced&quot; class=&quot;fixed_width&quot;&gt; I still maintain the point that designing a monolithic kernel in 1991 is a fundamental error.  Be thankful you are not my student.  You would not get a high grade for such a design &lt;img src=&quot;http://blog.pykello.net/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;/font&gt;&lt;font face=&quot;Courier, Monospaced&quot; class=&quot;fixed_width&quot;&gt;&lt;/font&gt;&lt;font face=&quot;Courier, Monospaced&quot; class=&quot;fixed_width&quot;&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;direction: ltr;&quot;&gt;&lt;b&gt;&lt;font color=&quot;#cc6600&quot;&gt;Linus Benedict Torvalds answers:&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;direction: ltr;&quot;&gt;&lt;font face=&quot;Courier, Monospaced&quot; class=&quot;fixed_width&quot;&gt;Well, I probably won&#039;t get too good grades even without you: I had an argument (completely unrelated - not even pertaining to OS&#039;s) with the person here at the university that teaches OS design.  I wonder when I&#039;ll learn &lt;img src=&quot;http://blog.pykello.net/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Fri, 07 Sep 2007 20:04:00 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/83-guid.html</guid>
    
</item>
<item>
    <title>Stencil Shadow Volumes Using OpenGL</title>
    <link>http://blog.pykello.net/index.php?/archives/84-Stencil-Shadow-Volumes-Using-OpenGL.html</link>
            <category>Programming</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/84-Stencil-Shadow-Volumes-Using-OpenGL.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=84</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=84</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;&lt;p&gt;اگر می خواهید با استفاده از OpenGL بتوانيد سايه های نسبتا واقعی ايجاد کنید:&lt;/p&gt;&lt;p&gt; 1. ابتدا مفهوم و چگونگی کار با Stencil Buffer را یاد بگیرید. برای این کار، به مطلب آموزشی&lt;a href=&quot;http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=26&quot;&gt; Clipping &amp;amp; Reflections Using the Stencil Buffer&lt;/a&gt; مراجعه کنید. اگر همچنان مشکل داشتید، می توانید به &lt;a href=&quot;http://www.flazx.com/ebook3461.php&quot;&gt;OpenGL SuperBible&lt;/a&gt; مراجعه کنید.&lt;/p&gt;&lt;p&gt; 2. مقاله ی &lt;a href=&quot;http://www.gamedev.net/reference/articles/article1873.asp&quot;&gt;The Theory of Stencil Shadow Volumes&lt;/a&gt; را مطالعه کنید تا دیدی کلی از چگونگی ایجاد سایه با استفاده از Stencil Buffer پیدا کنید.&lt;/p&gt;&lt;p&gt; 3. مقاله ی &lt;a href=&quot;http://www.gamedev.net/reference/articles/article2036.asp&quot;&gt;Volume Shadows Tutorial&lt;/a&gt; را مطالعه کنید تا هم مروری بر مطالبی که تا حالا خوانده اید باشد و هم کمی با جزئیات پیاده سازی آشنا شوید.&lt;/p&gt;&lt;p&gt; 4. اکنون مطب آموزشی &lt;a href=&quot;http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=27&quot;&gt;NeHe OpenGL Tutorials #27: Shadows&lt;/a&gt; را مطالعه کنید و حتما سعی کنید تمام جزئیات مربوط به ایجاد سایه را درک کنید. اگر لازم شد، به &lt;a href=&quot;http://publib.boulder.ibm.com/infocenter/pseries/v5r3/topic/com.ibm.aix.opengl/doc/openglrf/openglrf.pdf&quot;&gt;OpenGL Reference Manual&lt;/a&gt; مراجعه کنید تا با توابع نا آشنا آشنا شوید.&lt;/p&gt;&lt;p&gt; 5. حتما سعی کنید خودتان یک سیستم سایه پیاده سازی کنید. و گرنه خوب یاد نخواهید گرفت!&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#0000ff&quot;&gt;توضيحات:&lt;/font&gt;&lt;/p&gt;&lt;p&gt; 1. بسیاری از بازی های کامپیوتری سه بعدی با کیفیت بالا، مثل &lt;a href=&quot;http://www.doom3.com/&quot;&gt;Doom III&lt;/a&gt;، از این تکنیک برای ایجاد سایه ها استفاده می کنند. (&lt;a href=&quot;http://warp.povusers.org/doom3snapshots/&quot;&gt;چند تصویر از سایه ها در Doom 3&lt;/a&gt;)&lt;/p&gt;&lt;p&gt; 2. همان طور که در تصویر دوم و سوم مشاهده می کنید، در این تکینیک، سطح دریافت کننده ی سایه حتما لازم نیست مسطح باشد.&lt;/p&gt;&lt;p&gt; 3. &lt;font color=&quot;#0000ff&quot;&gt;مهم:&lt;/font&gt; علاوه بر این تکنیک، تکنیک های دیگری برای ایجاد سایه وجود دارد. مثل: &lt;a href=&quot;http://en.wikipedia.org/wiki/Shadow_mapping&quot;&gt;Shadow Texture Mapping&lt;/a&gt; و Shadow Projection.&lt;/p&gt;&lt;p align=&quot;baseline&quot;&gt;چند تصویر از نتایج برنامه ی من که بالاخره پس از چند ساعت موفق شدم به یک نتیجه ی قابل قبول برسم:&lt;/p&gt;&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;images/shadows.jpg&quot; /&gt;&lt;/p&gt;&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;images/shadow2.jpg&quot; /&gt;&lt;/p&gt;&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;images/shadow3.jpg&quot; /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Mon, 03 Sep 2007 13:48:13 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/84-guid.html</guid>
    
</item>
<item>
    <title>Stencil Buffer and Glut</title>
    <link>http://blog.pykello.net/index.php?/archives/85-Stencil-Buffer-and-Glut.html</link>
            <category>Programming</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/85-Stencil-Buffer-and-Glut.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=85</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=85</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;&lt;img align=&quot;right&quot; src=&quot;images/mirror.jpg&quot; /&gt;&lt;p&gt;Don&#039;t forget to enable the Stencil Buffer when initializing or you will be سر کار for many hours! &lt;/p&gt;&lt;p&gt;glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH | GLUT_STENCIL);&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#0000ff&quot;&gt;Comment&lt;/font&gt;: &lt;a href=&quot;http://en.wikipedia.org/wiki/Stencil_buffer&quot;&gt;Stencil Buffer&lt;/a&gt; is used in computer graphics to create some realistic cool effects like Shadows and Mirrors.&lt;/p&gt;&lt;p /&gt;&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Fri, 31 Aug 2007 15:48:31 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/85-guid.html</guid>
    
</item>
<item>
    <title>Words of Wisdom II</title>
    <link>http://blog.pykello.net/index.php?/archives/86-Words-of-Wisdom-II.html</link>
            <category>Sacred Words</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/86-Words-of-Wisdom-II.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=86</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=86</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;&lt;img align=&quot;left&quot; src=&quot;images/hands.jpg&quot; /&gt;&lt;font color=&quot;#cc0000&quot;&gt;از صحیفه ی سجادیه - دعای بیستم - در خوی های نيکو و کردار پسندیده :&lt;/font&gt;&lt;br /&gt;&lt;p&gt;&lt;font color=&quot;#006633&quot;&gt;بارخدايا، بر محمّد و خاندانش درود فرست و توفيقم ده تا با کسی که به من ناراستی کرده راستی کنم، به کسی که از من دوری گزيده نيکی کنم، کسی را که محرومم ساخته به احسان بنوازم، با کسی که رشته ی دوستی بريده بپيوندم، کسی را که از من به بدی ياد کرده به نيکی ياد کنم و همواره خوبی را سپاس گويم و از بدی چشم فرو پوشم.&lt;br /&gt;...&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#006633&quot;&gt;بارخدايا، آن آرزو و بدگمانی و رشک را که شيطان در دلم اَفکند، به يادِ عظمتت، تفکر در قدرتت، و تدبير بر دشمنت، دگرگون ساز؛ و آنچه از سخنِ زشت و بيهوده، يا دشنام، يا ريختن آبرو، يا گواهیِ نادرست، يا غيبت مومن غايب، يا ناسزا گفتن  به حاضر و همانند اينها، که شيطان بر زبانم روان می سازد، تو آن را به حمد و سپاست، افزونی در ثنايت، بيان مجد و عظمتت، سپاس نعمتت، اقرار به احسانت و شمارشِ نعمت هايت بدل فرما.&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;font color=&quot;#cc0000&quot;&gt;از صحیفه ی سجادیه - دعای چهلم - یاد مرگ :&lt;/font&gt;&lt;br /&gt;&lt;p&gt;&lt;font color=&quot;#006633&quot;&gt;بارخدايا، بر محمّد و خاندانش درود فرست و ما را از آرزوهای دور و دراز در امان بدار، و با کردار درست عمر آرزوها را به کوتاهی آر، آن سان که آرزو نکنيم ساعتی به ساعتی ديگر رسانيم، روزی را به روزی، نَفَسی را به نَفَسی، يا گامی را به گامی بپيونديم.&lt;br /&gt;&lt;br /&gt;بارخدايا، ما را از فريب آرزوها به سلامت دار، از شرّ آن در پناه خود آر، مرگ را در برابرمان دار، و لحظه ای غفلت از آن را بر ما روا مدار.&lt;br /&gt;&lt;br /&gt;از کردار شايسته، آن چنان بهره مندمان ساز، که از دير شدن بازگشت به سوی تو انديشناک شويم، و برای ديدارت لحظه بشماريم، چنانکه مرگ سرای آرامش ما باشد، که دل بدان بنديم، و آشيانِ آسايش ما باشد، که به سويش بال بگشاييم، و پناهگاه ما باشد، که نزديک شدنش را دوست بداريم.&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Wed, 29 Aug 2007 07:55:59 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/86-guid.html</guid>
    
</item>
<item>
    <title>Automatic Switching</title>
    <link>http://blog.pykello.net/index.php?/archives/89-Automatic-Switching.html</link>
            <category>Joy of Science</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/89-Automatic-Switching.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=89</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=89</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;&lt;font color=&quot;#339900&quot;&gt;داستان عجيب و غريب اختراع دستگاه سوئيچينگ خودکار تلفن از کتاب &amp;quot;شبکه های کامپيوتری&amp;quot; نوشته ی &amp;quot;اندرو اس. تَنن بام&amp;quot;:&lt;/font&gt;&lt;br /&gt;اختراع دستگاه سوئيچينگ خودکار تلفن داستان جالبی دارد: اين دستگاه در قرن نوزدهم در ايالت ميسوری توسط فردی به نام آلمون ب. استراوگر، که شغل وی کفن و دفن بود، اختراع شد. در آن روزها وقتی کسی می مُرد، يکی از بازماندگان وی با اپراتور تلفن شهر تماس می گرفت و می گفت: «لطفا مرا به يک موسسه کفن و دفن وصل کنيد.» در شهر آقای استراوگر دو موسسهء کفن و دفن وجود داشت، و از شانس بد اين آقا، اپراتور تلفن همسر رقيب بود. آقای استراوگر خيلی زود دريافت که اگر می خواهد ورشکست نشود، بايد يک دستگاه سوئيچينگ خودکار تلفن اختراع کند – و اين کار را کرد. همه ی آنهايي که در سراسر دنيا با دستگاههای سوئيچينگ خودکار تلفن سروکار دارند، آنها را با نام «دستگاه استراوگر» می شناسند. (تاريخ نمی گويد آيا اين خانم بعد از بيکار شدن توانست شغلی مانند اپراتور اطلاعات تلفن – که بايد به سوالاتی از قبيل «لطفا شماره يک موسسهء کفن و دفن را بدهيد» پاسخ دهد – بدست آورد يا خير؟)&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Mon, 13 Aug 2007 23:08:25 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/89-guid.html</guid>
    
</item>
<item>
    <title>Introducing TurboGears - Part 2</title>
    <link>http://blog.pykello.net/index.php?/archives/90-Introducing-TurboGears-Part-2.html</link>
            <category>Programming</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/90-Introducing-TurboGears-Part-2.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=90</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=90</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;img src=&quot;http://blog.pykello.net/images/tg_gear.png&quot; align=&quot;left&quot; /&gt;در قسمت اول، اندکی با امکاناتی که TurboGears در رابطه با مدل داده ای، کنترلرها، لايه ی نمايش در اختيار می گذارد آشنا شديم. در اين بخش می خواهم مثال های بيشتری در رابطه با مدل داده ای مطرح کنم تا بيشتر با امکانات TurboGears آشنا شويد.&lt;br/&gt;قبل از شروع، لازم به يادآوری است که هدف از اين سری نوشته ها آشنا کردن شما با TurboGears و امکانات آن با استفاده از تعدادی مثال کوچک است. يعنی اينکه هدف من آموزش TurboGears نيست. اگر مايل به ياد گرفتن TurboGears هستيد، به لينک های زير مراجعه کنيد:&lt;br/&gt; + &lt;a href=&quot;http://exogen.case.edu/turbogears.html&quot;&gt;TurboGears Tutorial&lt;/a&gt;&lt;br/&gt; + &lt;a href=&quot;http://docs.turbogears.org/1.0&quot;&gt;مستندات TurboGears&lt;/a&gt;&lt;br/&gt; + ويدئوی &lt;a href=&quot;http://files.turbogears.org/video/20MinuteWiki2nd.mov&quot;&gt;The 20 Minutes Wiki&lt;/a&gt;: اين ويدئو که توسط ابداع کننده ی TurboGears یعنی &lt;a href=&quot;http://www.blueskyonmars.com/wp-content/uploads/2006/11/MeAndABook.jpg&quot;&gt;Kevin Dangoor&lt;/a&gt;  ايجاد شده، نشان می دهد که چگونه می توان با استفاده از TurboGears در مدت 20 دقيقه يک سيستم Wiki ساخت.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color=&quot;#CC00CC&quot;&gt;آشنايي بيشتر با مدل داده در TurboGears&lt;/font&gt;&lt;br/&gt;در قسمت قبل چندين مثال ساده در رابطه با مدل داده ای مطرح کرديم. در اين قسمت مثال های بيشتری مطرح می کنم. &lt;br/&gt;همان طور که قبلا گفتم، برای مشخص کردن نوع و مشخصات پايگاه داده ی مورد استفاده در برنامه ی تحت وبمان، بايد فايل dev.cfg را تغيير دهيم و سطری مشابه سطر زير در آن ايجاد کنيم:&lt;br/&gt;&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;&lt;div class=&quot;python&quot; style=&quot;text-align: left&quot;&gt;sqlobject.&lt;span style=&quot;color: black;&quot;&gt;dburi&lt;/span&gt; = &lt;span style=&quot;color: #483d8b;&quot;&gt;&amp;quot;sqlite:///home/brian/tutorial/tutorial.sqlite&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;در مثال بالا، نوع پايگاه داده ی مورد استفاده (sqlite) و مسيری که فايل پايگاه داده در آن ذخيره می شود ذکر شده است. در زير چند مثال ديگر مشاهده می کنيد که پايگاه داده هايي از نوع &lt;a href=&quot;http://mysql.com/&quot;&gt;MySQL&lt;/a&gt; و &lt;a href=&quot;http://www.postgresql.org/&quot;&gt;PostgreSQL&lt;/a&gt; را مشخص می کنند:&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;&lt;div class=&quot;python&quot; style=&quot;text-align: left&quot;&gt;mysql://&lt;span style=&quot;color: #dc143c;&quot;&gt;user&lt;/span&gt;:password@host/database&lt;br /&gt;mysql://host/database?debug=&lt;span style=&quot;color: #ff4500;&quot;&gt;1&lt;/span&gt;&lt;br /&gt;postgres://&lt;span style=&quot;color: #dc143c;&quot;&gt;user&lt;/span&gt;@host/database?debug=&amp;amp;cache=&lt;br /&gt;postgres:///full/path/to/&lt;span style=&quot;color: #dc143c;&quot;&gt;socket&lt;/span&gt;/database&lt;br /&gt;postgres://host:&lt;span style=&quot;color: #ff4500;&quot;&gt;5432&lt;/span&gt;/database&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;برای ايجاد کردن ارتباط يک به چند:&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;&lt;div class=&quot;python&quot; style=&quot;text-align: left&quot;&gt;&lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;class&lt;/span&gt; Address&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;SQLObject&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; Country = StringCol&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; City = StringCol&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; StreetAddress = StringCol&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; Owner = ForeignKey&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;&amp;quot;Person&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;class&lt;/span&gt; Person&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;SQLObject&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; name = StringCol&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; addresses = MultipleJoin&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;&#039;Address&#039;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;در مثال بالا، هر آدرس متعلق به تنها يک شخص است، ولی يک شخص می تواند دارای چندين آدرس باشد.&lt;br/&gt;مثال ديگر در ارتباط با تعريف جداول همراه با توضيحات:&lt;br/&gt;&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;&lt;div class=&quot;python&quot; style=&quot;text-align: left&quot;&gt;&lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;class&lt;/span&gt; Person&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;SQLObject&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #dc143c;&quot;&gt;email&lt;/span&gt; = StringCol&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;alternateID = &lt;span style=&quot;color: #008000;&quot;&gt;True&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# email is an index column for the table&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; name = StringCol&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;unique = &lt;span style=&quot;color: #008000;&quot;&gt;True&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# no duplicate values for name&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; birthdate = DateCol&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;notNone = &lt;span style=&quot;color: #008000;&quot;&gt;True&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# birthdate cannot be without value&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; maritalStatus = EnumCol&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;enumValues=&lt;span style=&quot;color: black;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;&#039;Single&#039;&lt;/span&gt;, &lt;span style=&quot;color: #483d8b;&quot;&gt;&#039;Married&#039;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#93;&lt;/span&gt;, default=&lt;span style=&quot;color: #483d8b;&quot;&gt;&#039;Single&#039;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# maritalStatus can be either &#039;Single&#039; or &#039;Married&#039;, and its default value is &#039;Single&#039;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;لازم به ذکر است که هر کدام از جداول به طور پيش فرض دارای فيلدی به نام id هستند که به عنوان Primary Key به کار می رود.برای انتخاب رکوردها با استفاده از مقادير فيلد ها:&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;&lt;div class=&quot;python&quot; style=&quot;text-align: left&quot;&gt;result = Person.&lt;span style=&quot;color: black;&quot;&gt;selectBy&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;name = &lt;span style=&quot;color: #483d8b;&quot;&gt;&amp;quot;Hadi&amp;quot;&lt;/span&gt;, maritalStatus = &lt;span style=&quot;color: #483d8b;&quot;&gt;&#039;Single&#039;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;برای انتخاب رکوردها با استفاده از فيلدهای ايندکس:&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;&lt;div class=&quot;python&quot; style=&quot;text-align: left&quot;&gt;result = Person.&lt;span style=&quot;color: black;&quot;&gt;byEmail&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;&#039;hadi@pykello.net&#039;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;برای مشخص کردن Query با استفاده از زبان SQL:&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;&lt;div class=&quot;python&quot; style=&quot;text-align: left&quot;&gt;result = Person._connection.&lt;span style=&quot;color: black;&quot;&gt;queryAll&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;&#039;Select * from Person&#039;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;برای بدست آوردن تعداد رکوردها موجود در نتيجه:&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;&lt;div class=&quot;python&quot; style=&quot;text-align: left&quot;&gt;count = result.&lt;span style=&quot;color: black;&quot;&gt;count&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;برای بدست آوردن رکورد اول موجود در نتيجه و تغيير يکی از فيلدهای آن:&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;&lt;div class=&quot;python&quot; style=&quot;text-align: left&quot;&gt;firstPerson = result&lt;span style=&quot;color: black;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff4500;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;br /&gt;firstPerson.&lt;span style=&quot;color: black;&quot;&gt;name&lt;/span&gt; = &lt;span style=&quot;color: #483d8b;&quot;&gt;&amp;quot;Hadi Moshayedi&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;TurboGears برای ارتباط با پايگاه داده از &lt;a href=&quot;http://www.sqlobject.org/&quot;&gt;SQLObject&lt;/a&gt; استفاده می کند. برای آشنايي بيشتر با امکانات SQLObject به &lt;a href=&quot;www.sqlobject.org/SQLObject.html&quot;&gt;مستندات SQLObject&lt;/a&gt; مراجعه کنيد.&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sat, 11 Aug 2007 06:17:06 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/90-guid.html</guid>
    
</item>
<item>
    <title>Introducing TurboGears - Part 1</title>
    <link>http://blog.pykello.net/index.php?/archives/91-Introducing-TurboGears-Part-1.html</link>
            <category>Programming</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/91-Introducing-TurboGears-Part-1.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=91</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=91</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;&lt;img src=&quot;http://blog.pykello.net/images/tg_gear.png&quot; align=&quot;left&quot; /&gt;در اين بخش و بخش های بعدی به معرفی TurboGears، فريم ورکی برای توليد برنامه های تحت وب خواهم پرداخت. هدف من از اين سری مطالب آموزش TurboGears نيست، بلکه می خواهم شما حسی نسبت به چگونگی توليد برنامه های کاربردی تحت وب با استفاده از TurboGears و امکاناتی که در اختيار شما قرار می دهد پيدا کنيد، و بتوانيد تصميم بگيريد که آيا TurboGears برای نيازهای شما مناسب است يا نه.&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;&lt;font color=&quot;#9933CC&quot;&gt;TurboGears چيست؟&lt;/font&gt;&lt;br /&gt;TurboGears يک زبان جديد نيست، بلکه يک سری ابزار و کتابخانه ی برنامه نويسی است که با استفاده از آن می توانيد برنامه های تحت وب ايجاد کنيد. زبان برنامه نويسی که TurboGears از آن استفاده می کند Python است.&lt;br /&gt;TurboGears مبتنی بر معماری Model-View-Controller می باشد و برنامه نويس را هدايت به جدا کردن اين سه لايه از يکديگر می کند.&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;&lt;font color=&quot;#9933CC&quot;&gt;مدل داده ای&lt;/font&gt;&lt;br /&gt;ديگر در TurboGears نيازی به نوشتن دستورات پيچيده ی SQL نيست. مثلا اگر بخواهيم يک جدول به نام User داشته باشيم که دارای فيلدهای name و email باشد، کافی است کلاسی به اسم User که از کلاس SQLObject مشتق می شود ايجاد کنيم:&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;&lt;div class=&quot;python&quot; style=&quot;text-align: left&quot;&gt;&lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;class&lt;/span&gt; User&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;SQLObject&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; name = StringCol&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #dc143c;&quot;&gt;email&lt;/span&gt; = StringCol&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;و اگر بخواهيم هر User دارای چندين دوست باشد (ارتباط چند-به-چند):&lt;/div&gt;&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;&lt;div class=&quot;python&quot; style=&quot;text-align: left&quot;&gt;&lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;class&lt;/span&gt; User&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;SQLObject&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; name = StringCol&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #dc143c;&quot;&gt;email&lt;/span&gt; = StringCol&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; friends = MultipleJoin&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;&#039;User&#039;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;و البته اين کلاس ها می توانند دارای تابع هم باشند:&lt;/div&gt;&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;&lt;div class=&quot;python&quot; style=&quot;text-align: left&quot;&gt;&lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;class&lt;/span&gt; User&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;SQLObject&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; …&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;def&lt;/span&gt; FriendCount&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;return&lt;/span&gt; friends.&lt;span style=&quot;color: black;&quot;&gt;count&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;اکنون اگر بخواهيم يک سطر به جدول User اضافه کنيم، کافی است يک شیء از نوع User ايجاد کنيم:&lt;/div&gt;&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;&lt;div class=&quot;python&quot; style=&quot;text-align: left&quot;&gt;hadi = User&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;name = &lt;span style=&quot;color: #483d8b;&quot;&gt;&amp;quot;Hadi&amp;quot;&lt;/span&gt;, &lt;span style=&quot;color: #dc143c;&quot;&gt;email&lt;/span&gt; = &lt;span style=&quot;color: #483d8b;&quot;&gt;&amp;quot;hadi@pykello.net&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;اگر بخواهيم اين سطر را در پايگاه داده تغيير دهيم، کافی است که دستور زير را اجرا کنيم:&lt;/div&gt;&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;&lt;div class=&quot;python&quot; style=&quot;text-align: left&quot;&gt;hadi.&lt;span style=&quot;color: #dc143c;&quot;&gt;email&lt;/span&gt; = &lt;span style=&quot;color: #483d8b;&quot;&gt;&amp;quot;irancoldfusion@yahoo.com&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;و برای حذف اين سطر از جدول:&lt;/div&gt;&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;&lt;div class=&quot;python&quot; style=&quot;text-align: left&quot;&gt;hadi.&lt;span style=&quot;color: black;&quot;&gt;destroySelf&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;و اگر بخواهيم يک User که فيلد name آن برابر با Hadi است را از جدول پيدا کنيم:&lt;/div&gt;&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;&lt;div class=&quot;python&quot; style=&quot;text-align: left&quot;&gt;result = User.&lt;span style=&quot;color: black;&quot;&gt;selectBy&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;name = &lt;span style=&quot;color: #483d8b;&quot;&gt;&amp;quot;Hadi&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;در TurboGears، جداول را در فايل model.py تعريف می شوند، و برای مشخص کردن نوع پايگاه داده ی مورد استفاده (MySQL، PostgreSQL، SQLite، ...) و مشخصات آن، سطری مانند سطر زير در فايل dev.cfg استفاده می کنيم:&lt;/div&gt;&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;&lt;div class=&quot;python&quot; style=&quot;text-align: left&quot;&gt;sqlobject.&lt;span style=&quot;color: black;&quot;&gt;dburi&lt;/span&gt; = &lt;span style=&quot;color: #483d8b;&quot;&gt;&amp;quot;sqlite:///home/brian/tutorial/tutorial.sqlite&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;همان طور که مشاهده می کنيد، در TurboGears کاری به جزئياتی مانند ايجاد ارتباط با پايگاه داده، نوشتن دستورات SQL، ... نداريم. و همچنين با رکوردهای موجود در پايگاه داده مانند اشياء رفتار می کنيم.البته در صورت نياز، می توان با اين جزئيات کار داشت، و سطح پائين تر کار کرد، ولی اين نيازها کمتر به وجود می آيند.&lt;br/&gt;خيلی خوبه، مگه نه؟&lt;br/&gt;در قسمت های بعدی بيشتر به بحث امکاناتی که TurboGears در رابطه با مدل داده ای در اختيار ما می گذارد خواهم پرداخت.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color=&quot;#9933CC&quot;&gt;کنترلرها&lt;/font&gt;&lt;br/&gt;رفتار برنامه ی شما در فايل controllers.py توصيف می شود. &lt;br/&gt;توجه: در ادامه فرض می کنم که URL برنامه ی ما http://localhost/ است.&lt;br/&gt;مثلا اگر می خواهيد صفحه ی http://localhost/ (و همچنين http://localhost/index) عبارت Hello World! را نمايش دهد:&lt;/div&gt;&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;&lt;div class=&quot;python&quot; style=&quot;text-align: left&quot;&gt;&lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;class&lt;/span&gt; Root&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;controllers.&lt;span style=&quot;color: black;&quot;&gt;RootController&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; @expose&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;def&lt;/span&gt; index&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;self&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;&amp;quot;Hello World!&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;در واقع کلاس Root متناظر با مسير اصلی (يعنی http://localhost/ ) متناظر است، و توابع کلاس Root متناظر با صفحات شما. &lt;br/&gt;حال اگر بخواهيم پارامترهايي را به يک صفحه پاس کنيم:&lt;/div&gt;&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;&lt;div class=&quot;python&quot; style=&quot;text-align: left&quot;&gt;&lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;class&lt;/span&gt; Root&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;controllers.&lt;span style=&quot;color: black;&quot;&gt;RootController&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; …&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; @expose&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;def&lt;/span&gt; showmessage&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;self&lt;/span&gt;, name = &lt;span style=&quot;color: #483d8b;&quot;&gt;&amp;quot;Hadi&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;&amp;quot;Hello &amp;quot;&lt;/span&gt; + name&lt;/div&gt;&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;حال اگر با استفاده از مرورگر وب مسير http://localhost/showmessage را مشاهده کنيد، عبارت Hello Hadi را مشاهده می کنيد، و مسير http://localhost/showmessage?name=pykello عبارت Hello pykello را نمايش می دهد.&lt;br/&gt;&lt;br/&gt;اکنون اگر بخواهيم آدرس ايميل کاربری را از پايگاه داده استخراج کنيم و نمايش دهيم:&lt;/div&gt;&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;&lt;div class=&quot;python&quot; style=&quot;text-align: left&quot;&gt;&lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;class&lt;/span&gt; Root&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;controllers.&lt;span style=&quot;color: black;&quot;&gt;RootController&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; …&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; @expose&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;def&lt;/span&gt; showemail&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;self&lt;/span&gt;, name=&lt;span style=&quot;color: #483d8b;&quot;&gt;&amp;quot;hadi&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; result = User.&lt;span style=&quot;color: black;&quot;&gt;selectBy&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;name = name&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;if&lt;/span&gt; result.&lt;span style=&quot;color: black;&quot;&gt;count&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt; == &lt;span style=&quot;color: #ff4500;&quot;&gt;0&lt;/span&gt;:&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;&amp;quot;No such user!&amp;quot;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;else&lt;/span&gt;:&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;&amp;quot;The email address is &amp;quot;&lt;/span&gt; + result&lt;span style=&quot;color: black;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff4500;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#93;&lt;/span&gt;.&lt;span style=&quot;color: #dc143c;&quot;&gt;email&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;در صورتی که هيچ تابعی برای مديريت صفحه ی مورد نظر موجود نباشد، تابع default فراخوانی می شود:&lt;/div&gt;&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;&lt;div class=&quot;python&quot; style=&quot;text-align: left&quot;&gt;&lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;class&lt;/span&gt; Root&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;controllers.&lt;span style=&quot;color: black;&quot;&gt;RootController&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; …&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; @expose&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;def&lt;/span&gt; default&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;self&lt;/span&gt;, methodname&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;return&lt;/span&gt; methodname + &lt;span style=&quot;color: #483d8b;&quot;&gt;&amp;quot; not found&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;اگر بخواهيم آدرس هايي با فرمت http://localhost/~username آدرس ايميل متناظر با username را نشان دهد:&lt;/div&gt;&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;&lt;div class=&quot;python&quot; style=&quot;text-align: left&quot;&gt;&lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;class&lt;/span&gt; Root&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;controllers.&lt;span style=&quot;color: black;&quot;&gt;RootController&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; …&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; @expose&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;def&lt;/span&gt; default&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;self&lt;/span&gt;, methodname&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #dc143c;&quot;&gt;re&lt;/span&gt;.&lt;span style=&quot;color: black;&quot;&gt;match&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;&amp;quot;^~[&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\w&lt;/span&gt;&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\d&lt;/span&gt;]+$&amp;quot;&lt;/span&gt;, methodname&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;: &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# a regular expression matching&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;return&lt;/span&gt; showemail&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;methodname&lt;span style=&quot;color: black;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff4500;&quot;&gt;1&lt;/span&gt;:&lt;span style=&quot;color: black;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# i.e. suffix starting from second character&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;else&lt;/span&gt;:&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #483d8b;&quot;&gt;&amp;quot;Page not found!&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;&lt;font color=&quot;#9933CC&quot;&gt;&lt;br/&gt;لايه ی نمايش&lt;br/&gt;&lt;/font&gt;مثال هايي که در بخش قبلی نشان داديم، تنها متن ساده به عنوان خروجی ايجاد می کردند. اگر بخواهيم صفحات خوشگل ايجاد کنيم، روش بخش قبل کثيف و پردردسر است.&lt;br/&gt;TurboGears اين امکان را در اختيار ما می گذارد که لايه ی نمايش را با استفاده از template ها توصيف کنيم.مثلا، اگر مسيری که پروژه ی ما در آن ذخيره شده باشد c:\tutorial باشد، برای اينکه يک تابع در لايه ی کنترلر از template موجود در c:\tutorial\tutorial\templates\user.kid استفاده کند:&lt;/div&gt;&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;&lt;div class=&quot;python&quot; style=&quot;text-align: left&quot;&gt;&lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;class&lt;/span&gt; Root&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;controllers.&lt;span style=&quot;color: black;&quot;&gt;RootController&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; …&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; @expose&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;template=&lt;span style=&quot;color: #483d8b;&quot;&gt;&amp;quot;tutorial.templates.user&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;def&lt;/span&gt;&amp;#160; showemail&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;self&lt;/span&gt;, name = &lt;span style=&quot;color: #483d8b;&quot;&gt;&amp;quot;hadi&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; result = User.&lt;span style=&quot;color: black;&quot;&gt;selectBy&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;name = name&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;dict&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;name = name, &lt;span style=&quot;color: #dc143c;&quot;&gt;email&lt;/span&gt; = result&lt;span style=&quot;color: black;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff4500;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#93;&lt;/span&gt;.&lt;span style=&quot;color: #dc143c;&quot;&gt;email&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;و فايل user.kid:&lt;/div&gt;&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;&lt;div style=&quot;text-align: left&quot;&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;head&amp;gt;&amp;lt;title&amp;gt;Welcome to TurboGears!&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;body&amp;gt;The email address for user $name is $email .&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/div&gt;&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;در قسمت های بعدی بيشتر به ايجاد template ها و امکانات خواهم پرداخت.&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Fri, 10 Aug 2007 13:54:27 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/91-guid.html</guid>
    
</item>
<item>
    <title>Where is the Sun-day?</title>
    <link>http://blog.pykello.net/index.php?/archives/92-Where-is-the-Sun-day.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/92-Where-is-the-Sun-day.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=92</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=92</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div align=&quot;left&quot; dir=&quot;ltr&quot;&gt;Life is going into reverse ...&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sun, 05 Aug 2007 00:53:48 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/92-guid.html</guid>
    
</item>
<item>
    <title>Daily Comment</title>
    <link>http://blog.pykello.net/index.php?/archives/93-Daily-Comment.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/93-Daily-Comment.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=93</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=93</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;می توان برای مدتی به یک نقطه زُل زد و از این زُل زدن لذت هم برد، مگر این که اجباری در کار باشد.&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sun, 20 May 2007 10:04:33 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/93-guid.html</guid>
    
</item>
<item>
    <title>These words he writes ...</title>
    <link>http://blog.pykello.net/index.php?/archives/94-These-words-he-writes-....html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/94-These-words-he-writes-....html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=94</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=94</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt;&lt;img vspace=&quot;0&quot; hspace=&quot;0&quot; border=&quot;0&quot; align=&quot;left&quot; src=&quot;http://blog.pykello.net/images/65.jpg&quot; /&gt;بهشت سبز به خانه ام می آید،&lt;/p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt;و من خاکستری می گریم،&lt;/p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt;خاکستری، خاکستری، خاکستری، ...&lt;/p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt;------------------------------&lt;/p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt;میز مواخذه و جایگاه محاکمه و روز بازخواست&lt;/p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt;آشوب در پس جبینم&lt;/p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt;به نابخشوده ترین راه&lt;/p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt;آه، به نابخشوده ترین راه&lt;/p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt;من میان روشنی و تاریکی تاب می خورم ...&lt;/p&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sat, 19 May 2007 04:42:20 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/94-guid.html</guid>
    
</item>
<item>
    <title>Ivan and the bugs</title>
    <link>http://blog.pykello.net/index.php?/archives/95-Ivan-and-the-bugs.html</link>
            <category>Algorithms</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/95-Ivan-and-the-bugs.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=95</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=95</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;p dir=&quot;rtl&quot; align=&quot;right&quot;&gt;امروز به بررسی &lt;a href=&quot;http://acm.tju.edu.cn/toj/showp2714.html&quot;&gt;مساله Collecting Bugs &lt;/a&gt;که یکی از سوالات &lt;a href=&quot;http://neerc.ifmo.ru/past/2004/northern/standings.html&quot;&gt;ACM/ICPC 2004 NEERC Northern Subregional&lt;/a&gt; و همچنین یکی از سوالات آخرین مسابقه هفتگی ما بود می پرازم.&lt;/p&gt;&lt;p dir=&quot;rtl&quot; align=&quot;right&quot;&gt;صورت سوال: n نوع شیء آبی و از هر کدام به اندازه ی بی نهایت و s نوع شیء زرد و از هر کدام به اندازه ی بی نهایت داریم. هر روز یک شیء آبی و یک شیء قرمز را به تصادف انتخاب می کنیم. هنگامی که از هر نوع شیء آبی حداقل یکی و هر نوع شیء قرمز حداقل یکی انتخاب کرده باشیم دیگر ادامه نمی دهیم. می خواهیم &lt;a href=&quot;http://en.wikipedia.org/wiki/Expected_value&quot;&gt;امید ریاضی&lt;/a&gt; تعداد روزهایی که به آخر کار می رسیم را پیدا کنیم.&lt;/p&gt;&lt;p dir=&quot;rtl&quot; align=&quot;right&quot;&gt;طبق تجربه، در چنین مواردی که حداکثر تعداد روزها معلوم نیست، نباید به راه حلی که به ازای هر مقداری احتمال رخداد آن را حساب کرد و جمع حاصل ضرب مقادیر در احتمالات نتیجه را حساب کرد. و باز هم طبق چندین سوال احتمالاتی که تا حالا دیده ام، این گونه مسائل اکثر با&lt;a href=&quot;http://en.wikipedia.org/wiki/Dynamic_programming&quot;&gt; برنامه سازی پویا &lt;/a&gt;قابل حل شدن می باشند. برای آشنایی و یادگیری بیشتر در باره ی مسائل احتمالاتی در مسابقات برنامه نویسی و دیدن چندین مثال دیگر به &lt;a href=&quot;http://www.topcoder.com/tc?module=Static&amp;d1=tutorials&amp;d2=probabilities&quot;&gt;مقاله ی Understanding Probabilities&lt;/a&gt;&lt;a href=&quot;http://www.topcoder.com/tc&quot;&gt;سایت Topcoder&lt;/a&gt; مراجعه کنید.&lt;/p&gt;&lt;p dir=&quot;rtl&quot; align=&quot;right&quot;&gt;فرض کنید F&lt;sub&gt;i,j&lt;/sub&gt; امید ریاضی حالتی باشد که در آن تعداد اشیاء آبی که تا به حال هیچ وقت انتخاب نشده اند i و تعداد اشیاء قرمز که تا به حال هیچ وقت انتخاب نشده اند برابر j باشد. چندین حال برای جفت i و j داریم:&lt;/p&gt;&lt;p dir=&quot;rtl&quot; align=&quot;right&quot;&gt; 1- i = 0 و j = 0: در این صورت دیگر لازم نیست هیچ روزی ادامه دهیم و جواب برابر با 0 خواهد بود.&lt;/p&gt;&lt;p&gt; 2- i = 0 و j != 0: به هر حال باید یک روز انتخاب را انجام دهیم. در این روز به احتمال j/s شیء زردی که قبلا هیچ وقت انتخاب نکردیم را انتخاب می کنیم و در روز های بعد باید با j-1 شی انتخاب نشده ی زرد ادامه دهیم، و با احتمال s-j)/s) یکی از اشیاء زردی را که قبلا انتخاب کردیم را انتخاب می کنیم و در روز های بعد باید با j شی انتخاب نشده ی زرد ادامه دهیم. بنابراین F&lt;sub&gt;i,j&lt;/sub&gt; در این حالت برابر خواهد بود با:&lt;/p&gt;&lt;div align=&quot;left&quot;&gt;&lt;img vspace=&quot;0&quot; hspace=&quot;0&quot; border=&quot;0&quot; src=&quot;http://pykello.net/blog/images/eq3.GIF&quot; /&gt;&lt;/div&gt;&lt;p dir=&quot;rtl&quot; align=&quot;right&quot;&gt;که با ساده کردن معادله ی بالا برای F&lt;sub&gt;0,j&lt;/sub&gt; بدست می آوریم:&lt;/p&gt;&lt;p align=&quot;left&quot;&gt;&lt;img src=&quot;http://blog.pykello.net/images/eq4.GIF&quot; /&gt;&lt;/p&gt;&lt;p align=&quot;baseline&quot;&gt;3- حالت سوم وقتی i != 0 و j = 0. با استدلالی مشابه حالت قبلی برای این حالت بدست خواهیم آورد:&lt;/p&gt;&lt;p align=&quot;left&quot;&gt;&lt;img src=&quot;http://blog.pykello.net/images/eq5.GIF&quot; /&gt;&lt;/p&gt;&lt;p align=&quot;baseline&quot;&gt;4- حالتی که i != 0 و j != 0: در این صورت با احتمال i/n \* j/s شیء آبی جدید و شیء زرد جدیدی انتخاب خواهیم کرد، با احتمال n-i)/n \* j/s) شیء زرد جدید انتخاب خواهیم کرد ولی شیء آبی جدیدی انتخاب نمی کنیم، ... که در این صورت F&lt;sub&gt;i,j &lt;/sub&gt;برابر خواهد بود با:&lt;/p&gt;&lt;p align=&quot;left&quot;&gt;&lt;img src=&quot;http://pykello.net/blog/images/eq1.GIF&quot; /&gt;&lt;/p&gt;&lt;p align=&quot;baseline&quot;&gt;که با ساده کردن معادله ی بالا خواهیم داشت:&lt;/p&gt;&lt;p align=&quot;left&quot;&gt;&lt;img src=&quot;http://pykello.net/blog/images/eq2.GIF&quot; /&gt;&lt;/p&gt;&lt;p&gt;و کد من برای حل این مساله:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div align=&quot;left&quot; dir=&quot;ltr&quot; width=&quot;100%&quot;&gt;&lt;div class=&quot;cpp&quot; style=&quot;text-align: left&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #339900;&quot;&gt;#include &amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #339900;&quot;&gt;#include &amp;lt;string&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #339900;&quot;&gt;#include &amp;lt;iomanip&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;namespace&lt;/span&gt; std;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;int&lt;/span&gt; n, s;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;double&lt;/span&gt; mat&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;1002&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;1002&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;int&lt;/span&gt; main&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160;&lt;span style=&quot;color: #0000dd;&quot;&gt;cin&lt;/span&gt;&amp;gt;&amp;gt; n &amp;gt;&amp;gt; s;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160;&lt;span style=&quot;color: #0000ff;&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;int&lt;/span&gt; i = &lt;span style=&quot;color: #0000dd;&quot;&gt;0&lt;/span&gt;; i &amp;lt;= n; i++&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;int&lt;/span&gt; j = &lt;span style=&quot;color: #0000dd;&quot;&gt;0&lt;/span&gt;; j &amp;lt;= s; j++&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;i == &lt;span style=&quot;color: #0000dd;&quot;&gt;0&lt;/span&gt;&amp;amp;&amp;amp; j == &lt;span style=&quot;color: #0000dd;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; mat&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;j&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt; = &lt;span style=&quot;color: #0000dd;&quot;&gt;0&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&lt;span style=&quot;color: #0000ff;&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;i == &lt;span style=&quot;color: #0000dd;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; mat&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;j&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt; = mat&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;j&lt;span style=&quot;color: #0000dd;&quot;&gt;-1&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt; + &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;s / j;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&lt;span style=&quot;color: #0000ff;&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;j == &lt;span style=&quot;color: #0000dd;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; mat&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;j&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt; = mat&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #0000dd;&quot;&gt;-1&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;j&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt; + &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;n / i;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&lt;span style=&quot;color: #0000ff;&quot;&gt;else&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; mat&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;j&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt; = &lt;span style=&quot;color: #0000dd;&quot;&gt;1&lt;/span&gt; + &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;mat&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #0000dd;&quot;&gt;-1&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;j&lt;span style=&quot;color: #0000dd;&quot;&gt;-1&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt; \* &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;i \* j&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&amp;#160; +&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; mat&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #0000dd;&quot;&gt;-1&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;j&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt; \* i \* &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;s - j&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; +&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; mat&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;j&lt;span style=&quot;color: #0000dd;&quot;&gt;-1&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt; \* &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;n - i&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; \* j&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; / &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;s \* n&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; mat&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;j&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt; /= &lt;span style=&quot;color: #0000dd;&quot;&gt;1&lt;/span&gt; - &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;n - i&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; \* &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;s - j&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt; / &lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;s \* n&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160;&lt;span style=&quot;color: #0000dd;&quot;&gt;cout&lt;/span&gt;.&lt;span style=&quot;color: #00eeff;&quot;&gt;precision&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;4&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160;&lt;span style=&quot;color: #0000dd;&quot;&gt;cout&lt;/span&gt;.&lt;span style=&quot;color: #00eeff;&quot;&gt;setf&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;ios::&lt;span style=&quot;color: #00eeff;&quot;&gt;fixed&lt;/span&gt; | ios::&lt;span style=&quot;color: #00eeff;&quot;&gt;showpoint&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160;&lt;span style=&quot;color: #0000dd;&quot;&gt;cout&lt;/span&gt;&amp;lt;&amp;lt; mat&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;n&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;s&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;&amp;lt;&amp;lt; endl;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160;&lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;0&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/iomanip&gt;&lt;/string&gt;&lt;/iostream&gt;&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Tue, 15 May 2007 12:58:52 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/95-guid.html</guid>
    
</item>
<item>
    <title>At the data-structure department of Macrohard!</title>
    <link>http://blog.pykello.net/index.php?/archives/96-At-the-data-structure-department-of-Macrohard!.html</link>
            <category>Algorithms</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/96-At-the-data-structure-department-of-Macrohard!.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=96</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=96</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;p align=&quot;right&quot; dir=&quot;rtl&quot;&gt;امروز به بررسی &lt;a href=&quot;http://acm.tju.edu.cn/toj/showp2722.html&quot;&gt;مساله ی K-th Number&lt;/a&gt; که یکی از سوالات &lt;a href=&quot;http://neerc.ifmo.ru/past/2004/northern/standings.html&quot;&gt;ACM/ICPC 2004 NEERC Northern Subregional &lt;/a&gt;و همچنین آخرین مسابقه ی هفتگی ما بوده می پردازم.&lt;/p&gt;&lt;p align=&quot;right&quot; dir=&quot;rtl&quot;&gt;صورت مساله این است که n تا عدد داریم و می خواهیم پرسش هایی از نوع: &amp;quot;k-امین کوچکترین عدد در بین اعداد i-ام تا j-ام چیست؟&amp;quot;&lt;/p&gt;&lt;p align=&quot;right&quot; dir=&quot;rtl&quot;&gt;مثلا اگر n عدد ما عبارت باشند از: {1,5,2,6,3,7,4} ، سومین کوچکترین عدد بین اعداد 2-ام تا 5-ام (یعنی {5,2,6,3} ) برابر 5 می باشد و اولین کوچکترین عدد بین اعداد 4-ام تا 4-ام برابر 6 می باشد.&lt;/p&gt;&lt;p align=&quot;right&quot; dir=&quot;rtl&quot;&gt;بدیهی ترین راه این است که برای هر پرسش اعداد i-ام تا j-ام را مرتب کنیم و k-امین کوچکترین را به عنوان خروجی چاپ کنیم. ولی در این صورت برای پاسخ به هر پرسش زمانی از مرتبه ی (O(n*log n صرف خواهیم کرد که با توجه به اینکه حداکثر 5000 پرسش از این نوع را می خواهیم پاسخ دهیم این راه حل چندان مناسب نمی باشد.&lt;/p&gt;&lt;p align=&quot;right&quot; dir=&quot;rtl&quot;&gt;کلید اصلی حل این سوال این است که می توانیم به پرسش &amp;quot;چند عدد کوچکتر یا مساوی عدد m در بین اعداد a-ام تا b-ام وجود دارد؟&amp;quot; در زمان (O(log&lt;sup&gt;2&lt;/sup&gt; n پاسخ داد. در نتیجه با استفاده از پاسخ این پرسش و جستجوی دودوئی می توان هر پرسش را در زمان (O(log&lt;sup&gt;3&lt;/sup&gt; n پاسخ داد. در زیر شبه-کد مربوط به این قسمت را مشاهده می کنید:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div align=&quot;right&quot; dir=&quot;ltr&quot; width=&quot;100%&quot;&gt;&lt;div class=&quot;python&quot; style=&quot;text-align: left&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# arr[0..n-1] is the sorted version of input array&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# We want to answer: Find k-th smallest number among a-th to b-th numbers&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;Left = &lt;span style=&quot;color: #ff4500;&quot;&gt;0&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;Right = n&lt;span style=&quot;color: #ff4500;&quot;&gt;-1&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;Result = arr&lt;span style=&quot;color: black;&quot;&gt;&amp;#91;&lt;/span&gt;Right&lt;span style=&quot;color: black;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;while&lt;/span&gt; Left &amp;lt;= Right:&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; Mid = &lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;Left + Right&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt; / &lt;span style=&quot;color: #ff4500;&quot;&gt;2&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;if&lt;/span&gt; Count&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;a, b, arr&lt;span style=&quot;color: black;&quot;&gt;&amp;#91;&lt;/span&gt;Mid&lt;span style=&quot;color: black;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&amp;lt; k:&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; Left = Mid + &lt;span style=&quot;color: #ff4500;&quot;&gt;1&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;else&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; Result = arr&lt;span style=&quot;color: black;&quot;&gt;&amp;#91;&lt;/span&gt;Mid&lt;span style=&quot;color: black;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; Right = Mid - &lt;span style=&quot;color: #ff4500;&quot;&gt;1&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;p align=&quot;baseline&quot; style=&quot;direction: rtl;&quot;&gt;حال، به بررسی اینکه چگونه می توان تعداد اعداد کوچکتر یا مساوی یک عدد را بین اعداد a-ام تا b-ام به دست آورد می پردازیم. برای این کار، از درختی دودوئی استفاده می کنیم. مثلا برای مثال بالا این درخت به شکل زیر خواهد بود:&lt;/p&gt;&lt;p align=&quot;center&quot; style=&quot;direction: rtl;&quot;&gt;&lt;img src=&quot;http://blog.pykello.net/images/heap1.gif&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt;ریشه ی این درخت نماینده ی کل اعداد می باشد. فرزند سمت چپ هر گره نماینده ی نیمه ی اول بازه ی مربوط به آن گره و فرزند سمت راست نماینده ی نیمه ی دوم بازه ی مربوط به آن گره می باشد. همچنین برای هر کدام از گره ها اعداد موجود در بازه ی مربوط به آن را به صورت مرتب شده داریم. &lt;/p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt;بدیهی است که می توان هر بازه را معادل با یک سری گره در این درخت در نظر گرفت که تعداد آن گره ها از مرتبه (O(log n می باشد. مثلا برای بازه ی 2 تا 7، گره های 3-2 و 7-4، برای بازه ی 3 تا 5 گره های 3-3 و 5-4 و ...&lt;/p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt;با استفاده از جستجوی دودوئی می توان مشخص کرد که در یک آرایه ی مرتب چند عدد کوچکتر یا مساوی یک عدد خاص وجود دارد. پس برای مشخص کردن تعداد اعداد کوچکتر مساوی یک عدد در بازه ای خاص، گره های مربوط به آن بازه را در درخت پیدا می کنیم و با استفاده از جستجوی دودوئی در آرایه ی مربوط به هر گره تعداد اعداد کوچکتر مساوی در کل بازه را بدست می آوریم. پیچیدگی زمانی این مرحله از مرتبه ی (O(log&lt;sup&gt;2&lt;/sup&gt; n می باشد.&lt;/p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt;حالا توضیح می دهیم که درخت بالا را چگونه می سازیم. برای ساختن درخت بالا از یک آرایه استفاده می کنیم که عنصر با اندیس یک ریشه ی درخت می باشد و فرزندان گره با اندیس i گره هایی با اندیس های 2i و 2i+1 می باشند. در این آرایه، برای هر گره نگه می داریم که آرایه ی مرتب شده مربوط به آن گره در کجا قرار دارد. من در راه حل خودم آرایه های مرتب شده را در یک آرایه ی دیگر ذخیره کرده ام و در آرایه ی اصلی برای هر گره اندیس شروع و طول مکانی که آرایه ی مرتب شده مربوط به آن گره در آن قرار دارد را نگهداری می کنیم.&lt;/p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt;در زیر تابع مربوط به ایجاد این درخت را مشاهده می کنید:&lt;/p&gt;&lt;div align=&quot;left&quot; dir=&quot;ltr&quot; width=&quot;100%&quot;&gt;&lt;div class=&quot;cpp&quot; style=&quot;text-align: left&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;int&lt;/span&gt; arr&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;100000&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;; &lt;span style=&quot;color: #ff0000;&quot;&gt;// Contains the original information&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;int&lt;/span&gt; mem&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;2000000&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;; &lt;span style=&quot;color: #ff0000;&quot;&gt;// Container for node sorted-arrays&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;int&lt;/span&gt; heap&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;250000&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;; &lt;span style=&quot;color: #ff0000;&quot;&gt;// The Actual Tree&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;int&lt;/span&gt; cnt = &lt;span style=&quot;color: #0000dd;&quot;&gt;0&lt;/span&gt;; &lt;span style=&quot;color: #ff0000;&quot;&gt;// Shows how many items has been inserted into Len till now&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;void&lt;/span&gt; Create&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;int&lt;/span&gt; idx, &lt;span style=&quot;color: #0000ff;&quot;&gt;int&lt;/span&gt; Len, &lt;span style=&quot;color: #0000ff;&quot;&gt;int&lt;/span&gt; root&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;Len == &lt;span style=&quot;color: #0000dd;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;int&lt;/span&gt; i = &lt;span style=&quot;color: #0000dd;&quot;&gt;0&lt;/span&gt;; i &amp;lt; Len; i++&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; mem&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;cnt+i&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt; = arr&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;idx+i&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; sort&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;mem+cnt, mem+cnt+Len&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; heap&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;root&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt; = cnt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; heap&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;root&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #0000dd;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#93;&lt;/span&gt; = Len;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; cnt += Len;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;Len == &lt;span style=&quot;color: #0000dd;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;return&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; Create&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;idx, Len / &lt;span style=&quot;color: #0000dd;&quot;&gt;2&lt;/span&gt;, root \* &lt;span style=&quot;color: #0000dd;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; Create&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#40;&lt;/span&gt;idx + Len / &lt;span style=&quot;color: #0000dd;&quot;&gt;2&lt;/span&gt;, Len - Len / &lt;span style=&quot;color: #0000dd;&quot;&gt;2&lt;/span&gt;, root \* &lt;span style=&quot;color: #0000dd;&quot;&gt;2&lt;/span&gt; + &lt;span style=&quot;color: #0000dd;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;p style=&quot;direction: rtl;&quot;&gt;این تابع اندیس شروع و طول قسمتی از آرایه را که می خواهیم به درخت اضافه کنیم و همچنین اندیس گرهی از درخت که این قسمت از آرایه به آن اضافه خواهد شد را می گیرد. برای درست کردن کل درخت، آن را با پارامترهای (Create(0,n,1 صدا می کنیم.&lt;/p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt;و بالاخره، به بررسی روش انتخاب گره های مناسب برای بدست آوردن جواب مساله می پردازیم. فرض کنید می خواهیم گره هایی از زیردرخت با ریشه ی root را انتخاب کنیم که بازه ی مربوط به هر کدام از این گره ها کاملا زیر مجموعه ای از بازه ی مورد نظر باشند و هیچ دو گرهی وجود نداشته باشد که پدرشان یکی باشد و بازه ی مربوط به پدرشان نیز زیر مجموعه ی بازه ی مورد نظر باشد. برای این کار، چند حالت وجود دارد:&lt;/p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt; 1- بازه ی مربوط به root هیچ اشتراکی با بازه ی مورد نظر ندارد. در این صورت هیچ کدام از فرزندان root عضو مجموعه گره های مورد نظر نیست. و نیازی نیست فرزندانش را بررسی کنیم.&lt;/p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt; 2- بازه ی مربوط به root زیرمجموعه ی بازه ی مورد نظر می باشد. در این صورت خود گره root داخل مجموعه گره های مورد نظر می باشد. و نیازی نیست فرزندانش را بررسی کنیم.&lt;/p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt; 3- بازه ی مربوط به root زیر مجموعه ی بازه ی مورد نظر نمی باشد، ولی با بازه ی مورد نظر اشتراک دارد. در این صورت خود گره root داخل مجموعه ی گره های مورد نظر نمی باشد ولی تعدادی از گره های موجود در زیر درخت آن متعلق به این مجموعه می باشد. در این صورت فرزندان root را باید بررسی کنیم.&lt;/p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt; شبه کد تابع مربوط به انتخاب گره ها به شکل زیر خواهد بود:&lt;/p&gt;&lt;div align=&quot;left&quot; width=&quot;100%&quot; dir=&quot;ltr&quot;&gt;&lt;div class=&quot;python&quot; style=&quot;text-align: left&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;function Select&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;root, Left, Right&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;&lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#91;&lt;/span&gt;Left, Right&lt;span style=&quot;color: black;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;is&lt;/span&gt; subset of &lt;span style=&quot;color: black;&quot;&gt;&amp;#91;&lt;/span&gt;a, b&lt;span style=&quot;color: black;&quot;&gt;&amp;#93;&lt;/span&gt;:&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# A new node has been found&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# which is useful for us&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;&lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: #ff7700;font-weight:bold;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;#91;&lt;/span&gt;Left, Right&lt;span style=&quot;color: black;&quot;&gt;&amp;#93;&lt;/span&gt; intersects &lt;span style=&quot;color: black;&quot;&gt;&amp;#91;&lt;/span&gt;a, b&lt;span style=&quot;color: black;&quot;&gt;&amp;#93;&lt;/span&gt;:&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; Length = Right - Left + &lt;span style=&quot;color: #ff4500;&quot;&gt;1&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; Select&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff4500;&quot;&gt;2&lt;/span&gt; \* root, Left + Length / &lt;span style=&quot;color: #ff4500;&quot;&gt;2&lt;/span&gt; - &lt;span style=&quot;color: #ff4500;&quot;&gt;1&lt;/span&gt;, Right&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; Select&lt;span style=&quot;color: black;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff4500;&quot;&gt;2&lt;/span&gt; \* root + &lt;span style=&quot;color: #ff4500;&quot;&gt;1&lt;/span&gt;, Left + Length / &lt;span style=&quot;color: #ff4500;&quot;&gt;2&lt;/span&gt;, Right&lt;span style=&quot;color: black;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;p align=&quot;right&quot; dir=&quot;rtl&quot;&gt;گمان کنم توضیحات بالا برای حل مساله ی مورد نظر کافی باشد. ولی اگر همچنان مشکلی داشتید یا پیشنهادی داشتید comment بگذارید!&lt;/p&gt;&lt;p align=&quot;right&quot; dir=&quot;rtl&quot;&gt;این مساله مثال خوبی بود برای یادگیری کار کردن با درخت های دودوئی برای پاسخ دادن به query های مربوط به یک آرایه. برای تمرین بیشتر توصیه می کنم مسائل ساده تر زیر را نیز حل کنید:&lt;/p&gt;&lt;p align=&quot;right&quot; dir=&quot;rtl&quot;&gt; - &lt;a href=&quot;http://acmicpc-live-archive.uva.es/nuevoportal/data/problem.php?p=2191&quot;&gt;Potentiometers&lt;/a&gt;&lt;/p&gt;&lt;p align=&quot;right&quot; dir=&quot;rtl&quot;&gt; -&lt;a href=&quot;http://acm.timus.ru/problem.aspx?space=1&amp;num=1491&quot;&gt; Unreal Story&lt;/a&gt; : که البته این سوال یک راه حل خیلی ساده تر و تمیزتر هم دارد. ولی به هر حال آن را می توان با این روش نیز حل کرد.&lt;/p&gt;&lt;p align=&quot;right&quot; dir=&quot;rtl&quot;&gt; -&lt;a href=&quot;http://acm.zju.edu.cn/show_problem.php?pid=2671&quot;&gt; Cryptography&lt;/a&gt;&lt;/p&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Tue, 15 May 2007 01:45:29 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/96-guid.html</guid>
    
</item>
<item>
    <title>TopCoder Exchange</title>
    <link>http://blog.pykello.net/index.php?/archives/97-TopCoder-Exchange.html</link>
            <category>Competing</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/97-TopCoder-Exchange.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=97</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=97</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;p&gt;قابل توجه مشترکان &lt;a href=&quot;http://padster.gyronet.org/tc/TCX/index.php&quot;&gt;بازار بورس Topcoder&lt;/a&gt;! قیمت&lt;a href=&quot;http://www.topcoder.com/tc?module=MemberProfile&amp;cr=13400497&quot;&gt; irancoldfusion &lt;/a&gt;در روزهای اخیر به شدت با کاهش روبرو بوده است و زمان خوبی برای خریدن سهام این handle می باشد. کارشناسان پیش بینی می کنند که &lt;a href=&quot;http://padster.gyronet.org/tc/TCX/coderpage.php?cr=13400497&quot;&gt;قیمت سهام irancoldfusion &lt;/a&gt;افزایش چشم گیری در دو هفته ی آینده خواهد داشت.&lt;/p&gt;&lt;p&gt;هفته ی گذشته قیمت &lt;a href=&quot;http://www.topcoder.com/tc?module=MemberProfile&amp;cr=21659750&quot;&gt;Chmel_Tolstiy&lt;/a&gt; افزایش چشم گیری داشت. ولی این handle برای خرید پیشنهاد نمی شود. چون احتمالا دفعات بعد سقوط خواهد کرد.&lt;/p&gt;&lt;p&gt;گزینه های مناسب دیگر که پیشنهاد می کنم: &lt;a href=&quot;http://www.topcoder.com/tc?module=MemberProfile&amp;cr=307060&quot;&gt;AdrianKuegel&lt;/a&gt; و &lt;a href=&quot;http://www.topcoder.com/tc?module=MemberProfile&amp;cr=302501&quot;&gt;PMH&lt;/a&gt; و&lt;a href=&quot;http://www.topcoder.com/tc?module=MemberProfile&amp;cr=10428762&quot;&gt; HiltonLange&lt;/a&gt; و&lt;a href=&quot;http://www.topcoder.com/tc?module=MemberProfile&amp;cr=15511417&quot;&gt; ltdtl&lt;/a&gt;.&lt;/p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt;&lt;br /&gt;------------------------------&lt;/p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt;پی نوشت: برای اطمینان از کم ریسک بودن سرمایه گذاری بر روی irancoldfusion در وضعیت فعلی، به &lt;a href=&quot;http://acm.tju.edu.cn/toj/user_hadi.html&quot;&gt;پروفایل وی در سایت TJU&lt;/a&gt; مراجعه کنید!&lt;/p&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sat, 12 May 2007 06:12:37 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/97-guid.html</guid>
    
</item>
<item>
    <title>Love, Life, and Contests!</title>
    <link>http://blog.pykello.net/index.php?/archives/99-Love,-Life,-and-Contests!.html</link>
            <category>Competing</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/99-Love,-Life,-and-Contests!.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=99</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=99</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;p&gt;سلام دوستان،&lt;/p&gt;&lt;p&gt; چند هفته است با وجود تلاش و تمرین فراوان، بدتر از قبل عمل می کنم، و نتایجم ظاهرا &amp;quot;شکستی&amp;quot; بیش نیست! به چند نمونه توجه کنید:&lt;/p&gt;&lt;p&gt;  - پنج شنبه صبح، در&lt;a href=&quot;http://www.topcoder.com/tc?module=MatchDetails&amp;rd=10672&quot;&gt; مسابقه ی هفتگی Topcoder&lt;/a&gt; با وجود داشتن ایده ی درست برای هر دو سوال 250 امتیازی و 500 امتیازی، هیچ کدام را درست پیاده سازی نکردم و یکی Challenge و دیگری Failed System Test شد! و Rating ام 150 تا پایین آمد!&lt;/p&gt;&lt;p&gt; - پنج شنبه در مسابقه ی هفتگی دانشکده، با وجود داشتن اعتماد به نفس کافی و ایده ی درست برای &lt;a href=&quot;http://acm.tju.edu.cn/toj/showp2722.html&quot;&gt;سوال آخر&lt;/a&gt;، آن را درست پیاده سازی نکردم و چندین جواب Time Limit Exceeded ناراحت کننده دریافت کردم! گمان کنم اگر به راه حلم ایمان کافی می داشتم، حتما پس از گرفتن Time Limit Exceeded آن را درست می کردم و سرافکنده و شکست خورده به خوابگاه برنمی گشتم!&lt;/p&gt;&lt;p&gt; ظاهرا مشکل من عدم دقت است ... ولی گمان کنم مصطفی راست می گوید که &amp;quot;نباید خودم را زیاد ناراحت بکنم، دست خودم نیست که ... &amp;quot; &lt;img src=&quot;http://blog.pykello.net/templates/default/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt;-----------------------------------------------------&lt;/p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt;یک روش عالی و امتحان شده برای حل مسائل سخت: پس از درک سوال به توالت بروید و چند دقیقه ای آن جا فکر کنید. مزیت این مکان نسبت به پشت کامپیوتر این است که به کیبورد دسترسی ندارید و تحریک نمی شوید کد بزنید (&lt;a href=&quot;http://forums.topcoder.com/?module=Message&amp;messageID=802958&quot;&gt;منبع&lt;/a&gt;)&lt;/p&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Fri, 11 May 2007 12:38:42 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/99-guid.html</guid>
    
</item>
<item>
    <title>Sabr, Copyrighted © 2007, Koodakanehaye man!</title>
    <link>http://blog.pykello.net/index.php?/archives/100-Sabr,-Copyrighted-2007,-Koodakanehaye-man!.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/100-Sabr,-Copyrighted-2007,-Koodakanehaye-man!.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=100</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=100</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;p&gt;وقتی لکه ی جوهر روی یک صفحه بیافته اگه دفتر رو ورق بزنی ممکنه چندین صفحه بعد هم جوهری شه...باید صبر کرد تا خوب خشک شه!&lt;/p&gt;&lt;p&gt;توزندگی هم اگه لکه ای روی یک صفحه اش افتاد برای پوشوندنش سریع شروعبه ورق زدن نکنید چون ممکنه صفحه های بعدی زندگی هم لکه دار شه!&lt;/p&gt;&lt;p&gt;صبر کنید...صبر!&lt;/p&gt;&lt;p&gt;فقط کاش..کاش..&lt;/p&gt;&lt;p&gt;کاش لکه اون قدر بزرگ نباشه که صبر هم راه حلش نباشه!&lt;/p&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Fri, 11 May 2007 10:28:38 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/100-guid.html</guid>
    
</item>
<item>
    <title>Welcome back!</title>
    <link>http://blog.pykello.net/index.php?/archives/101-Welcome-back!.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/101-Welcome-back!.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=101</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=101</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;به درود، دنیای زیبای آرزوهای من. فعلا، تا دیدار بعدی.&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Fri, 11 May 2007 10:25:11 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/101-guid.html</guid>
    
</item>
<item>
    <title>Art of life</title>
    <link>http://blog.pykello.net/index.php?/archives/102-Art-of-life.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/102-Art-of-life.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=102</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=102</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;p&gt;از دفترچه خاطرات سریوژا در ششم می 2007:&lt;/p&gt;&lt;p&gt;&amp;quot;به این فکر بودم که در صفحه ی ششم دفترچه ی نقاشی ام چه بکشم ... ولی آن را دست نخورده و سفید رد کردم ...&amp;quot;&lt;/p&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Mon, 07 May 2007 11:08:17 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/102-guid.html</guid>
    
</item>
<item>
    <title>D'amour ou d'amitié</title>
    <link>http://blog.pykello.net/index.php?/archives/103-Damour-ou-damitie.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/103-Damour-ou-damitie.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=103</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=103</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt;در مکان های خیلی خیلی دور، سیاره ای وجود دارد به نام لیمپاندایینین. جمعیت فعلی این سیاره کمتر از 20 نفر و شعاع آن متغیر است.&lt;/p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt;زندگی در این سیاره ی قشنگ و دوست داشتنی زیباست. ولی حیف که اکثر انسان ها از وجود این سیاره خبر ندارند!&lt;/p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt;در این سیاره، هر اظهار نظری از روی محبت انجام می گیرد. &lt;/p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt;در این سیاره، زبان های برنامه نویسی به جای &amp;quot;Goto&amp;quot;، از &amp;quot;Please come with me to&amp;quot; و به جای while X do از while X let&#039;s do استفاده می کنند.&lt;/p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt;دیروز، پتیا، يکی از ساکنان این سیاره تصمیم به ترک سیاره گرفت. &amp;quot;اُ پتیای عزیز، لطفا پیش ما بمان&amp;quot;&lt;/p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt;اکثر گاوهای خال خالی دوست دارند بزغاله های بی خال لاغر را اذیت کنند. ولی، بتسی، گاو خال خالی سیاره ی ما، این طور نیست. او حتی به بزغاله های بی خال لاغر کمک هم می کند. حتی یک بار عاشق یکی از آن ها شده بود!&lt;/p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt;هر بار که یکی از اعضای این سیاره زخمی می شود، همه ی هفتاد و هفت گل موجود در این سیاره پژمرده می شوند.&lt;/p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt;دیروز داشتم در این سیاره قدم می زدم و همراه با بقیه ی ساکنان این سیاره زمزمه می کردم:&lt;/p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt;&amp;quot;مانند جزیره ای هستم در یک اقیانوس بی انتها &lt;/p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt; چیزی برای گفتن ندارم،&lt;/p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt; ولی حاضرم زندگی ام را وقف تو کنم &lt;/p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt; ...&amp;quot;&lt;/p&gt;&lt;p style=&quot;direction: rtl;&quot;&gt; چه کسی می گوید بتسی آواز قناری ها را درک نمی کند؟!!&lt;/p&gt;&lt;p style=&quot;direction: rtl;&quot; /&gt;&lt;p style=&quot;direction: rtl;&quot; /&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Mon, 30 Apr 2007 03:51:27 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/103-guid.html</guid>
    
</item>
<item>
    <title>Virginia Tech Tragedy ...</title>
    <link>http://blog.pykello.net/index.php?/archives/104-Virginia-Tech-Tragedy-....html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/104-Virginia-Tech-Tragedy-....html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=104</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=104</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;p align=&quot;baseline&quot;&gt;&lt;a href=&quot;http://news.bbc.co.uk/1/hi/world/americas/6560685.stm&quot;&gt;تراژدی ويرجينيا تک&lt;/a&gt; که یادتون هست؟&lt;/p&gt;&lt;p align=&quot;center&quot;&gt;&lt;a href=&quot;http://www.mg.co.za/zapiro/imagePage.aspx?YearId=2007|MonthId=4|DayId=19&quot;&gt;&lt;img src=&quot;http://www.mg.co.za/ContentImages/2561/19-apr07x.gif&quot; boarder=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Mon, 23 Apr 2007 04:57:13 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/104-guid.html</guid>
    
</item>
<item>
    <title>The Change</title>
    <link>http://blog.pykello.net/index.php?/archives/105-The-Change.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/105-The-Change.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=105</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=105</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;p&gt;نرم افزار وبلاگم را از &lt;a href=&quot;http://wordpress.org/&quot;&gt;Wordpress&lt;/a&gt; به &lt;a href=&quot;http://www.s9y.org/&quot;&gt;Serendipity&lt;/a&gt; تغییر دادم. علت این کار هم این بود که Wordpress خیلی زور می گفت و بعضی از تغییرات دستی من در کد HTML مربوط به پست ها را تغییر می داد. &lt;/p&gt;&lt;p&gt;علاوه بر آن، Serendipity به طور پیش فرض تقویم شمسی و زبان فارسی را پیش فرض پشتیبانی می کند، دارای ویرایشگر بهتری است، و قابلیت انعطاف آن بیشتر است.&lt;/p&gt;&lt;p&gt;احتمالا دلیل اینکه Wordpress بیشتر به کار می رود این است که: 1. قدیمیتر است 2. استفاده کننده های آن زیاد است و کلی Plug-in برای آن ایجاد شده است. &lt;/p&gt;&lt;p&gt;چون تا یکی-دو هفته دیگر هاستینگ وب سایتم را عوض خواهم کرد، فعلا همه ی مطالب وب لاگ وردپرسم را به اینجا نیاوردم. می توانید مطالب وبلاگ قبلی را در آدرس&lt;a href=&quot;http://blog.pykello.net/wp-index.php&quot;&gt; blog.pykello.net/wp-index.php&lt;/a&gt; مشاهده کنید.&lt;/p&gt;&lt;p&gt;قالب فعلی وبلاگم تغییر یافته ی قالب Idea است. لطفا نظرات و پیشنهادات خودتان را درباره ی این قالب بیان کنید.&lt;/p&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Fri, 20 Apr 2007 07:40:40 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/105-guid.html</guid>
    
</item>
<item>
    <title>Sad News ...</title>
    <link>http://blog.pykello.net/index.php?/archives/106-Sad-News-....html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/106-Sad-News-....html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=106</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=106</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;table width=&quot;100%&quot; border=&quot;0&quot; dir=&quot;ltr&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;img border=&quot;0&quot; src=&quot;http://blog.pykello.net/images/mountain.jpg&quot; /&gt;&lt;/td&gt;&lt;td&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;&lt;font color=&quot;#006633&quot;&gt;از دفترچه خاطرات سریوژا در روز سوم آوریل 2007:&lt;/font&gt;&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;«... وای بر من! کوهی که به قله ی آن صعود کرده بودم از یخ بود و با طلوع آفتاب آب شد! ...»&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Thu, 05 Apr 2007 07:16:00 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/106-guid.html</guid>
    
</item>
<item>
    <title>Einstein's Chauffer</title>
    <link>http://blog.pykello.net/index.php?/archives/107-Einsteins-Chauffer.html</link>
            <category>Joy of Science</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/107-Einsteins-Chauffer.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=107</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=107</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div align=&quot;justify&quot; dir=&quot;rtl&quot;&gt;حکايتی واقعی درباره ی &lt;a href=&quot;http://nobelprize.org/nobel_prizes/physics/laureates/1921/einstein-bio.html&quot;&gt;آلبرت اينشتين&lt;/a&gt; و &lt;a href=&quot;http://en.wikipedia.org/wiki/Theory_of_relativity&quot;&gt;نظريه ی نسبت او&lt;/a&gt; وجود دارد.&lt;p&gt;اينشتين پس از اينکه نظريه ی نسبيت مشهور خود را ارائه داد، به دانشگاه های مختلف ايالات متحده ی آمريکا می رفت و درباره ی نظريه ی خود سخنرانی می کرد. در طی اين سفرها، راننده ی باوفايش، هری، هميشه همراه او بود و در همه ی سخنرانی های او حضور داشت و در رديف عقب می نشست.&lt;br /&gt;&lt;img border=&quot;0&quot; align=&quot;left&quot; style=&quot;padding: 5px&quot; src=&quot;http://blog.pykello.net/images/einstein.jpg&quot; /&gt;&lt;br /&gt;يک روز پس از يکی از سخنرانی ها، وقتی که اينشتين از سالن خارج شده بود و می خواست سوار اتومبيلش بشود، هری به او گفت: &quot;پروفسور اينشتين، من سخنرانی شما را درباره ی نظريه ی نسبيت آن قدر شنيده ام که اگر به من فرصتی داده شود می توانم آن را کامل و بدون نقص ارائه دهم!&quot;&lt;br /&gt;اينشتين جواب داد: &quot;خيلی خوب! من هفته ی بعد به دارتموث می روم. مرا آنجا نمی شناسند. تو آن جا به عنوان اينشتين سخنرانی کن، و من جای تو هری می شوم!&quot;&lt;/p&gt;&lt;p&gt;و اين اتفاق افتاد ... هری سخنرانی را بدون عيب و نقص ارائه داد، بدون اينکه هيچ سخنی را اشتباه بگويد، و اينشتين در رديف عقب به عنوان &quot;راننده&quot; نشست و کمی چرت زد.&lt;/p&gt;&lt;p&gt;هنگامی که سخنرانی تمام شده بود و هری در حال پائين آمدن از جايگاه مخصوص بود، يکی از محققان جلوی او را گرفت و پرسشی درباره ی نظريه ی نسبيت از او پرسيد ... هری به محقق جواب داد: &quot;پاسخ اين پرسش بسيار آسان است! در واقع، اين پرسش آنقدر ساده است که از راننده ام می خواهم تا پاسخ شما را بدهد!&quot;&lt;/p&gt;&lt;p&gt;منبع: &lt;a href=&quot;http://www.short-funny-stories.com/funny-stories/story-81.html&quot;&gt;http://www.short-funny-stories.com/funny-stories/story-81.html&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Thu, 05 Apr 2007 07:12:00 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/107-guid.html</guid>
    
</item>
<item>
    <title>Words of Wisdom</title>
    <link>http://blog.pykello.net/index.php?/archives/108-Words-of-Wisdom.html</link>
            <category>Sacred Words</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/108-Words-of-Wisdom.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=108</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=108</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;&lt;font color=&quot;#006600&quot;&gt;حضرت علی(ع)&lt;/font&gt; می فرمایند: &quot;&lt;font color=&quot;#000099&quot;&gt;هر کس اختیار خود را به دست آرزوهایش سپارد، ناگهان مرگ فرا رسد و او را از پای در آرد.&lt;/font&gt;&quot;&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Wed, 04 Apr 2007 07:06:00 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/108-guid.html</guid>
    
</item>
<item>
    <title>Base -1 + i</title>
    <link>http://blog.pykello.net/index.php?/archives/4-Base-1-+-i.html</link>
            <category>Algorithms</category>
            <category>Mathematics</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/4-Base-1-+-i.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=4</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=4</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;با استفاده از 1- + i به عنوان مبنای دستگاه اعداد، که در آن i برابر با&amp;#160; می باشد، تمام اعداد صحيح مختلط (اعدادی که دارای يک قسمت حقيقی و يک قسمت موهومی می باشند) را می توان به صورت اعداد بدون علامت متشکل از دنباله ای از يک و صفر نمايش داد. و اين [...]&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;با استفاده از 1- + i به عنوان مبنای دستگاه اعداد، که در آن i برابر با&amp;#160;&lt;img src=&quot;http://blog.pykello.net/images/sqrt1.gif&quot; border=&quot;0&quot; alt=&quot;sqrt1&quot; title=&quot;sqrt1&quot; width=&quot;27&quot; height=&quot;20&quot; /&gt; می باشد، تمام &lt;a href=&quot;http://www.clarku.edu/~djoyce/complex/&quot;&gt;اعداد صحيح مختلط&lt;/a&gt; (اعدادی که دارای يک قسمت حقيقی و يک قسمت موهومی می باشند) را می توان به صورت اعداد بدون علامت متشکل از دنباله ای از يک و صفر نمايش داد. و اين نمايش برای هر عددی يکتا می باشد. در ادامه به اثبات اين قضايا نخواهيم پرداخت، بلکه به توضيح مختصری درباره ی اين مبنا و روش بدست آوردن نمايش معادل يک عدد در اين دستگاه اعداد خواهيم پرداخت.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;فرض کنيد می خواهيم نمايش عدد 2 در اين مبنا را بدست بياوريم. اين کار را می توانيم با استفاده از روش معمول تبديل مبنا انجام دهيم: يعنی 2 را بر  1- + i تقسيم کنيم، سپس خارج قسمت آن را بر&amp;#160; 1- + i تقسيم کنيم، و اين کار را تا جايي انجام دهيم که خارج قسمت بدست آمده صفر شود. سپس با پشت سر هم گذاشتن باقيمانده های تقسيم ها نتيجه ی مورد نظر را بدست آوريم. می خواهيم باقيمانده های بدست آمده صفر يا يک باشند. برای اينکه ببينيم اين کار همواره ممکن است، فرض کنيد می خواهيم يک عدد صحيح دلخواه به فرم a + bi را بر  1- + i تقسيم کنيم. می خواهيم q و r را چنان پيدا کنيم که q يک عدد مختلط و r برابر 1 يا 0 باشد و رابطه ی زير برقرار باشد:&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; align=&quot;left&quot;&gt; &lt;span&gt; a + bi = (q&lt;sub&gt;r&lt;/sub&gt; + q&lt;sub&gt;i&lt;/sub&gt;i)(-1 + i) + r &lt;/span&gt; &lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;که در آن q&lt;sub&gt;r&lt;/sub&gt; نشانگر قسمت حقيقی q و q&lt;sub&gt;i&lt;/sub&gt; نشانگر قسمت موهومی q می باشد. با برابر قرار دادن قسمت های موهومی و حقيقی و حل دو معادله ی دو مجهولی روابط زير برای q&lt;sub&gt;r&lt;/sub&gt; و q&lt;sub&gt;i&lt;/sub&gt; بدست می آيد:&lt;br /&gt; &lt;div dir=&quot;ltr&quot; align=&quot;left&quot;&gt; &lt;span&gt; q&lt;sub&gt;r&lt;/sub&gt; = (b - a + r) / 2 &lt;br /&gt; q&lt;sub&gt;i&lt;/sub&gt; = (-a - b + r) / 2 &lt;/span&gt; &lt;/div&gt;&lt;p&gt;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;واضح است که اگر a و b هر دو زوج يا هر دو فرد باشند، با قرار دادن r = 0 ، q يک عدد صحيح مختلط خواهد بود و در صورتی که يکی از a و b فرد و ديگری زوج باشد، می توانيم r را برابر با 1 انتخاب کنيم تا q يک عدد صحيح مختلط شود.&lt;/p&gt;&lt;p&gt;در ادامه از روش بالا برای پيدا کردن نمايش عدد 2 در اين مبنا استفاده می کنيم:&lt;/p&gt;&lt;p&gt;مرحله ی اول: a = 2 و b = 0. در نتيجه q&lt;sub&gt;r&lt;/sub&gt; = -1 و q&lt;sub&gt;i&lt;/sub&gt; = -1 و r = 0.&lt;br /&gt;مرحله ی دوم: a = -1 و b = -1. در نتيجه q&lt;sub&gt;r&lt;/sub&gt; = 0 و q&lt;sub&gt;i&lt;/sub&gt; = 1 و r = 0.&lt;br /&gt;مرحله ی سوم: a = 0 و b = 1. در نتيجه q&lt;sub&gt;r&lt;/sub&gt; = 1 و q&lt;sub&gt;i&lt;/sub&gt; = 0 و r = 1.&lt;br /&gt;مرحله ی چهارم: a = 1 و b = 0. در نتيجه q&lt;sub&gt;r&lt;/sub&gt; = 0 و q&lt;sub&gt;i&lt;/sub&gt; = 0 و r = 1.&lt;br /&gt;مرحله ی پنجم: a = 0 و b = 0. پايان!&lt;br /&gt;اگر باقيمانده ها را پشت سر هم بگذاريم، نتيجه را که برابر 1100 می باشد را بدست می آوريم.&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#009900&quot;&gt;يادداشت:&lt;/font&gt; &lt;font color=&quot;#0033cc&quot;&gt;منبع مطالبی که خوانديد، &lt;a href=&quot;http://www.hackersdelight.org/&quot;&gt;کتاب Hacker&amp;rsquo;s Delight &lt;/a&gt;از &lt;a href=&quot;http://www.aw.com&quot;&gt;انتشارات Addison Wesley&lt;/a&gt; می باشد. علت اينکه اين بخش از کتاب توجه مرا جلب کرد اين بود که اين مطلب مرتبط با سوال &lt;a href=&quot;http://acm.uva.es/p/v111/11180.html&quot;&gt;UVa #11180&lt;/a&gt; می باشد که قبلا با همکاری هم تيمی های عزيز با استفاده از يک راه حل ديگر حل کرده بوديم، ولی روش ما به سادگی اين روش نبود. البته اين نشان گر اين است که اگر روابط مربوط به مساله را با دقت بررسی کنيم، معمولا به راحتی به راه حل های ساده تر و تميز تر می رسيم. &lt;br /&gt;روشی که ما استفاده کرده بوديم، حاصل از بررسی توان های مختلف  1- + i و Pattern هايي بود که در آن وجود داشت.&lt;br /&gt;&lt;/font&gt; &lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Tue, 03 Apr 2007 03:36:20 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/4-guid.html</guid>
    
</item>
<item>
    <title>Histograms - Part 2</title>
    <link>http://blog.pykello.net/index.php?/archives/5-Histograms-Part-2.html</link>
            <category>Algorithms</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/5-Histograms-Part-2.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=5</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=5</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;در &lt;a href=&quot;http://pykello.net/blog/?p=64&quot;&gt;قسمت قبل&lt;/a&gt; به طرح مساله ی زير و يک ايده ی ساده برای حل آن پرداختيم:&lt;br /&gt;&amp;quot;&lt;font color=&quot;#009900&quot;&gt;يک سری مستطيل با عرض واحد و ارتفاع های مختلف داريم که کنار هم قرار گرفته اند. الگوريتمی پيشنهاد دهيد که مساحت بزرگترين مستطيلی که درون اين مستطيل ها جا می شود را پيدا کند.&lt;/font&gt;&amp;quot;&lt;/p&gt;&lt;p&gt;در اين قسمت روش ديگری برای حل اين مساله ارائه می کنيم:&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#009900&quot;&gt;روش دوم (Iterative):&lt;/font&gt; ايده ی اين روش اين است که عريض ترين مستطيلی که هم ارتفاع با يکی از مستطيل ها باشد بازه ای شامل مستطيل هايي با ارتفاع های بزرگتر مساوی اين ارتفاع می باشد.&lt;/p&gt;&lt;p&gt;مستطيل ها را به ترتيب ارتفاع بررسی می کنيم. در هر مرحله يک سری بازه داريم (که در ابتدا خالی است) و در هر مرحله بازه ی مستطيلی که بررسی می شود را به اين بازه های اضافه می کنيم. (منظورم از بازه، بازه ای از محور x ها است که هر مستطيل اشغال می کند. مثلا برای سمت چپ ترين مستطيل، اين بازه [0,1]، برای بعدی [1,2] و &amp;#8230; می باشد.)&lt;br /&gt;پس از اضافه کردن بازه ی مستطيل جاری، ممکن است اين بازه از سمت چپ يا از سمت راست به يک بازه ای که قبلا اضافه شده بچسبد، يا اينکه دو بازه را به هم بچسباند، يا اينکه يک بازه ی جديد ايجاد کند. به هر حال بازه ای که پس از اضافه کردن بازه ی مستطيل جاری شامل بازه ی مستطيل جاری می باشد، عريض ترين بازه ای است که هم ارتفاع با اين مستطيل می تواند باشد. &lt;br /&gt;(البته استثنا در مورد مستطيل های هم ارتفاعی که عريض ترين بازه يشان يکسان است وجود دارد، ولی چون بالاخره چنين بازه ای بعد از اضافه کردن آخرين مستطيل بوجود می آيد، خللی در درستی الگوريتم ما ايجاد نمی کند.)&lt;/p&gt;&lt;p&gt;اميدوارم توانسته باشم ايده ی اين روش را خوب توضيح بدهم.&lt;/p&gt;&lt;p&gt;برای نگهداری بازه ها، از دو آرايه با نام های Left و Right که طول آن ها N (که N تعداد مستطيل ها می باشد) استفاده می کنيم که مقدار اوليه ی عناصر آن ها 1- می باشد. برای يک بازه عضو متناظر با سمت راست ترين عضو آن بازه در آرايه ی Right انديس سمت چپ ترين عضو آن بازه را نگه داری می کند و عضو متناظر با سمت چپ ترين عضو آن بازه در آرايه ی Left انديس سمت راست ترين عضو آن بازه را نگه داری می کند. چون هميشه ما فقط با دو سر بازه کار داريم، مقاديری که در اعضای متناظر با ساير اعضای آرايه نگه داری می شود برای ما اهميتی ندارد.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;در اين صورت، pseudo-code الگوريتم فوق به صورت زير خواهد بود: &lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;div dir=&quot;ltr&quot; align=&quot;left&quot;&gt; &lt;span&gt;Heights&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;]&lt;/span&gt;&lt;br /&gt; Left&lt;span class=&quot;S0&quot;&gt; &amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;[-&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;]&lt;/span&gt;&lt;br /&gt; Right&lt;span class=&quot;S0&quot;&gt; &amp;#160;&amp;#160;&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;[-&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;]&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;span class=&quot;S5&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;FindLargestRectangle&lt;span class=&quot;S10&quot;&gt;():&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;Result&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;0&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;SortedArray&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;#8230;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;N&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;]&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;SortedArray&lt;span class=&quot;S10&quot;&gt;.&lt;/span&gt;SortUsingHeights&lt;span class=&quot;S10&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S1&quot;&gt;# This can be done in O(N*log(N))&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;i&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;..&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;N&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;:&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;CurrentLeft&lt;span class=&quot;S0&quot;&gt; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;SortedArray&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;i&lt;span class=&quot;S10&quot;&gt;]&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;CurrentRight&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;SortedArray&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;i&lt;span class=&quot;S10&quot;&gt;]&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;CurrentRight&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;N&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;and&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;Right&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;CurrentRight&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;!=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;:&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S1&quot;&gt;# if there is another range in the right side of current range,&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S1&quot;&gt;# then extend current range&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;CurrentRight&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;Right&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;CurrentRight&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;]&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;CurrentLeft&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;and&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;Left&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;CurrentLeft&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;!=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;:&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S1&quot;&gt;# if there is another range in the left side of current range,&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S1&quot;&gt;# then extend current range&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;CurrentLeft&lt;span class=&quot;S0&quot;&gt; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;Left&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;CurrentLeft&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;]&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S1&quot;&gt;# Update Result&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;Result&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;Max&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;Result&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;CurrentRight&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;CurrentLeft&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;Heights&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;SortedArray&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;i&lt;span class=&quot;S10&quot;&gt;]])&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S1&quot;&gt;# Update Range Arrays&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;Right&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;CurrentLeft&lt;span class=&quot;S10&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;CurrentRight&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;Left&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;CurrentRight&lt;span class=&quot;S10&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;CurrentLeft&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;end&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;for&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;Result&lt;br /&gt; &lt;span class=&quot;S5&quot;&gt;end&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;function&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;span class=&quot;S5&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;FindLargestRectangle&lt;span class=&quot;S10&quot;&gt;()&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;p&gt;پيچيدگی زمانی اين الگوريتم از مرتبه ی ((O(n*log(n می باشد.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;منتظر قسمت های بعدی باشيد!&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Mon, 02 Apr 2007 04:45:13 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/5-guid.html</guid>
    
</item>
<item>
    <title>Petrozavodsk Wins Bronze Medals!</title>
    <link>http://blog.pykello.net/index.php?/archives/6-Petrozavodsk-Wins-Bronze-Medals!.html</link>
            <category>ACM ICPC</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/6-Petrozavodsk-Wins-Bronze-Medals!.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=6</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=6</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;font color=&quot;#006633&quot;&gt;آخرین خبر از مسابقات ACM ICPC World Finals 2007:&lt;/font&gt; تيم دانشگاه Petrozavodsk که تنها تیمی بود که 6 سوال حل کرده بود و سیزدهم شده بود و مدال نگرفته بود، مدال برنز گرفت! برای دیدن نتیجه ی نهایی و رنگ مدال ها به&lt;a href=&quot;http://icpc.baylor.edu/icpc/Finals/scoreboard/Final/&quot;&gt; رتبه بندی نهایی مسابقات&lt;/a&gt; مراجعه کنید.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;برای دیدن توضیحات Bill Poucher به&lt;a href=&quot;http://forums.topcoder.com/?module=Thread&amp;amp;threadID=568887&amp;amp;start=165&amp;amp;mc=175#779381&quot;&gt; فروم Topcoder &lt;/a&gt;مراجعه کنید.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;واقعا برای اعضای تیم Petrozavodsk خوشحالم! &lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;div style=&quot;text-align: center&quot;&gt;&lt;img src=&quot;images/petrzavodsk.jpg&quot; border=&quot;0&quot; alt=&quot;Petrozavodsk State University&quot; title=&quot;Petrozavodsk State University&quot; width=&quot;448&quot; height=&quot;298&quot; /&gt;&lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Wed, 28 Mar 2007 03:32:15 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/6-guid.html</guid>
    
</item>
<item>
    <title>Histograms - Part 1</title>
    <link>http://blog.pykello.net/index.php?/archives/7-Histograms-Part-1.html</link>
            <category>Algorithms</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/7-Histograms-Part-1.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=7</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=7</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;به مساله ی زير توجه کنيد:&lt;br /&gt;&amp;quot;&lt;font color=&quot;#009933&quot;&gt;يک سری مستطيل با عرض واحد و ارتفاع های مختلف داريم که کنار هم قرار گرفته اند. الگوريتمی پيشنهاد دهديد که مساحت بزرگترين مستطيلی که درون اين مستطيل ها جا می شود را پيدا کند.&lt;/font&gt;&amp;quot;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;(برای امتحان کردن روش های مختلف حل اين مساله، سعی کنيد مساله ی &lt;a href=&quot;http://acm.zju.edu.cn/show_problem.php?pid=1985&quot;&gt;ZJU #1985&lt;/a&gt; را حل کنید.)&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;مثلا در شکل زير، مستطيلی که مساحت آن جواب مساله است با رنگ سبز مشخص شده است.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;div style=&quot;text-align: center&quot;&gt;&lt;img src=&quot;http://blog.pykello.net/images/histogram.png&quot; border=&quot;0&quot; alt=&quot;Histograms&quot; title=&quot;Histograms&quot; width=&quot;514&quot; height=&quot;235&quot; /&gt;&lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;ساده ترين راه حلی که به ذهن می رسد اين است که به ازای هر مستطيل فرض کنيم که مستطيل نتيجه هم ارتفاع با آن است و ببينيم با اين ارتفاع چقدر می توانيم به سمت راست و چپ برويم. ولی پيچيدگی زمانی اين راه حال در بدترين حالت (O(n^2 می باشد که چندان مطلوب نيست.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;چيزی که اين مساله را برای من جالب کرده اين است که اين مساله چندين راه حل جالب و متنوع دارد و بسيار آموزنده و سرگرم کننده می باشد. در اين قسمت و قسمت های بعدی به بررسی برخی از اين الگوريتم ها که بلدم می پردازم.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;font color=&quot;#009933&quot;&gt;روش اول (Divide and Conquer):&lt;/font&gt; دفعه ی اولی که اين مساله را سر امتحان ميان ترم درس طراحی الگوريتم ها ديدم، اين راه حل به ذهنم رسيد:&lt;/p&gt;&lt;p&gt;فرض کنيد می خواهيم جواب را برای مستطيل a-ام تا b-ام پيدا کنيم. اين مستطيل ها را از وسط به دو قسمت تقسيم می کنيم. جواب يا کاملا در قسمت سمت چپ است يا کاملا در قسمت سمت راست يا اينکه قسمتی از آن در سمت راست است و قسمتی از آن در سمت چپ. دو حالت اول را به صورت بازگشتی پيدا می کنيم و برای پيدا کردن بهترين جواب در حالت سوم، به روش زير عمل می کنيم:&lt;/p&gt;&lt;p&gt;در هر مرحله مستطيل را با ارتفاع جاری گسترش می دهيم. حالا، از سمت چپ و راست به دو مستطيل مختلف مماس می شود. ارتفاع جاری را به ماکزيمم ارتفاع اين دو مستطيل تغيير می دهيم و ادامه می دهيم. در هر مرحله مساحت مستطيل جاری را پيدا کرده و جواب را بروز می کنيم. اين کارها را تا زمانی انجام می دهيم که از سمت چپ به مستطيل a-ام و از سمت راست به مستطيل b-ام برسيم.&lt;/p&gt;&lt;p&gt;برای اينکه منظور من را دقيق تر بفهميد، به pseudo-code زير توجه کنيد:&lt;br /&gt; &lt;div dir=&quot;ltr&quot; align=&quot;left&quot;&gt; &lt;span&gt;Heights&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;]&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;span class=&quot;S5&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;FindLargestRectangle&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;a&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;b&lt;span class=&quot;S10&quot;&gt;):&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;a&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;b&lt;span class=&quot;S10&quot;&gt;:&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;Heights&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;a&lt;span class=&quot;S10&quot;&gt;]&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;mid&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;a&lt;span class=&quot;S10&quot;&gt;+&lt;/span&gt;b&lt;span class=&quot;S10&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;2&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;Result&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;max&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;FindLargestRectangle&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;a&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;mid&lt;span class=&quot;S10&quot;&gt;),&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;FindLargestRectangle&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;mid&lt;span class=&quot;S10&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;b&lt;span class=&quot;S10&quot;&gt;))&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;Left&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;mid&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;Right&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;mid&lt;span class=&quot;S10&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;CurrentHeight&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;min&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;Heights&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;Left&lt;span class=&quot;S10&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;Heights&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;Right&lt;span class=&quot;S10&quot;&gt;])&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;while&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;Left&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;!=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;a&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;or&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;Right&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;!=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;b&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;do&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;:&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;Left&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;a&lt;span class=&quot;S10&quot;&gt;:&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S1&quot;&gt;# We cannot go to left anymore&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;Right&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;+=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;CurrentHeight&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;min&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;CurrentHeight&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;Heights&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;Right&lt;span class=&quot;S10&quot;&gt;])&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;elif&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;Right&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;b&lt;span class=&quot;S10&quot;&gt;:&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S1&quot;&gt;# We cannot go to right anymore&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;Left&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;-=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;CurrentHeight&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;min&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;CurrentHeight&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;Heights&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;Left&lt;span class=&quot;S10&quot;&gt;])&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;elif&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;Heights&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;Left&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;CurrentHeight&lt;span class=&quot;S10&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S1&quot;&gt;# We can go to Left with CurrentHeight&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;Left&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;-=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;elif&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;Heights&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;Right&lt;span class=&quot;S10&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;CurrentHeight&lt;span class=&quot;S10&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S1&quot;&gt;# We can go to right with CurrentHeight&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;Right&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;+=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S1&quot;&gt;# Choose the next CurrentHeight&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;CurrentHeight&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;max&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;Heights&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;Left&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;],&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;Heights&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;Right&lt;span class=&quot;S10&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;])&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;Result&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;max&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;Result&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;Right&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;Left&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;CurrentHeight&lt;span class=&quot;S10&quot;&gt;)&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;end&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;Result&lt;/p&gt;&lt;p&gt; &lt;span class=&quot;S5&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;FindLargestRectangle&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;len&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;Heights&lt;span class=&quot;S10&quot;&gt;)-&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;)&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;p&gt;رابطه ی بازگشتی زمان اين الگوريتم:&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;div dir=&quot;ltr&quot; align=&quot;left&quot;&gt;&lt;span&gt;T(n) = 2*T(n/2) + O(n)&lt;/span&gt;&lt;/div&gt;&lt;p&gt;که اگر آن را حل کنيم، بدست می آوريم که پيچيدگی زمانی اين الگوريتم از مرتبه ی ((O(n*log(n می باشد.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;در قسمت های بعدی راه های ديگری برای حل اين مساله را بررسی می کنم.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Wed, 28 Mar 2007 02:06:21 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/7-guid.html</guid>
    
</item>
<item>
    <title>Barometer &amp; the Skyscraper</title>
    <link>http://blog.pykello.net/index.php?/archives/109-Barometer-the-Skyscraper.html</link>
            <category>Joy of Science</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/109-Barometer-the-Skyscraper.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=109</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=109</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;&quot;توضيح دهيد که چگونه می توان با استفاده از يک فشارسنج ارتفاع يک آسمان خراش اندازه گرفت.&quot;&lt;br /&gt;سوال بالا يکی از سوالات امتحان فيزيک در دانشگاه کپنهاگ بود.&lt;p&gt;يکی از دانشجويان چنين پاسخ داد: &quot;انتهای فشارسنج را به ريسمانی بلند می بنديم. سپس فشارسنج را از بالا آسمان خراش طوری آويزان می کنيم که سرش به زمين بخورد. ارتفاع ساختمان مورد نظر برابر با طول طناب به اضافه ی طول فشارسنج خواهد بود.&quot;&lt;/p&gt;&lt;p&gt;پاسخ بالا چنان مسخره به نظر می آمد که مصحح بدون تامل دانشجو را مردود اعلام کرد. ولی دانشجو اصرار داشت که پاسخ او کاملا درست است و درخواست تجديد نظر در نمره ی خود کرد. يکی از اساتيد دانشگاه به عنوان قاضی تعيين شد و قرار شد که تصميم نهايي را او بگيرد.&lt;/p&gt;&lt;p&gt;نظر قاضی اين بود که پاسخ دانشجو در واقع درست است، ولی نشانگر هيچ گونه دانشی نسبت به اصول علم فيزيک نيست. سپس تصميم گرفته شد که دانشجو احضار شود و در طی فرصتی شش دقيقه ای پاسخی شفاهی ارائه دهد که نشانگر حداقل آشنايي او با اصول علم فيزيک باشد.&lt;/p&gt;&lt;p&gt;دانشجو در پنج دقيقه ی اول ساکت نشسته بود و فکر می کرد. قاضی به او يادآوری کرد که زمان تعيين شده در حال اتمام است. دانشجو گفت که چندين روش به ذهنش رسيده است ولی نمی تواند تصميم گيری کند که کدام يک بهترين می باشد.&lt;/p&gt;&lt;p&gt;قاضی به او گفت که عجله کند، و دانشجو پاسخ داد: &quot;روش اول اين است که فشارسنج را از بالای آسمان خراش رها کنيم و مدت زمانی که طول می کشد به زمين برسد را اندازه گيری کنيم. ارتفاع ساختمان را می توان با استفاده از اين مدت زمان و فرمولی که روی کاغذ نوشته ام محاسبه کرد.&quot;&lt;/p&gt;&lt;p&gt;دانشجو بلافاصله افزود: &quot;ولی من اين روش را پيشنهاد نمی کنم، چون ممکن است فشارسنج خراب شود!&quot;&lt;/p&gt;&lt;p&gt;&quot;روش ديگر اين است که اگر خورشيد می تابد، طول فشارسنج را اندازه بگيريم، سپس طول سايه ی فشارسنج را اندازه بگيريم، و آنگاه طول سايه ی ساختمان را اندازه بگيريم. با استفاده از نتايج و يک نسبت هندسی ساده می توان ارتفاع ساختمان را اندازه گيری کرد. رابطه ی اين روش را نيز روی کاغذ نوشته ام.&quot;&lt;/p&gt;&lt;p&gt;&quot;ولی اگر بخواهيم با روشی علمی تر ارتفاع ساختمان را اندازه بگيريم، می توانيم يک ريسمان کوتاه را به انتهای فشارسنج ببنديم و آن را مانند آونگ ابتدا در سطح زمين و سپس در پشت بام أسمان خراش به نوسان درآوريم. سپس ارتفاع ساختمان را با استفاده از تفاضل نيروی گرانش دو سطح بدست آوريم. من رابطه های مربوط به اين روش را که بسيار طولانی و پيچيده می باشند در اين کاغذ نوشته ام.&quot;&lt;/p&gt;&lt;p&gt;&quot;آها! يک روش ديگر که چندان هم بد نيست: اگر آسمان خراش پله ی اضطراری داشته باشد، می توانيم با استفاده از فشارسنج سطح بيرونی آن را علامت گذاری کرده و بالا برويم و سپس با استفاده از تعداد نشان ها و طول فشارسنج ارتفاع ساختمان را بدست بياوريم.&quot;&lt;/p&gt;&lt;p&gt;&quot;ولی اگر شما خيلی سرسختانه دوست داشته باشيد که از خواص مخصوص فشارسنج برای اندازه گيری ارتفاع استفاده کنيد، می توانيد فشار هوا در بالای ساختمان اندازه گيری کند، و سپس فشار هوا در سطح زمين را اندازه گيری کنيد، سپس با استفاده از تفاضل فشارهای حاصل ارتفاع ساختمان را بدست بياوريد.&quot;&lt;/p&gt;&lt;p&gt;&quot;ولی بدون شک بهترين راه اين می باشد که در خانه ی سرايدار آسمان خراش را بزنيم و به او بگوييم که اگر دوست دارد صاحب اين فشارسنج خوشگل بشود، می تواند ارتفاع آسمان خراش را به ما بگويد تا فشارسنج را به او بدهيم!&quot;&lt;/p&gt;&lt;p&gt;دانشجويي که داستان او را خوانديد، &lt;a href=&quot;http://nobelprize.org/nobel_prizes/physics/laureates/1922/bohr-bio.html&quot;&gt;نيلس بوهر&lt;/a&gt;، تنها دانمارکی که موفق به دریافت جايزه ی نوبل شده است، بود.&lt;/p&gt;&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;منبع: &lt;a href=&quot;http://www.mentors.ca/bohr.html&quot;&gt;http://www.mentors.ca/bohr.html&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Tue, 27 Mar 2007 07:04:00 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/109-guid.html</guid>
    
</item>
<item>
    <title>Random Thoughts</title>
    <link>http://blog.pykello.net/index.php?/archives/9-Random-Thoughts.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/9-Random-Thoughts.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=9</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=9</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;سلام دوستان!&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;سال 1385 با خوشی آغاز شد و با خوشی پایان یافت. امیدوارم اتفاقی مشابه در مورد سال 1386 بیافتد.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;گفته بودم در تعطیلات سال نو می خواهم یک ویکی الگوریتمی ایجاد کنم. یادم نرفته، ولی:&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;1. از فضای وب هاستینگم چیز زیادی نمونده و جا برای نصب سیستم ویکی ندارم. &lt;img src=&quot;http://pykello.net/blog/wp-content/plugins/Wysi-Wordpress/plugins/emotions/images/smiley-frown.gif&quot; border=&quot;0&quot; alt=&quot;Frown&quot; title=&quot;Frown&quot; /&gt; &lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;2. می خواهم هاستینگم را عوض کنم، چون این یکی انتظارات من را بر آورده نکرد! &lt;img src=&quot;http://pykello.net/blog/wp-content/plugins/Wysi-Wordpress/plugins/emotions/images/smiley-undecided.gif&quot; border=&quot;0&quot; alt=&quot;Undecided&quot; title=&quot;Undecided&quot; /&gt;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;ولی، در طی این مدت سعی می کنم چند مساله ی جالب را در وبلاگم توضیح بدهم، باشد که خشنود شوید! منتظر باشید!&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;یا ایها الکسانی که این وبلاگ را می خوانید، شما را قسم می دهم به کسی که می پرستید:&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&amp;#160; - اگر به نظرتان مطلبی را به اندازه ی کافی توضیح نداده ام و مبهم است یا توضیح بیشتری نیاز دارید، comment بگذارید و بگویید!&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&amp;#160; - بگویید چه جور مطالبی دوست دارید بنویسم. باور کنید مطالبی را که می نویسم از روی علاقه و لذت می نویسم، و اگر احساس کنم مطالبم برای کسی مفید واقع شده این احساس لذت صد چندان خواهد شد!&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;باشد که رستگار شوم!&amp;#160; &lt;img src=&quot;http://pykello.net/blog/wp-content/plugins/Wysi-Wordpress/plugins/emotions/images/smiley-innocent.gif&quot; border=&quot;0&quot; alt=&quot;Innocent&quot; title=&quot;Innocent&quot; /&gt;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;
&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Tue, 27 Mar 2007 05:34:35 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/9-guid.html</guid>
    
</item>
<item>
    <title>Counting Connected Subgraphs - Part 3</title>
    <link>http://blog.pykello.net/index.php?/archives/10-Counting-Connected-Subgraphs-Part-3.html</link>
            <category>Algorithms</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/10-Counting-Connected-Subgraphs-Part-3.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=10</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=10</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;برای مشاهده ی قسمت های پيشين این مطلب به لينکهای زير مراجعه کنيد:&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;a href=&quot;http://pykello.net/blog/?p=48&quot;&gt;قسمت اول&lt;/a&gt;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;a href=&quot;http://pykello.net/blog/?p=60&quot;&gt;قسمت دوم&amp;#160;&lt;/a&gt;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;در اين قسمت، ابتدا روش بدست آوردن زيرمجموعه های يک مجموعه که در قسمت قبلی استفاده کرديم را توضيح می دهم و سپس به بررسی پيچيدگی الگوريتم ارائه شده می پردازم.&lt;/p&gt;&lt;p&gt;همان طور که گفتيم، هر مجموعه را با يک عدد 15 بيتی نمايش می دهيم که اگر بيت i-ام يک باشد يعنی چيز i-ام عضو مجموعه ی مورد نظر است، و گرنه نيست. حال می خواهيم روشی را ارائه کنيم که زير مجموعه بعدی يک مجموعه را که از لحاظ ارزش عددی کمتر از زير مجموعه ی جاری است را پيدا کند.&lt;br /&gt;از اين به بعد فقط با نمايش دودوئی اعداد سر و کار داريم.&lt;br /&gt;کم کردن يک از يک عدد را در نظر بگيريد. چه اتفاقی می افتد؟ سمت راست ترين 1 تبديل به صفر می شود و تمام صفر های سمت راست آن به 1 تبديل می شوند.&lt;br /&gt;مثلا 100 تبديل به 11 می شود و 100110 تبديل به 100101 می شود.&lt;br /&gt;حال هنگامی که می خواهيم زير مجموعه ی بعدی يک مجموعه (P) را پيدا کنيم، بايد اتفاقی مشابه بيافتد: سمت راست ترين 1 تبديل به صفر شود و تمام صفر های سمت راست آن که عضو مجموعه ی P هستند تبديل به يک شوند. اگر زير مجموعه ی جاری را منهای يک کنيم، سمت راست ترين 1 تبديل به صفر می شود و تمام صفر های سمت راست آن تبديل به يک می شوند.&amp;#160; چون ما می خواهيم فقط بيت های عضو مجموعه ی P تبديل به يک شوند، حاصل تفريق را با مجموعه ی P &amp;quot;و&amp;quot; منطقی می کنيم. در نتيجه زير مجموعه ی از لحاظ عددی کوچکتر به دست می آيد.&lt;/p&gt;&lt;p&gt;حال به بررسی پيچيدگی زمانی الگوريتم می پردازيم. &lt;/p&gt;&lt;p&gt;پيچيدگی زمانی تابع CalculateEdges همان طور که آشکار است از مرتبه ی (O(n^2*2^n می باشد.برای بررسی تابع CountConnectedSubgraphs، جفت V و Y را در نظر بگيريد. پيچيدگی زمانی اين تابع متناظر با تعداد حالت های اين جفت می باشد. اگر بيت های متناظر V و Y را در نظر بگيريم، می فهميم که حالت هايی که ممکن است پيش بيايد عبارت است از: (1 و 0) &amp;ndash; (1 و 1) &amp;ndash; (0 و 0) . حالت (0 و 1) ممکن نيست، چون عضوی که عضو مجموعه ای نيست نمی تواند عضو زيرمجموعه ی آن بشود. پس، تعداد حالت ها &lt;font color=&quot;#cc3300&quot;&gt;3 به توان n &lt;/font&gt;خواهد بود و پيچيدگی زمانی اين تابع از مرتبه ی (O(3^n.&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Tue, 27 Mar 2007 05:20:25 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/10-guid.html</guid>
    
</item>
<item>
    <title>Counting Connected Subgraphs - Part 2</title>
    <link>http://blog.pykello.net/index.php?/archives/11-Counting-Connected-Subgraphs-Part-2.html</link>
            <category>Algorithms</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/11-Counting-Connected-Subgraphs-Part-2.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=11</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=11</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt; سلام،&lt;br /&gt;در&lt;a href=&quot;http://pykello.net/blog/?p=48&quot;&gt; قسمت قبل&lt;/a&gt;، به ايده ی اوليه ی مساله ی زير پرداختيم:&lt;br /&gt;&lt;font color=&quot;#006633&quot;&gt;يک گراف ساده ی بدون جهت با حداکثر 15 راس داريم. الگوريتمی پيشنهاد دهيد که تعداد زيرگراف های همبند آن را پيدا کند.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;در اين قسمت می خواهيم کمی به جزئيات پياده سازی راه حل ارائه شده برای اين مساله بپردازيم. فرض کنيد تعداد راس های گراف N باشد.&lt;/p&gt;&lt;p&gt;ابتدا يک pseudo-code برای اين راه حل ارائه می دهيم:&lt;br /&gt; &lt;div dir=&quot;ltr&quot; align=&quot;left&quot;&gt; &lt;span&gt;function CountConnectedSubgraphs(V, E):&lt;br /&gt; &amp;#160; &amp;#160;Result = 2 ^ |E|&lt;br /&gt; &amp;#160; &amp;#160;for each subset V&amp;#39; of V such that (V&amp;#39; contains V[0]) and (V&amp;#39; != V) do:&lt;br /&gt; &amp;#160; &amp;#160;&amp;#160; &amp;#160;Result -= CountConnectedSubgraphs(V&amp;#39;, E&amp;#39;) * 2 ^ E(V-V&amp;#39;)&lt;br /&gt; &amp;#160; &amp;#160;return Result&lt;/span&gt; &lt;/div&gt;&lt;p&gt;برای اين مساله، فرض می کنيم که گراف را در يک ماتريس مجاورت ذخيره می کنيم:&lt;br /&gt; &lt;div dir=&quot;ltr&quot; align=&quot;left&quot;&gt; &lt;span&gt;&lt;span class=&quot;S5&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;graph&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;][&lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;];&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;p&gt;برای پياده سازی pseudo-code فوق، نياز داريم که:&lt;br /&gt;&amp;#160;1. ساختمان داده ای برای نمايش زير مجموعه ای از راس های گراف داشته باشيم. هر زير مجموعه را با استفاده از يک عدد 15 بيتی که يک يا صفر بودن بيت i-ام آن نشانگر اين است که آيا راس i-ام عضوی از زير مجموعه ی مورد نظر است يا نه.&lt;br /&gt;&amp;#160;2. تعداد يال های هر کدام از زيرگراف ها (که با يک زير مجموعه از راس ها مشخص می شوند) را داشته باشيم. اين کار را با يک حلقه ی 2 به توان N تايي انجام می دهيم. هر عضو از آرايه ی نتيجه نشانگر تعداد يال های زير گراف مربوطه می باشد:&lt;br /&gt; &lt;div dir=&quot;ltr&quot; align=&quot;left&quot;&gt; &lt;span&gt;&lt;span class=&quot;S5&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;E&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;];&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;span class=&quot;S5&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;i&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;i&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;N&lt;span class=&quot;S10&quot;&gt;);&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;i&lt;span class=&quot;S10&quot;&gt;++)&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S10&quot;&gt;{&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;E&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;i&lt;span class=&quot;S10&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;;&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;j&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;j&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;N&lt;span class=&quot;S10&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;j&lt;span class=&quot;S10&quot;&gt;++)&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;k&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;k&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;N&lt;span class=&quot;S10&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;k&lt;span class=&quot;S10&quot;&gt;++)&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;// Check if j-th and k-th vertices are member of i&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;(((&lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;j&lt;span class=&quot;S10&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;i&lt;span class=&quot;S10&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;((&lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;k&lt;span class=&quot;S10&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;i&lt;span class=&quot;S10&quot;&gt;))&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;// Check if there is an edge from j to k&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;graph&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;j&lt;span class=&quot;S10&quot;&gt;][&lt;/span&gt;k&lt;span class=&quot;S10&quot;&gt;])&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;E&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;i&lt;span class=&quot;S10&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;+=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;;&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S10&quot;&gt;}&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;p&gt;&amp;#160;3. روشی نياز داريم که توسط آن بتوانيم زيرمجموعه های يک مجموعه را بدست بياوريم. در واقع، چون هر مجموعه را با يک عدد 15 بيتی نمايش می دهيم، می خواهيم اعدادی را به دست بياوريم که يک های آنها زير مجموعه ای از عدد متناظر با مجموعه ی مورد نظر باشند. فرض کنيد مجموعه ی مورد نظر را با X نمايش دهيم. می خواهيم اعداد Y ای را بدست بياوريم که X &amp;amp; Y برابر با Y باشد. (&amp;amp; = bitwise and). ساده ترين روش برای انجام دادن اين کار:&lt;br /&gt; &lt;div dir=&quot;ltr&quot; align=&quot;left&quot;&gt; &lt;span&gt;&lt;span class=&quot;S5&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;i&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;i&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;N&lt;span class=&quot;S10&quot;&gt;);&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;i&lt;span class=&quot;S10&quot;&gt;++)&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;((&lt;/span&gt;X&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;i&lt;span class=&quot;S10&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;i&lt;span class=&quot;S10&quot;&gt;)&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;{&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;// do calculations here&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;}&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;p&gt;ولی روش بهتری برای انجام دادن عمل بالا وجود دارد: &lt;br /&gt; &lt;div dir=&quot;ltr&quot; align=&quot;left&quot;&gt; &lt;span&gt;&lt;span class=&quot;S5&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;Y&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;X&lt;span class=&quot;S10&quot;&gt;;&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S5&quot;&gt;do&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;{&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;// do calculations here&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;#8230;&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;// Move to next subset&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;Y&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;Y&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;X&lt;span class=&quot;S10&quot;&gt;;&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S10&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;while&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;Y&lt;span class=&quot;S10&quot;&gt;);&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;p&gt;در قسمت بعدی به طرز کار اين روش و چند نکته ی جالب ديگر خواهم پرداخت.&lt;/p&gt;&lt;p&gt;4. اگر راه حل بالا را به صورت بازگشتی ساده بنويسيم، چون حالات تکراری زيادی بوجود می آيد، زمان اجرای برنامه خيلی زياد خواهد بود. برای جلوگيری از محاسبه ی دوباره ی حالات تکراری، از يک آرايه استفاده می کنيم که مقدار اوليه ی همه ی عناصر آن 1- می باشد و پس از محاسبه ی جواب برای هر زير گراف، نتيجه را در آن قرار می دهيم تا در دفعات بعدی از آن استفاده کنيم:&lt;br /&gt; &lt;div dir=&quot;ltr&quot; align=&quot;left&quot;&gt; &lt;span&gt;&lt;span class=&quot;S5&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;arr&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;];&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;p&gt;و در نهايت، از کنار هم قرار دادن قطعات بالا، سورس کد زير به دست می آيد:&lt;br /&gt; &lt;div dir=&quot;ltr&quot; align=&quot;left&quot;&gt; &lt;span&gt;&lt;br /&gt; &lt;span class=&quot;S5&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;graph&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;];&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S5&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;arr&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;];&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S5&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;N&lt;span class=&quot;S10&quot;&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;span class=&quot;S5&quot;&gt;void&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;CalculateEdges&lt;span class=&quot;S10&quot;&gt;()&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S10&quot;&gt;{&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;i&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;i&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;N&lt;span class=&quot;S10&quot;&gt;);&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;i&lt;span class=&quot;S10&quot;&gt;++)&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;{&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;E&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;i&lt;span class=&quot;S10&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;;&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;j&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;j&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;N&lt;span class=&quot;S10&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;j&lt;span class=&quot;S10&quot;&gt;++)&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;k&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;k&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;N&lt;span class=&quot;S10&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;k&lt;span class=&quot;S10&quot;&gt;++)&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;// Check if j-th and k-th vertices are member of i&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;(((&lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;j&lt;span class=&quot;S10&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;i&lt;span class=&quot;S10&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;((&lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;k&lt;span class=&quot;S10&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;i&lt;span class=&quot;S10&quot;&gt;))&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;// Check if there is an edge from j to k&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;graph&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;j&lt;span class=&quot;S10&quot;&gt;][&lt;/span&gt;k&lt;span class=&quot;S10&quot;&gt;])&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;E&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;i&lt;span class=&quot;S10&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;+=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;;&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;}&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S10&quot;&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;span class=&quot;S5&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;CountConnectedSubgraphs&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;V&lt;span class=&quot;S10&quot;&gt;)&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S10&quot;&gt;{&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;arr&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;V&lt;span class=&quot;S10&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;!=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;)&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;arr&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;V&lt;span class=&quot;S10&quot;&gt;];&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;FirstBit&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;;&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;while&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;((&lt;/span&gt;FirstBit&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;V&lt;span class=&quot;S10&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;)&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;FirstBit&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;*=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;;&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;Result&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;E&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;V&lt;span class=&quot;S10&quot;&gt;]);&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;Y&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;V&lt;span class=&quot;S10&quot;&gt;;&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;do&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;{&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;((&lt;/span&gt;Y&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;FirstBit&lt;span class=&quot;S10&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;Y&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;!=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;V&lt;span class=&quot;S10&quot;&gt;)&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;{&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;X&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;~&lt;/span&gt;Y&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;V&lt;span class=&quot;S10&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;// X = V - Y&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;Result&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;-=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;CountConnectedSubgraphs&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;Y&lt;span class=&quot;S10&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;E&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;X&lt;span class=&quot;S10&quot;&gt;]);&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;}&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;Y&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;Y&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;V&lt;span class=&quot;S10&quot;&gt;;&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;while&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;Y&lt;span class=&quot;S10&quot;&gt;);&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;arr&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;V&lt;span class=&quot;S10&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;Result&lt;span class=&quot;S10&quot;&gt;;&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S10&quot;&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;span class=&quot;S5&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;main&lt;span class=&quot;S10&quot;&gt;()&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S10&quot;&gt;{&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S2&quot;&gt;// Read N and Graph here&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;#8230;&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;memset&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;arr&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;sizeof&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;arr&lt;span class=&quot;S10&quot;&gt;);&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;CalculateEdges&lt;span class=&quot;S10&quot;&gt;();&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;cout&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;CountConnectedSubgraphs&lt;span class=&quot;S10&quot;&gt;((&lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;N&lt;span class=&quot;S10&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;endl&lt;span class=&quot;S10&quot;&gt;;&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;;&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S10&quot;&gt;}&lt;/span&gt;&lt;br /&gt; &lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sun, 25 Mar 2007 05:36:46 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/11-guid.html</guid>
    
</item>
<item>
    <title>ِDilemma!</title>
    <link>http://blog.pykello.net/index.php?/archives/15-Dilemma!.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/15-Dilemma!.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=15</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=15</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;a href=&quot;http://www.topcoder.com/tc?module=MemberProfile&amp;amp;cr=278460&quot;&gt;آینده نگر&lt;/a&gt; باشیم. [&lt;a href=&quot;http://forums.topcoder.com/?module=Thread&amp;amp;threadID=569157&amp;amp;start=0&quot;&gt;+&lt;/a&gt;] &lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sun, 18 Mar 2007 00:44:13 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/15-guid.html</guid>
    
</item>
<item>
    <title>At Tokyo for ICPC Finals - Part 6</title>
    <link>http://blog.pykello.net/index.php?/archives/111-At-Tokyo-for-ICPC-Finals-Part-6.html</link>
            <category>ACM ICPC</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/111-At-Tokyo-for-ICPC-Finals-Part-6.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=111</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=111</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;مراسم Celebration:&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt; &lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;مراسم طبل زنی ژاپنی جالب بود:&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt; &lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;images/tokyo19.jpg&quot; /&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt; &lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;یکی بود که خفن جیب و ساعت و … می زد. حتی پیراهن یکی را به صورت خفن و یکباره ای در آورد. خیلی خفن بود:&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt; &lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;images/tokyo20.jpg&quot; /&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt; &lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;بچه های تیم Shanghai JiaoTong با حال بودند:&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt; &lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;images/tokyo18.jpg&quot; /&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sat, 17 Mar 2007 04:24:00 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/111-guid.html</guid>
    
</item>
<item>
    <title>At Tokyo for ICPC Finals - Part 5</title>
    <link>http://blog.pykello.net/index.php?/archives/112-At-Tokyo-for-ICPC-Finals-Part-5.html</link>
            <category>ACM ICPC</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/112-At-Tokyo-for-ICPC-Finals-Part-5.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=112</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=112</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;دیروز رفتیم &lt;a href=&quot;http://www.tokyodisneyresort.co.jp/tdl/index_e.html&quot;&gt;Tokyo Disney Land&lt;/a&gt;:&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt; &lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;images/tokyo14.jpg&quot; /&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt; &lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;چند تا از شخصیت های کارتونی را دیدیم:&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt; &lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;images/tokyo17.jpg&quot; /&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt; &lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;images/tokyo15.jpg&quot; /&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt; &lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;بچه های ژاپنی بامزه اند:&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt; &lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;images/tokyo16.jpg&quot; /&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sat, 17 Mar 2007 04:23:00 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/112-guid.html</guid>
    
</item>
<item>
    <title>At Tokyo for ICPC Finals - Part 4</title>
    <link>http://blog.pykello.net/index.php?/archives/113-At-Tokyo-for-ICPC-Finals-Part-4.html</link>
            <category>ACM ICPC</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/113-At-Tokyo-for-ICPC-Finals-Part-4.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=113</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=113</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;بدعمل کردیم زیرا: اگر سر سوال G بد عمل نمی کردیم و یک ساعته تمامش میکردیم، می توانستیم حداقل یکی از دو سوال F که سوال متوسط به پائینی بود وسوال D که نیاز به دانستن&lt;a href=&quot;http://en.wikipedia.org/wiki/Pick%27s_theorem&quot;&gt; قضیه ی Pick &lt;/a&gt;داشت و ما دانش کافی برای حل آن را داشتیم را حل کنیم و وضع مان از این خیلی بهتر باشد.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;می توان راضی بود زیرا: در 20 دقیقه ی آخر دو سوال گرفتیم و از وضعیت افتضاح به وضعیت متوسط رسیدیم. و چون یک سال دیگر وقت داریم.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;در قدم اول برای سال بعد، فعلا تصمیم دارمدر تعطیلات سال نو topcode rating ام را (در سه مسابقه) به بالای 2200(فعلا 2040 هستم) برسانم.&amp;#160;&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sat, 17 Mar 2007 04:21:00 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/113-guid.html</guid>
    
</item>
<item>
    <title>At Tokyo for ICPC Finals - Part 3</title>
    <link>http://blog.pykello.net/index.php?/archives/114-At-Tokyo-for-ICPC-Finals-Part-3.html</link>
            <category>ACM ICPC</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/114-At-Tokyo-for-ICPC-Finals-Part-3.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=114</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=114</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;font color=&quot;#0033cc&quot;&gt;و بالاخره روز مسابقه:&lt;/font&gt;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;قبل از مسابقه همه خندان بودیم. (من عینکیه هستم): &lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;images/tokyo10.jpg&quot; border=&quot;0&quot;&gt;&lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;صبح زود بیدار شدیم، صبحانه خوردیم، و آمادهشدیم که به محل مسابقه وارد شویم. رضا badge اش را درست نبسته بود، برایهمین Bill Poucher مجبورش کرد چند حرکت شنا انجام بدهد و کلی خندیدیم. &lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;و بالاخره مسابقه آغاز شد:&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;images/tokyo13.jpg&quot; border=&quot;0&quot;&gt;&lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;font color=&quot;#009966&quot;&gt;دقیقه ی 1:&lt;/font&gt;حسین سوال A، من سوال B، و رضا سوال C را خواند. سوال A آسان بود، ولی منهنوز سوال B را درست نفهمیده بودم. حسین سوال A را به ما توضیح داد وتصمیم گرفتیم که به عنوان اولین سوال، سوال A را بنویسیم.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;font color=&quot;#009966&quot;&gt;دقیقه ی 20: &lt;/font&gt;تیم های زیادی سوال B را گرفته اند، رضا سوال B را دوباره خوانده و برای من توضیح داده. هنوز هیچ ایده ای نداریم.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;font color=&quot;#009999&quot;&gt;دقیقه ی 50:&lt;/font&gt;حسین کد سوال A را تمام کرد و پس از کمی تست Submit می کنیم. هنوز هیچایده ای برای سوال B نداریم. سوال B را برای حسین نیز توضیح می دهیم.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;font color=&quot;#009999&quot;&gt;دقیقه ی 51: &lt;/font&gt;جواب Submit مون Wrong Answer شد. کمی کد را می خوانیم و به مشکل پی می بریم.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;font color=&quot;#009999&quot;&gt;دقیقه ی 67:&lt;/font&gt; سوال A را دوباره Submit می کنیم. این دفعه جواب Submit مون Yes شد.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;font color=&quot;#009999&quot;&gt;دقیقه ی 70: &lt;/font&gt;هر سه روی B فکر می کنیم. ایده های زیادی مطرح می شود ولی چون مطمئن نیستیم بیشتر فکر می کنیم.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;font color=&quot;#009999&quot;&gt;دقیقه ی 90:&lt;/font&gt; بالاخره بر سر ایده ی سوال B توافق می کنیم. شروع می کنم به نوشتن کدش.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;font color=&quot;#009999&quot;&gt;دقیقه ی 100:&lt;/font&gt;سوال B را Submit می کنیم و جوابش Yes می شود. حسین سوال G را می خواند وتوضیح می دهد. به نظر آسان می آید. بر سر پیاده سازی اش توافق می کنیم وشروع می کنم به پیاده سازی جواب.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;font color=&quot;#009999&quot;&gt;دقیقه ی 130:&lt;/font&gt; اولین Wrong Answer برای سوال G را می گیریم. کد را می خوانیم و دو باگ در می آوریم، درستش می کنیم و دوباره Submit می کنیم.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;font color=&quot;#009999&quot;&gt;دقیقه ی 145: &lt;/font&gt;دومینWrong Answer را می گیریم. کد را n بار می خوانیم. هیچ مشکلی پیدا نمیکنیم … صورت سوال را چند بار می خوانیم …&amp;#160; یک قسمتش برای مان مبهماست. با یک فرض دیگر یک کد دیگر می نویسیم و Submit می کنیم.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;font color=&quot;#009999&quot;&gt;دقیقه ی 160:&lt;/font&gt;سومین Wrong Answer را می گیریم. رضا صورت سوال را دوباره می خواند و سریک جمله گیر می دهد. بالاخره نظر رضا را قبول می کنیم و آن برداشت یک کددیگر می زنیم.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;font color=&quot;#009999&quot;&gt;دقیقه ی 200:&lt;/font&gt; این دفعه Runtime Error می گیریم. نمی دانیم چه کار کنیم.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;font color=&quot;#009999&quot;&gt;دقیقه ی 243: &lt;/font&gt;من شروع می کنم به زدن کد سوال C. بابک به ساز بسیار نگران به ما نگاه می کند.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;font color=&quot;#009999&quot;&gt;دقیقه ی 260:&lt;/font&gt; حسین صورت سوال را دوباره می خواند، یک نکته ی دیگر پیدا می کند … شروع می کند و درست کردن کد.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;font color=&quot;#009999&quot;&gt;دقیقه ی 280: &lt;/font&gt;بالاخره سوال G را Submit می کنیم و Yes می گیریم. من بقیه ی کد C را می زنم.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;font color=&quot;#009999&quot;&gt;دقیقه ی 290:&lt;/font&gt; سوال C را Submit می کنیم و Wrong Answer می گیریم. رضا یک حالت خاص را توضیح می دهد و من شروع می کنم به درست کردن کد.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;font color=&quot;#009999&quot;&gt;دقیقه ی 296:&lt;/font&gt; سوال C را Submit می کنیم و Yes می گیریم. بابک به ساز از حالت نگرانی شدید به وضع عادی بر می گردد. 4 دقیقه ی آخر را حرف می زنیم.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;font color=&quot;#009999&quot;&gt;دقیقه ی 300:&lt;/font&gt; مسابقه تمام شد. &lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;images/tokyo11.jpg&quot; border=&quot;0&quot;&gt;&lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;و بالاخره در Awards Ceremony معلوم می شود که تیم دانشگاه Warsaw قهرمان امسال شده.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;images/tokyo12.jpg&quot; border=&quot;0&quot;&gt;&lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Fri, 16 Mar 2007 04:16:00 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/114-guid.html</guid>
    
</item>
<item>
    <title>At Tokyo for ICPC Finals - Part 2</title>
    <link>http://blog.pykello.net/index.php?/archives/115-At-Tokyo-for-ICPC-Finals-Part-2.html</link>
            <category>ACM ICPC</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/115-At-Tokyo-for-ICPC-Finals-Part-2.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=115</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=115</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;روز Practice Contest:&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;images/tokyo8.jpg&quot; border=&quot;0&quot;&gt;&lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;و Team Photo:&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;images/tokyo9.jpg&quot; border=&quot;0&quot;&gt;&lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Wed, 14 Mar 2007 04:15:00 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/115-guid.html</guid>
    
</item>
<item>
    <title>At Tokyo for ICPC Finals - Part 1</title>
    <link>http://blog.pykello.net/index.php?/archives/116-At-Tokyo-for-ICPC-Finals-Part-1.html</link>
            <category>ACM ICPC</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/116-At-Tokyo-for-ICPC-Finals-Part-1.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=116</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=116</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;سلام دوستان،&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;توکیو خوش می گذره. جاتون خالی.&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;images/tokyo1.jpg&quot; border=&quot;0&quot;&gt;&lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;امروز تو خیابان های&lt;a href=&quot;http://www.jtcent.com/disneysea/&quot;&gt; دیزنی سی&lt;/a&gt; توکیو &lt;a href=&quot;http://en.wikipedia.org/wiki/Goofy&quot;&gt;گوفی&lt;/a&gt; را دیدیم.&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;images/tokyo2.jpg&quot; border=&quot;0&quot;&gt;&lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;با بچه ها دو سه تا عکس گرفتیم.&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;images/tokyo3.jpg&quot; border=&quot;0&quot;&gt;&lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;دیزنی سی قشنگ بود. حال کردم.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;images/tokyo4.jpg&quot; border=&quot;0&quot;&gt;&lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;یکی از هیجان انگیزترین مراسم عمرم را دیدم.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;images/tokyo5.jpg&quot; border=&quot;0&quot;&gt;&lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;توکیو مسجد هم داشت، ولی مال&lt;a href=&quot;http://www.sinbad-themovie.com/&quot;&gt; افسانه های سندباد&lt;/a&gt; بود.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;images/tokyo6.jpg&quot; border=&quot;0&quot;&gt;&lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;بازی &lt;a href=&quot;http://en.wikipedia.org/wiki/Dance_Dance_Revolution&quot;&gt;Dance Dance Revolution&lt;/a&gt; خیلی هیجان انگیز بود.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;images/tokyo7.jpg&quot; border=&quot;0&quot;&gt;&lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Tue, 13 Mar 2007 04:11:00 -0400</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/116-guid.html</guid>
    
</item>
<item>
    <title>Counting Connected Subgraphs - Part 1</title>
    <link>http://blog.pykello.net/index.php?/archives/23-Counting-Connected-Subgraphs-Part-1.html</link>
            <category>Algorithms</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/23-Counting-Connected-Subgraphs-Part-1.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=23</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=23</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;سلام،به این مساله توجه کنید: یک گراف ساده ی بدون جهت با حداکثر 15 راس داریم. الگوریتمی پیشنهاد بدهید که تعداد زیر گراف های همبند آن را پیدا کند.&amp;#160;بیشتر افراد، از جمله من، وقتی عدد 15 را می بینند، سعی می کنند مساله را با استفاده از برنامه سازی پویا (Dynamic Programming) مدل سازی کنند [...]&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;سلام،&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;به این مساله توجه کنید: &lt;font color=&quot;#006600&quot;&gt;یک گراف ساده ی بدون جهت با حداکثر 15 راس داریم. الگوریتمی پیشنهاد بدهید که تعداد &lt;a href=&quot;http://mathworld.wolfram.com/Subgraph.html&quot;&gt;زیر گراف&lt;/a&gt; های همبند آن را پیدا کند.&lt;/font&gt;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;بیشتر افراد، از جمله من، وقتی عدد 15 را می بینند، سعی می کنند مساله را با استفاده از &lt;a href=&quot;http://en.wikipedia.org/wiki/Dynamic_programming&quot;&gt;برنامه سازی پویا (Dynamic Programming)&lt;/a&gt; مدل سازی کنند و رابطه ای بازگشتی برای پیدا کردن جواب مساله برای مجموعه راس های S را مستقیما با استفاده از حل زیر مساله های کوچکتر برای زیر مجموعه های مجموعه ی S پیدا کنند. که احتمالا به جواب هم نمی رسند.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;ولی یک حل کننده ی مساله ی خوب زیاد به یک راه حل گیر نمی دهد و سعی می کند راه های دیگری را نیز امتحان کند.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;یکی از کارهای خوبی که می توان هنگام حل کردن مساله انجام داد این است که تعیین کرد که با داشتن چه چیز هایی می توانیم جواب مساله را پیدا کنیم. مثلا در این مساله می توان از رابطه ی تعداد &lt;font color=&quot;#0033cc&quot;&gt;زیر گراف های همبند + تعداد زیر گراف های ناهمبند = تعداد کل زیرگراف ها&lt;/font&gt; استفاده کرد و برای پیدا کردن جواب مساله به دنبال پیدا کردن تعداد کل زیرگراف ها و تعداد زیرگراف های ناهمبند بود:&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;1. تعداد کل زیر گراف ها &lt;font color=&quot;#0033cc&quot;&gt;2 به توان |E|&lt;/font&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;  می باشد که در آن |E| تعداد یال ها ی گراف می باشد. این قسمت از مساله که یک مساله شمارش ساده بود.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;2. تعداد زیر گراف های ناهمبند: یک زیر گراف ناهمبند را در نظر بگیرید. در این زیر گراف تعدادی از راس ها با راس اول مولفه ای همبند تشکیل می دهند و بقیه ی راس ها جدا از این مولفه می باشد. توجه کنید که مجموعه ی راس های جدا از این مولفه نباید تهی باشد. بقیه ی راس ها می توانند هر گونه گرافی را بسازند. &lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;پس برای پیدا کردن تعداد زیرگراف های ناهمبند یک مجموعه راس S کافی است تمام زیر مجموعه های &amp;#39;S ای از این مجموعه را که S مخالف &amp;#39;S باشد و &amp;#39;S شامل اولین راس S باشد را در نظر بگیریم و &lt;font color=&quot;#0033cc&quot;&gt;تعداد زیر مجموعه های همبند گراف &amp;#39;S&lt;/font&gt; ضرب در&lt;font color=&quot;#0033cc&quot;&gt; 2 به توان تعداد یال های گراف با مجموعه راس &amp;#39;S-S&lt;/font&gt; را به جوابمان اضافه کنیم. پس این قسمت را نیز می توان با استفاده از رابطه ای بازگشتی و برنامه سازی پویا حل کرد.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;در قسمت بعدی به چند نکته ی پیاده سازی مفید در پیاده سازی این مساله اشاره خواهم کرد.&amp;#160;&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Wed, 07 Mar 2007 11:21:58 -0500</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/23-guid.html</guid>
    
</item>
<item>
    <title>Undo Closed Tab in Firefox 2.0</title>
    <link>http://blog.pykello.net/index.php?/archives/25-Undo-Closed-Tab-in-Firefox-2.0.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/25-Undo-Closed-Tab-in-Firefox-2.0.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=25</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=25</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;با استفاده از Ctrl+Shift+T&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Tue, 13 Feb 2007 11:37:49 -0500</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/25-guid.html</guid>
    
</item>
<item>
    <title>Dijkstra with STL priority_queue</title>
    <link>http://blog.pykello.net/index.php?/archives/26-Dijkstra-with-STL-priority_queue.html</link>
            <category>Algorithms</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/26-Dijkstra-with-STL-priority_queue.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=26</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=26</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;ltr&quot; align=&quot;left&quot;&gt;
&lt;p&gt;Some days ago, I was trying to solve a problem, I used so called technique &amp;quot;&lt;a href=&quot;http://www.proj-mission.org/EE367/MinCost+PFS.doc&quot;&gt;Priority First Search&lt;/a&gt;&amp;quot; (PFS). With not much thought, I realized that &amp;quot;PFS with marking visited states&amp;quot; isSomehowEqualTo &amp;quot;&lt;a href=&quot;http://en.wikipedia.org/wiki/Dijkstra&amp;#39;s_algorithm&quot;&gt;Dijkstra&amp;#39;s Shortest Path Algorithm&lt;/a&gt;&amp;quot;.&amp;#160;&lt;/p&gt;&lt;p&gt;I used to implement Dijkstra using &lt;a href=&quot;http://www.sgi.com/tech/stl/&quot;&gt;STL &lt;/a&gt;&lt;a href=&quot;http://www.sgi.com/tech/stl/set.html&quot;&gt;set&lt;/a&gt;, but I realized that I can use &lt;a href=&quot;http://www.sgi.com/tech/stl/priority_queue.html&quot;&gt;priority_queue&lt;/a&gt; instead, and with some analysis, I realized that the &lt;a href=&quot;http://en.wikipedia.org/wiki/Big_O_notation&quot;&gt;time complexity&lt;/a&gt; remains O(e*&lt;a href=&quot;http://pykello.net/blog/wp-admin/en.wikipedia.org/wiki/Logarithm&quot;&gt;log&lt;/a&gt;(v)) (Where &amp;quot;v&amp;quot; is number of &lt;a href=&quot;http://mathworld.wolfram.com/GraphVertex.html&quot;&gt;vertices &lt;/a&gt;and &amp;quot;e&amp;quot; is number of &lt;a href=&quot;http://mathworld.wolfram.com/GraphEdge.html&quot;&gt;edges &lt;/a&gt;of &lt;a href=&quot;http://en.wikipedia.org/wiki/Graph_theory&quot;&gt;graph&lt;/a&gt;). The &lt;a href=&quot;http://en.wikipedia.org/wiki/Pseudocode&quot;&gt;pseduocode &lt;/a&gt;for this would be something like this:&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span class=&quot;S5&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;Distance&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;N&lt;span class=&quot;S10&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;{&lt;/span&gt;inf&lt;span class=&quot;S10&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;N&lt;span class=&quot;S10&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;S5&quot;&gt;bool&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;Visited&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;N&lt;span class=&quot;S10&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;N&lt;span class=&quot;S10&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  priority_queue&lt;span class=&quot;S10&quot;&gt;&amp;lt;&lt;/span&gt;pair&lt;span class=&quot;S10&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;Q&lt;span class=&quot;S10&quot;&gt;;&lt;/span&gt;&lt;br /&gt; Distance&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;source&lt;span class=&quot;S10&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;;&lt;/span&gt;&lt;br /&gt; Q&lt;span class=&quot;S10&quot;&gt;.&lt;/span&gt;push&lt;span class=&quot;S10&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;source&lt;span class=&quot;S10&quot;&gt;]);&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;span class=&quot;S5&quot;&gt;while&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;(!&lt;/span&gt;Q&lt;span class=&quot;S10&quot;&gt;.&lt;/span&gt;empty&lt;span class=&quot;S10&quot;&gt;()):&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;P&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;Q&lt;span class=&quot;S10&quot;&gt;.&lt;/span&gt;top&lt;span class=&quot;S10&quot;&gt;();&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;S0&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;Q&lt;span class=&quot;S10&quot;&gt;.&lt;/span&gt;pop&lt;span class=&quot;S10&quot;&gt;();&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;u&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;P&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;];&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;u&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;target&lt;span class=&quot;S10&quot;&gt;)&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;S0&quot;&gt;&amp;#160; &amp;#160;&amp;#160; &amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;-&lt;/span&gt;P&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;S4&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;];&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;Visited&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;u&lt;span class=&quot;S10&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;)&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;S0&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;continue&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;;&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;Visited&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;u&lt;span class=&quot;S10&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;;&lt;/span&gt;&lt;br /&gt; &lt;span class=&quot;S0&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;u&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;v&lt;span class=&quot;S10&quot;&gt;,&lt;/span&gt;weight&lt;span class=&quot;S10&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;in&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;edges&lt;span class=&quot;S10&quot;&gt;:&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;S0&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span class=&quot;S5&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;(&lt;/span&gt;Distance&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;u&lt;span class=&quot;S10&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;weight&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;Distance&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;v&lt;span class=&quot;S10&quot;&gt;]):&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;S0&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;Q&lt;span class=&quot;S10&quot;&gt;.&lt;/span&gt;push&lt;span class=&quot;S10&quot;&gt;([-(&lt;/span&gt;Distance&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;u&lt;span class=&quot;S10&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;weight&lt;span class=&quot;S10&quot;&gt;),&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;v&lt;span class=&quot;S10&quot;&gt;]);&lt;/span&gt;&lt;br /&gt;  &lt;span class=&quot;S0&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/span&gt;Distance&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;v&lt;span class=&quot;S10&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;Distance&lt;span class=&quot;S10&quot;&gt;[&lt;/span&gt;u&lt;span class=&quot;S10&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;&lt;span class=&quot;S10&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;S0&quot;&gt; &lt;/span&gt;weight&lt;span class=&quot;S10&quot;&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;/span&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;The time complexity analysis: We will have at most &amp;quot;e&amp;quot; pushes (Since every vertex is visited at most once) in the Q, then we will have at most &amp;quot;e&amp;quot; pushes in the Q. this will lead to O(e * log(e)) time complexity which is equal to O(e * log(v)) (Since e &amp;lt;= v^2 and log(v^2) = 2*log(v)). &lt;/p&gt;&lt;p&gt;Of course some improvements can be made.&lt;/p&gt;&lt;p&gt;With some experiments, I realized that this method is faster than implementing Dijkstra&amp;#39;s algorithm using STL set in most cases.&amp;#160;&lt;/p&gt;&lt;p&gt;To practice this method, try to solve &lt;a href=&quot;http://acm.uva.es/p/v109/10986.html&quot;&gt;UVA #10986&lt;/a&gt; .&lt;/p&gt;
&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sun, 11 Feb 2007 04:00:12 -0500</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/26-guid.html</guid>
    
</item>
<item>
    <title>I Fear</title>
    <link>http://blog.pykello.net/index.php?/archives/121-I-Fear.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/121-I-Fear.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=121</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=121</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;
&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;font color=&quot;#009900&quot;&gt;از دفترچه خاطرات سريوژا در 20 دسامبر 2006:&lt;/font&gt;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;« می ترسم … می ترسم به او نزديک تر شوم …می ترسم تلاش کنم او را بیشتر بشناسم … می ترسم از آنکه تقدسش را در ذهنمن از دست بدهد … می ترسم همه ی احساس های شیرین یاد او را از دست بدهم …می ترسم … »&amp;#160;&lt;/div&gt;
&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sun, 11 Feb 2007 02:50:00 -0500</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/121-guid.html</guid>
    
</item>
<item>
    <title>Beauty of Numbers</title>
    <link>http://blog.pykello.net/index.php?/archives/124-Beauty-of-Numbers.html</link>
            <category>Joy of Science</category>
            <category>Mathematics</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/124-Beauty-of-Numbers.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=124</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=124</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;table border=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;img border=&quot;0&quot; align=&quot;left&quot; src=&quot;images/erdos.jpg&quot; alt=&quot;Paul Erdos&quot; /&gt;&lt;div align=&quot;justify&quot; dir=&quot;rtl&quot; style=&quot;padding: 10px;&quot;&gt;«چرا اعداد زيباهستند؟ به آن می ماند که بپرسيد چرا سمفونی نهم بتهون زيباست … اگر نمیتوانيد زيبايی اعداد را ببنيد، کسی نمی تواند علت زيبايی آن ها را به شمابگويد … من می دانم که اعداد زيبا هستند. اگر آن ها زيبا نيستند، پس هيچچيز زيبا نيست …» &lt;/div&gt;&lt;div align=&quot;left&quot; dir=&quot;rtl&quot;&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Paul_Erd%C5%91s&quot;&gt; پال اردوس&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Mon, 22 Jan 2007 02:42:00 -0500</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/124-guid.html</guid>
    
</item>
<item>
    <title>Holidays</title>
    <link>http://blog.pykello.net/index.php?/archives/125-Holidays.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/125-Holidays.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=125</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=125</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;فرداامتحانات پایان ترم شروع می شود، و من می توانم کمی استراحت کنم، کتاب(غیر درسی) بخوانم، چند تا فیلم ببینم، با هم اتاقی ها بیشتر صحبت کنم، …&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;—————————&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;انسان موجودی است پر از رازهایپیچیده، و غیر قابل شناسایی … نمی دانم چطور می شود در باره ی این موجودبا اطمینان حرف زد و درباره ی او تنها با یک نگاه و چند شنیده قضاوت کرد.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;—————————&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;font color=&quot;#009900&quot;&gt;از دفترچه خاطرات سريوژا در روز 6 ژانويه 2007:&lt;/font&gt;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&quot; … نیکالای بهترین دوست من بود، همیشه بامن خوب بود، دوستش می داشتم. مدتی رفتارش با من بد شد، حرف هایش دل من رامی آزرد. گمان کردم که ديگر همه چیز تمام شده است، … گذشته را فراموش کردهبودم، فراموش کرده بودم که چند سال بهترین مونس تنهایی های من بود، … کمیفکر کردم، گذشته را به ياد آوردم، و حدث زدم که احتمالا مشکلی براینیکالای پیش آمده است. به او محبت کردم، از مشکلاتش پرسیدم، او لبخند زد،و من شاد شدم. دوستت دارم نیکالای.&quot;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;—————————&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;فردا امتحانات شروع می شود، و احتمالا برای مدتی چیزی در این وبلاگ ننویسم.&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;—————————&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;احتمالا در تعطیلات اول سال بعد یک ویکی الگوریتمی درست کنم، چنان ویکی ای که تا به حال نظیرش را ندیده باشید! منتظر باشید! &lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;—————————&lt;/div&gt;&lt;div dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&amp;#160;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; align=&quot;left&quot;&gt;&lt;font color=&quot;#006699&quot;&gt;Logic will get you from A to B. Imagination will take you everywhere!&lt;/font&gt;&quot;Albert Einstein&quot;&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Fri, 12 Jan 2007 02:41:00 -0500</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/125-guid.html</guid>
    
</item>
<item>
    <title>Life</title>
    <link>http://blog.pykello.net/index.php?/archives/126-Life.html</link>
            <category>Daily Comments</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/126-Life.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=126</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=126</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;ترنس تائو تنها 13 سال داشت که برنده ی مدال طلا در المپياد رياضی جهانی شد. او درجه ی PHD خود را در 1996 از پرينستون گرفته و هم اکنون استاد تمام دانشگاه کاليفرنيا در لس آنجلس است ... کارهای او در موضوعاتی نظير آناليز هارمونيک، معادلات ديفرانسيل با مشتق های جزئی غير خطی، اثر داشته و مدال فيلدز را برای خدماتش در اين زمينه ها دريافت کرده.&lt;p&gt;... و اما هادی ... مهم ترين کاری که در دوران قبل از دانشگاه خود کرد اين بود که در امتحان سمپاد قبول شد و ديگر هيچ ... او مدال المپياد ندارد، هيچ اختراعی نکرده، هيچ وقت (حتی در ابتدايي) معدلش خوب نبوده، کتاب زياد دارد ولی اکثر آن ها را نخونده، از اونهايي هم که خونده هيچی يادش نيست، و همين.&lt;br /&gt;اما ...&lt;br /&gt;اما همچنان کسانی هستند که هادی برای آن ها بسيار مهم تر، با ارزش تر، و دوست داشتنی تر از ترنس تائو می باشد. برای آن ها هيچ مهم نيست که هادی برنده ی مدال های کشوری و جهانی نيست، معدلش خوب نيست، يا اينکه يک مساله &quot;بيشترين جريان&quot; ساده را نمی تواند درک کند. برای آن ها مهم نيست که هادی در يک مسابقه ی برنامه نويسی 138 ام می شود و اول نمی شود، ...&lt;br /&gt;هادی زندگی می کند؛ همواره می داند که هميشه کسانی هستند که دوستش دارند و به او اميد دارند. او می تواند به خيلی ها کمک کند، و آن ها را به زندگی بهتری اميدوار کند؛ آن ها به هادی محبت کنند، دل او را تسخير کنند، و او را به زندگی اميدوارتر کنند. هادی عاشق آن ها شود، بی منت به آن ها کمک کند، به حرف های آن ها گوش بدهد، به خاطر آن ها غمگين شود، اشک بريزد؛ به خاطر آن ها خوشحال باشد، به آن ها شادی هديه کند ...&lt;/p&gt;&lt;p&gt;همين. با تمام غم های ممکن، زندگی زيباست!&lt;/p&gt;&lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Tue, 09 Jan 2007 06:21:00 -0500</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/126-guid.html</guid>
    
</item>
<item>
    <title>Hinfunchip</title>
    <link>http://blog.pykello.net/index.php?/archives/127-Hinfunchip.html</link>
    
    <comments>http://blog.pykello.net/index.php?/archives/127-Hinfunchip.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=127</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=127</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt; &lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;زندگی سخت شده است …&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt; &lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;—————–&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt; &lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;هر روز حدودا 15 دقیقه به آزادی مطلق می رسم، و احساس خوشبختی می کنم … &lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt; &lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;—————–&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt; &lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt; آهنگ غم ناک می گذارم، سعی می کنم غمگین باشم، ولی همچنان می خندم.&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt; &lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;—————–&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt; &lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;من: زندگی سخت است، مشکلات زياد است …&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;نیکالای: چه مشکلی؟&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;من: (سکوت)&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt; &lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt;چشمانم را کمی بازتر می کنم، در زندگی دیگران دقیق می شوم، و به این نتیجه می رسم که من مشکلی ندارم!&lt;/div&gt;&lt;div align=&quot;right&quot; dir=&quot;rtl&quot;&gt; &lt;/div&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sun, 07 Jan 2007 02:40:00 -0500</pubDate>
    <guid isPermaLink="false">http://blog.pykello.net/index.php?/archives/127-guid.html</guid>
    
</item>
<item>
    <title>Sir Issac Newton</title>
    <link>http://blog.pykello.net/index.php?/archives/128-Sir-Issac-Newton.html</link>
            <category>Joy of Science</category>
            <category>Mathematics</category>
    
    <comments>http://blog.pykello.net/index.php?/archives/128-Sir-Issac-Newton.html#comments</comments>
    <wfw:comment>http://blog.pykello.net/wfwcomment.php?cid=128</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.pykello.net/rss.php?version=2.0&amp;type=comments&amp;cid=128</wfw:commentRss>
    

    <author>nospam@example.com (Hadi Moshayedi)</author>
    <content:encoded>
    &lt;p&gt;&lt;div align=&quot;justify&quot; dir=&quot;rtl&quot;&gt;&lt;img border=&quot;0&quot; align=&quot;left&quot; style=&quot;padding: 7px;&quot; title=&quot;Sir Isaac Newton&quot; alt=&quot;Sir Isaac Newton&quot; src=&quot;http://blog.pykello.net/images/newton2.jpg&quot; /&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot; dir=&quot;rtl&quot;&gt;&lt;font color=&quot;#009900&quot;&gt;توضيح: امروز سالگرد تولد يکی از نوابغ علوم بشری، اسحاق نيوتون است. نوشته ی زير خلاصه ای از فصل مربوط به نيوتون از کتاب &amp;quot;رياضي دانان نامی&amp;quot;، اثر &amp;quot;اريک تمپل بک&amp;quot;، با ترجمه ی حسن صفاری، از انتشارات اميرکبير می باشد. &lt;/font&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot; dir=&quot;rtl&quot;&gt;&lt;font color=&quot;#009900&quot;&gt;&lt;/font&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot; dir=&quot;rtl&quot;&gt;&amp;quot;من نمی دانم به چه صورتی ممکن است در نظر جهانيان جلوه گر شوم، اما به نظر خودم چنين می آيد که همچون کودک خردسالی هستم که در ساحل به بازی مشغولم و گاه و بيگاه سنگ ريزه ای صاف تر از سنگ های ديگر يا صدفی زيباتر از صدف های ديگر به دست می آورم، در حالی که اقيانوس عظيم حقيقت در مقابل من گسترده است و مرا بر آن آگاهی نيست.&amp;quot;&lt;br /&gt;اين است قضاوتی که اسحق نيوتن در حدود پايان زندگانی طويل خويش درباره ی اکتشافات خود می نمايد و با اين حال جانشينان او که قابليت درک ارزش آثارش را داشته اند نيوتن را صاحب بزرگترين فکری دانسته اند که تا امروز در نژاد بشری وجود داشته است: « مردی که در قدرت نبوغ از مقام انسانی تجاوز کرد».&lt;p&gt;اسحق نيوتن که در روز 4 ژانويه سال 1643 ميلادی، يعنی سال مرگ گاليله، متولد شد، از خانواده ای است که افراد آن کشاورزان مستقل و متوسط الحال بوده اند و مجاور دريا در قريه ی وولستورپ می زيستند.&lt;/p&gt;&lt;p&gt;نيوتن کودکی نبود که ساختمان بدنی قوی و مستحکم داشته باشد و بنابراين مجبور بود از بازي های پر هياهو و زد و خوردهای همسالان خود کناره بگيرد و بجای اينکه از تفريحات آنان پيروی کند، شخصا برای خويش تفريحاتی اختراع می کرد که نبوغ وی در ضمن آن ها خودنمايي می نمود.&lt;br /&gt;برخی از تفريحات وی عبارت بودند از: ساختن بادبادکی که چراغی در خود پنهان داشت و موجب وحشت اهالی ده می گرديد؛ بازيچه های مکانيکی تمام اجزاي آن ها را تماما خود می ساخت؛ ...&lt;/p&gt;&lt;p&gt;طبق نسايح دايی وی ابتدا او را به کالج گرانتهام فرستادند و در اين کالج او را در کلاس ماقبل آخر جای دادند. او همواره مورد طعنه و طنز شاگردانی واقع می شد که از وی قوی تر بوده اند و روزی از روزها يکی از ايشان با بی رحمی بسيار، کتک مفصلی به او زد بطوريکه جانش از آن آزرده شد. ام در نتيجه ی تشويق يکی از استادان خويش شاگرد مزبور را به مبارزه طلبيد و با ضربات جانانه ای وی را از پا درآورد و در آخر کار نيز از سر تحقير بينی او را به ديوار کليسا کوبيد. تا آن تاريخ نيوتن توجه بسيار به درس های خود نشان نداده بود اما بر اثر اين واقعه تصميم گرفت به آنان ثابت کند که مغز وی قوی تر از ايشان است و با جديت به کار پرداخت و در اندک مدت بهترين شاگرد کلاس شد.&lt;br /&gt;در اين هنگام بود که مديران مدرسه و دايی او متفق القول شدند که وی قادر است برنامه ی دانشگاه کمبريج را درک کند. تصميم قاطع روزی اختيار شد که دايی آيسکاف او را غافلگير کرد و ملاحظه نمود که در کنار پرچين مزرعه نشسته و در خفا سخت مشغول مطالعه است و حال آن که همه تصور می کردند وی با کمک يکی از کارگران مزرعه برای خريد به بازار رفته است.&lt;/p&gt;&lt;p&gt;معلم رياضی نيوتن در دانشگاه کمبريج اسحق بارو نام داشت که در عين حال رياضی دان و عالم علوم الهی بود. بارو از روی خلوص و حسن نيت به اين نکته ايمان آورد که شاگردش به مراتب بر او رجحان دارد و چون در سال 1669 هنگام آن رسيد که کرسی رياضيا لوکازيان را که وی اولين اشغال کننده ی آن بوده است ترک کند، با نهايت ميل اين کرسی را به شاگرد و مريد بی مانند خود سپرد.&lt;/p&gt;&lt;p&gt;نيوتن تا سال 1664 هنوز کار قابل ملاحظه ای انجام نداده بود جز اينکه از بس با اصرار و سماجت به هاله ی ماه و ذوذنبی که می گذشت نگاه کرد مريض شد، و يا اگر کار مهمی انجام داده بود آن را مخفی می داشت.&lt;/p&gt;&lt;p&gt;از زندگانی او هيچ چيزی را با دقت و صحت نمی دانيم جز اينکه طی سال های 1666 – 1664 يعنی از 21 سالگی تا 23 سالگی تمام اکتشافات آينده ی خويش را در رياضيات و علوم ديگر پی ريزی کرد و با ايمان و عقيده هر روز به سعی و کوشش و کار پرداخت و شب ها تا دير وقت بيدار می ماند تا جاييکه مريض و بستری گرديد. متاسفانه ميل طبيعی نيوتن به اينکه اکتشافات خويش را پنهان از ديگران نگه دارد، نيز موجب تاريکی بيشتر اين اسرار شد.&lt;br /&gt;او طی اين سه سال روش حساب ديفرانسيل و انتگرال را اختراع کرد، قانون جاذبه ی عمومی را کشف کرد و با تجربه ثابت نمود که نور سفيد ماحصل ترکيب تمام انوار با رنگ های مختلف می باشد.&lt;/p&gt;&lt;p&gt;نسخه ای خطی که تاريخ آن بيستم ماه می 1665 است نشان می دهد که نيوتن در 23 سالگی به قدر کافی اصول حساب عناصر بی نهايت کوچک را پيش برده بود که بتواند انحنای هر منحنی متصل را در يک نقطه حساب کند و مماس بر منحنی را در اين نقطه رسم نمايد.&lt;/p&gt;&lt;p&gt;&lt;img border=&quot;0&quot; align=&quot;right&quot; style=&quot;padding: 7px;&quot; title=&quot;Sir Isaac Newton&quot; alt=&quot;Sir Isaac Newton&quot; src=&quot;http://blog.pykello.net/images/newton1.jpg&quot; /&gt;دومين الهام بزرگ نيوتون هنگاميکه در حدود 23 سال داشت، يعنی در سال 1666 که در وولستورپ بسر می برد عبارت از قانون جاذبه ی عمومی اوست. غالب مورخين علوم که قولشان معتبر است اين نکته را پذيرفته اند که نيوتن در سال 1666 دست به يک سلسله محاسبات تقريبی زد تا ملاحظه کند که آيا قانون جاذبه ی عمومی او می تواند قوانين کپلر را توضيح دهد يا نه.&lt;br /&gt;انتشار قانون جاذبه ی عمومی 20 سال طول کشيد. علت تاخير نيوتن آن بوده است که وی نمی توانست مسئله ای مربوط به حساب انتگرال و ديفرانسيل را حل کند و اين مسئله در قانون جاذبه ی عمومی به صورتی که مورد توجه او قرار گرفته بود نقش اساسی به عهده داشت. در واقع نيوتن قبل از اينکه حرکت سيب يا حرکت ماه را مورد مطالعه قرار دهد احتياج به آن داشت که معلوم نمايد که جاذبه ی کلی کره ی متجانسی بر نقطه ای که در خارج اين کره قرار گرفته چيست. بديهی است که هر يک از نقاط کره ی مزبور نقطه ی خارجی را با نيرويی که متناسب با جرم دو ذره و معکوس مجذور فاصله ی آن هاست جذب می کنند، ليکن چگونه بايد بی نهايت جاذبه ی مجزا را که به اين طريق حاصل می شوند را با هم جمع کرد يا ترکيب نمود تا جاذبه ی منتجه حاصل شود؟&lt;br /&gt;آشکار است که مسئله ی مزبور از نوع مسائل حساب انتگرال است. امروز اين مسئله را در کتاب های مقدماتی و درسی حساب انتگرال به عنوان تمرين ساده ای مطرح می سازند و دانشجويان جوان حداکثر در 20 دقيقه به حل آن توفيق می يابند، اما نيوتن 20 سال در باره ی آن فکر کرد تا به حل آن توفيق يافت!&lt;/p&gt;&lt;p&gt;بعد از آنکه بار ديگر به کمبريج بازگشت به عنوان عضو وابسته در ترينيتی کالج پذيرفته شد (1667) و دو سال بعد از آن در 1669 در 26 سالگی به عنوان استاد رياضی جانشين اسحق بارو گرديد، در اولين درس های وی از مبحث نور گفتگو به عمل می آيد. وی ضمن اين درس ها اکتشافات شخصی خود را مطرح می سازد و تئوری های ذره ای نور را بيان می دارد که طبق آن نور ماحصل ذره است و نه چنانکه هوک و هويگنس عقيده داشته اند نمودی موجی می باشد.&lt;/p&gt;&lt;p&gt;در 1668 نيوتن با دست خود يک تلسکوپ انعکاسی ساخت و به مدد آن به رصد و مشاهده ی اقمار مشتری پرداخت. در اين نکته ترديدی نيست که منظور وی از اين رصد ها آن بود که اقمار مزبور را مورد تجربه قرار دهد و به کمک آن ها ملاحظه کند که آيا قانون «جاذبه» ی وی واقعا «عمومی» است يا نه.&lt;/p&gt;&lt;p&gt;در سال 1672 نيوتن به عضويت جامعه ی پادشاهی انتخاب شد، به اين مناسبت اکتشافات خود را در مورد تلسکوپ ها و نظريه ی ذره ای نور به جامعه ی مزبور عرضه داشت. هيئتی مرکب از سه عضو اين جامعه که از جمله ی ايشان يکی مرد زشتخوئی همچون هوک بود، مامور شدند که درباره ی اين اکتشافات گزارشی به جامعه ی مزبور تقديم دارند. هوک از سمت خود سوء استفاده کرد&lt;img width=&quot;350&quot; height=&quot;225&quot; border=&quot;0&quot; align=&quot;left&quot; title=&quot;Isaac Newton Prism&quot; alt=&quot;Isaac Newton Prism&quot; src=&quot;http://blog.pykello.net/images/newton4.jpg&quot; /&gt; و گزارشی عليه نيوتن به جامعه تقديم داشت و ضمن آن تبليغ بسياری به نفع نظريه ی موجی نور کرد.&lt;br /&gt;در ابتدای امر نيوتن خونسردی کامل خود را حفظ کرد ليکن بزودی رفتار خود را تغيير داد و خاصه هنگاميکه لوکاس رياضی دان و لينوس فيزيک دان به هوک پيوستند و نظرات و ايرادات آنان صورت بدگويي احمقانه يافت و نيوتن به کلی عنان احتيار از دست داد. بالاخره نيوتن تصميمی کودکانه گرفت که از آن پس با هيچکس از اکتشافات خود سخن نگويد و علت آن بود که نمی توانست اصلا چنين جدال احمقانه ای را تحمل کند.&lt;br /&gt;در سال 1679 که سی و هفت سال داشت بزرگترين اکتشافات خود را انجام داده بود اما آن ها را با نهايت دقت در مغز خويش و يا در کشو ميز خود محفوظ می داشت.&lt;/p&gt;&lt;p&gt;دوران ما بين 1884 و 1886 از نظر تاريخ فکری بشر مقام ارجمندی دارد. در اين دوران هالی توانست با تدبير بسيار او را وادارد که اکتشافات خويش را در نجوم و علم حرکات به منظور انتشار تدوين کند و نيوتن نيز رضا به اين کار داد. به احتمال قوی  طی تاريخ هيچ گاه موجودی بشری با چنين مداومت خويشتن را به افکاری چنين عميق نسپرد و کوششی معادل آن چه نيوتن برای تدوين &lt;img width=&quot;188&quot; height=&quot;252&quot; border=&quot;0&quot; align=&quot;left&quot; style=&quot;padding: 7px;&quot; title=&quot;Sir Isaac Newton&quot