برنامهنویسیایستگاه ۱۵ از ۳۰
جستجوی کامل · برنامهنویسی، ایستگاه ۱۵
پرسشی که ایستگاه با آن شروع میشود
رمزِ قفلِ چهاررقمیِ دوچرخهات را فراموش کردهای. امتحانِ همهی رمزها چقدر طول میکشد؟
معمولاً پایهٔ ششمحدود ۱۰۱ دقیقه در ۴ جلسهٔ کوتاه
سرعت را تسلط تعیین میکند، نه سن.
فرزندتان در این ایستگاه چه یاد میگیرد
- امتحانکردن همهی حالتها
- حلقههای تودرتو برای زوجها و سهتاییها
- تخمین تعداد حالتها و زمان اجرا
- هرس ساده
درسهای این ایستگاه
- همه را امتحان کن (حدود ۲۳ دقیقه)
- حلقههای تودرتو: جفتها و سهتاییها (حدود ۲۷ دقیقه)
- چند حالت؟ چقدر طول میکشد؟ (حدود ۲۵ دقیقه)
- هرس: کمتر بگرد، همان جواب (حدود ۲۶ دقیقه)
ایدههای کلیدی
همه را بساز، هر کدام را بسنج
جستجوی کامل: همهی حالتهای ممکن را به ترتیب بساز، شرط را روی هر کدام بسنج، بشمار یا اولی را نگه دار. چیزی جا نمیافتد، پس جواب مطمئن است.هر جفت یک بار
در حلقهی تودرتو، j را ازi + 1شروع کن: (۲، ۵) و (۵، ۲) یکیاند و کسی با خودش جفت نمیشود. ۲۰ نفر: ۲۰ × ۱۹ ÷ ۲ = ۱۹۰ جفت.اول بشمار، بعد بنویس
حلقهها ضرب میشوند: ۱۰ × ۱۰ = ۱۰۰، نه ۲۰. حدودِ ده میلیون قدم در ثانیه برای پایتون؛ تعدادِ سنجشها را با این مقایسه کن.هرسِ بیخطر
حالتهایی را که حتماً جواب نیستند نساز: ترتیب نگه دار، آخری را حساب کن، زود بایست. نسخهی هرسشده را روی ورودیهای کوچک با نسخهی کامل مقایسه کن.
از درسهای همین ایستگاه
دو مثال حلشده
مسئله
همهی عددهای دورقمی را پیدا کن که جمعِ رقمهایشان ۹ و رقمِ یکانشان زوج است. اول خودت حدس بزن چندتا هستند.راهحل، قدمبهقدم
در درس، قدمها یکییکی باز میشوند و فرزندتان پیش از هر قدم خودش حدس میزند.
- قدم ۱: حالتها: همهی عددهای ۱۰ تا ۹۹.
range(10, 100)از ۱۰ شروع میشود و ۱۰۰ را ندارد. - قدم ۲: رقمها:
n // 10دهگان است وn % 10یکان. برای ۷۲: ۷ و ۲. - قدم ۳: شرط:
t + u == 9 and u % 2 == 0. باand، دو تکه با هم درستاند. - قدم ۴: خروجی: ۱۸، ۳۶، ۵۴، ۷۲، ۹۰. پنج عدد؛ چیزی جا نیفتاد، چون همهی ۹۰ عدد سنجیده شدند.
- قدم ۵: نوبتِ تو، اول خودت: جمعِ رقمها ۱۲ و یکان فرد. کدام عددها؟ جواب بده، بعد قدمِ بعد را باز کن.
- قدم ۶: ۳۹، ۵۷، ۷۵، ۹۳. در کد فقط شرط عوض شد:
t + u == 12 and u % 2 == 1.
مسئله
چند سهتاییِ a < b < c از عددهای ۱ تا ۲۰ هست که a + b + c = ۳۰؟ مثلاً ۵ + ۱۰ + ۱۵. اول خودت حدس بزن.راهحل، قدمبهقدم
در درس، قدمها یکییکی باز میشوند و فرزندتان پیش از هر قدم خودش حدس میزند.
- قدم ۱: سه حلقه: b از a + ۱ و c از b + ۱. پس همیشه a < b < c و هر سهتایی یک بار میآید.
- قدم ۲: برای هر سهتایی شرط سنجیده میشود: جمع ۳۰ است؟ اگر بله،
countیکی بیشتر میشود. - قدم ۳: برنامه ۴۵ چاپ میکند. از کجا بدانیم درست است؟ با یک شمارشِ منظمِ دستی مقایسه کن.
- قدم ۴: فهرستِ منظم روی a. برای a = ۱: b + c = ۲۹ و c حداکثر ۲۰، پس b از ۹ تا ۱۴؛ شش سهتایی.
- قدم ۵: سطرها: ۶، ۶، ۷، ۷، ۷، ۵، ۴، ۲، ۱؛ جمع ۴۵، همان جوابِ برنامه. فرمولِ سادهای برایش نداریم؛ فهرستِ منظم کافی است.
- قدم ۶: نوبتِ تو، اول خودت: اگر جمع ۱۵ باشد، چند سهتایی؟ جواب بده، بعد قدمِ بعد را باز کن.
- قدم ۷: ۱۲. فهرستِ منظم روی a: ۵، ۴، ۲، ۱. در برنامه فقط ۳۰ به ۱۵ عوض میشود.
یک نمونهٔ کوچک
ابزار این ایستگاه را امتحان کنید
پیش و پس از این ایستگاه
پیشنیازها
ایستگاههایی که به این تکیه میکنند
روش یادگیری فکرستان و همهٔ ایستگاههای این مسیر: برنامهنویسی برای کودکان
شروع با فکرستان
حساب را پدر یا مادر میسازد و رضایتش را همانجا ثبت میکند. فرزندتان با نام مستعار وارد میشود و با چند پرسش کوتاه، نقطهٔ شروعِ هر مسیر پیدا میشود.