PDA

توجه ! این یک نسخه آرشیو شده می باشد و در این حالت شما عکسی را مشاهده نمی کنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : يك حقه رياضي براي برنامه نويسي



sunyboy
12-23-2008, 01:41 PM
فرض كنيد مي خواهيد برنامه (http://egza.wordpress.com/) اي بنويسيد كه در آن قرار است كاربر از ليستي كه ارائه شده موارد مورد نظر خود را انتخاب كند به عنوان مثال يك برنامه ي انتخاب واحد
در اين مثال ليستي از دروس ارائه شده و دانشجو مي تواند دروس مورد نظر خود را انتخاب كند




http://www.pnu-club.com/imported/2008/12/40.jpg (http://egza.wordpress.com/)



جلوي هر درس عددي قرار داده شده است ولي بعد از انتخاب برنامه فقط مجموع اين اعداد را ذخيره مي كند اين اعداد به صورتي انتخاب شده اند كه مجموع دلخواه هر كدام از آنها يك عدد منحصر به فرد خواهد شد به عنوان مثال اگر مجموع 13 شود خواهيم فهميد كه دانشجو دروس فيزيك=8 و رياضي=4 و زبان فارسي=1 را انتخاب كرده است چرا كه تنها مجموع همين اعداد از ليست 13 خواهد شد اين مجموع منحصر به فرد براي تمام اعداد وجود دارد اما مي دانيد اين حقه ي رياضي (http://egza.wordpress.com/) چطور كار مي كند هر عدد از ليست بزرگتر از مجموع تمام اعداد قبلي ليست است مثلا عدد 4 بزرگتر از 1+2 است عدد 8 بزرگتر از 1+2+4 است عدد 16 بزرگتر از 1+2+4+8 است و به همين صورت ادامه مي يابد
استفاده از اين روش بسيار ساده است مثلا اگر عدد ذخيره شده يا همان عدد مجموع 42 شده است براي اينكه بفهميم كدام دروس انتخاب شده است فقط كافي است بزرگترين عدد ليست كه از مجموع يعني 42 كوچكتر باشد شروع به كم كردن كنيم
عدد 42 بايد با استفاده از عدد 32 كه از 42 كوچكتر و از ساير اعداد ليست بزرگتر است درست شده باشد پس
42-32=10
عدد 10 بايد از 8 كه از 1 كوچكتر و از ساير اعداد ليست بزرگتر است درست شده باشد
10-8=2
در نتيجه 2+8+32=42 يعني كاربر دروس زبان انگليسي=32 و فيزيك=8 و تاريخ ايران=2 را انتخاب كرده است




for windows geek

اگر از گيك هاي ويندوز باشيد حتما مي دانيد در ويندوز از اين حقه در مخفي كردن درايو ها استفاده شده است به اين صورت كه اعداد مربوط به درايوهاي دلخواه را با هم جمع مي كنيد و آن را در كليدي در رجيستري ذخيره مي كنيم و وبمدوز با استفاده از اين روش درايو هاي دلخواهتان را مخفي كنيد