PDA

View Full Version : یک حقه ریاضی برای برنامه نویسی (مقالات آموزشی)



new_sra
سه شنبه 22 اردیبهشت 1388, 11:12 صبح
http://tbn0.google.com/images?q=tbn:17zkD1xsM7NdbM:http://www.ur.umich.edu/0203/June02_03/img/030602_math_woman3.jpgفرض کنید می خواهید برنامه ای بنویسید که در آن قرار است کاربر از لیستی که ارائه شده موارد مورد نظر خود را انتخاب کند به عنوان مثال یک برنامه ی انتخاب واحد

در این مثال لیستی از دروس ارائه شده و دانشجو می تواند دروس مورد نظر خود را انتخاب کند.



http://i36.tinypic.com/msj2vp.png


جلوی هر درس عددی قرار داده شده است ولی بعد از انتخاب برنامه فقط مجموع این اعداد را ذخیره می کند این اعداد به صورتی انتخاب شده اند که مجموع دلخواه هر کدام از آنها یک عدد منحصر به فرد خواهد شد به عنوان مثال اگر مجموع 13 شود خواهیم فهمید که دانشجو دروس فیزیک=8 و ریاضی=4 و زبان فارسی=1 را انتخاب کرده است چرا که تنها مجموع همین اعداد از لیست 13 خواهد شد این مجموع منحصر به فرد برای تمام اعداد وجود دارد اما می دانید این حقه ی ریاضی چطور کار می کند هر عدد از لیست بزرگتر از مجموع تمام اعداد قبلی لیست است مثلا عدد 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


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

tdkhakpur
سه شنبه 22 اردیبهشت 1388, 12:41 عصر
http://tbn0.google.com/images?q=tbn:17zkD1xsM7NdbM:http://www.ur.umich.edu/0203/June02_03/img/030602_math_woman3.jpgفرض کنید می خواهید برنامه ای بنویسید که در آن قرار است کاربر از لیستی که ارائه شده موارد مورد نظر خود را انتخاب کند به عنوان مثال یک برنامه ی انتخاب واحد

در این مثال لیستی از دروس ارائه شده و دانشجو می تواند دروس مورد نظر خود را انتخاب کند.



http://i36.tinypic.com/msj2vp.png


جلوی هر درس عددی قرار داده شده است ولی بعد از انتخاب برنامه فقط مجموع این اعداد را ذخیره می کند این اعداد به صورتی انتخاب شده اند که مجموع دلخواه هر کدام از آنها یک عدد منحصر به فرد خواهد شد به عنوان مثال اگر مجموع 13 شود خواهیم فهمید که دانشجو دروس فیزیک=8 و ریاضی=4 و زبان فارسی=1 را انتخاب کرده است چرا که تنها مجموع همین اعداد از لیست 13 خواهد شد این مجموع منحصر به فرد برای تمام اعداد وجود دارد اما می دانید این حقه ی ریاضی چطور کار می کند هر عدد از لیست بزرگتر از مجموع تمام اعداد قبلی لیست است مثلا عدد 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


اگر از گیک های ویندوز باشید حتما می دانید در ویندوز از این حقه در مخفی کردن درایو ها استفاده شده است به این صورت که اعداد مربوط به درایوهای دلخواه را با هم جمع می کنید و آن را در کلیدی در رجیستری ذخیره می کنیم و وبمدوز با استفاده از این روش درایو های دلخواهتان را مخفی کنید.
سلام:
دوست گرامی این روش خوب هست ولی یه ایراد داره اگه بخواییم بیشتر از 1000 یا 2000 و یا بیشتر غیر از دروس استفاده کنیم کارایی نداره ولی جمعا روش قشنگیه.

morteza_1234m
یک شنبه 17 آبان 1388, 17:50 عصر
درواقع یک جورایی میشه شیره مالید رو سر استاد چون معمولا استاد بیشتر از 10 یا 15 رکورد رو وارد نمی کنه و متوجه ایراداتش نمیشه

Felony
یک شنبه 17 آبان 1388, 18:07 عصر
درواقع یک جورایی میشه شیره مالید رو سر استاد چون معمولا استاد بیشتر از 10 یا 15 رکورد رو وارد نمی کنه و متوجه ایراداتش نمیشه
بعد از 6 ماه تاپیک رو بالا آوردید که این رو بگید ؟

حامد مصافی
یک شنبه 17 آبان 1388, 18:47 عصر
اگر از گیک های ویندوز باشید حتما می دانید در ویندوز از این حقه در مخفی کردن درایو ها استفاده شده است به این صورت که اعداد مربوط به درایوهای دلخواه را با هم جمع می کنید و آن را در کلیدی در رجیستری ذخیره می کنیم و وبمدوز با استفاده از این روش درایو های دلخواهتان را مخفی کنید.

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

JaguarXF
جمعه 18 دی 1388, 06:43 صبح
جالب بود ولی غیر عملی در اکثر موارد :
مثلا بخوادگزینه 35 ام رو ذخیره کنه . بعد 2 به توان 35 رو توی کدوم نوع داده ای میخواد ذخیره کنه و جمع و تفریقش کنه

milad.biroonvand
پنج شنبه 29 بهمن 1388, 18:07 عصر
http://tbn0.google.com/images?q=tbn:17zkD1xsM7NdbM:http://www.ur.umich.edu/0203/June02_03/img/030602_math_woman3.jpgفرض کنید می خواهید برنامه ای بنویسید که در آن قرار است کاربر از لیستی که ارائه شده موارد مورد نظر خود را انتخاب کند به عنوان مثال یک برنامه ی انتخاب واحد

در این مثال لیستی از دروس ارائه شده و دانشجو می تواند دروس مورد نظر خود را انتخاب کند.



http://i36.tinypic.com/msj2vp.png


جلوی هر درس عددی قرار داده شده است ولی بعد از انتخاب برنامه فقط مجموع این اعداد را ذخیره می کند این اعداد به صورتی انتخاب شده اند که مجموع دلخواه هر کدام از آنها یک عدد منحصر به فرد خواهد شد به عنوان مثال اگر مجموع 13 شود خواهیم فهمید که دانشجو دروس فیزیک=8 و ریاضی=4 و زبان فارسی=1 را انتخاب کرده است چرا که تنها مجموع همین اعداد از لیست 13 خواهد شد این مجموع منحصر به فرد برای تمام اعداد وجود دارد اما می دانید این حقه ی ریاضی چطور کار می کند هر عدد از لیست بزرگتر از مجموع تمام اعداد قبلی لیست است مثلا عدد 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


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


سلام دوست عزيز

روش خيلي جالبي بود ، ولي اگر بشه ، مشكل اون رو براي 1000 به بالا حل كرد ، خيلي به كار مياد .

code_baz
سه شنبه 03 خرداد 1390, 16:02 عصر
چرا از 2000 بیشتر نمیشه؟