رفتن به محتوای اصلی
نسخه‌ی آزمایشی · Beta

برنامه‌نویسیایستگاه ۱۵ از ۳۰

جستجوی کامل · برنامه‌نویسی، ایستگاه ۱۵

پرسشی که ایستگاه با آن شروع می‌شود

رمزِ قفلِ چهاررقمیِ دوچرخه‌ات را فراموش کرده‌ای. امتحانِ همه‌ی رمزها چقدر طول می‌کشد؟

معمولاً پایهٔ ششمحدود ۱۰۱ دقیقه در ۴ جلسهٔ کوتاه

سرعت را تسلط تعیین می‌کند، نه سن.

فرزندتان در این ایستگاه چه یاد می‌گیرد

  • امتحان‌کردن همه‌ی حالت‌ها
  • حلقه‌های تودرتو برای زوج‌ها و سه‌تایی‌ها
  • تخمین تعداد حالت‌ها و زمان اجرا
  • هرس ساده

درس‌های این ایستگاه

  1. همه را امتحان کن (حدود ۲۳ دقیقه)
  2. حلقه‌های تودرتو: جفت‌ها و سه‌تایی‌ها (حدود ۲۷ دقیقه)
  3. چند حالت؟ چقدر طول می‌کشد؟ (حدود ۲۵ دقیقه)
  4. هرس: کمتر بگرد، همان جواب (حدود ۲۶ دقیقه)

ایده‌های کلیدی

  • همه را بساز، هر کدام را بسنج

    جستجوی کامل: همه‌ی حالت‌های ممکن را به ترتیب بساز، شرط را روی هر کدام بسنج، بشمار یا اولی را نگه دار. چیزی جا نمی‌افتد، پس جواب مطمئن است.
  • هر جفت یک بار

    در حلقه‌ی تودرتو، j را از i + 1 شروع کن: (۲، ۵) و (۵، ۲) یکی‌اند و کسی با خودش جفت نمی‌شود. ۲۰ نفر: ⁦۲۰ × ۱۹ ÷ ۲ = ۱۹۰⁩ جفت.
  • اول بشمار، بعد بنویس

    حلقه‌ها ضرب می‌شوند: ⁦۱۰ × ۱۰ = ۱۰۰⁩، نه ۲۰. حدودِ ده میلیون قدم در ثانیه برای پایتون؛ تعدادِ سنجش‌ها را با این مقایسه کن.
  • هرسِ بی‌خطر

    حالت‌هایی را که حتماً جواب نیستند نساز: ترتیب نگه دار، آخری را حساب کن، زود بایست. نسخه‌ی هرس‌شده را روی ورودی‌های کوچک با نسخه‌ی کامل مقایسه کن.

از درس‌های همین ایستگاه

دو مثال حل‌شده

همان‌طور که در درس دیده می‌شود، این‌جا با همهٔ قدم‌ها.
مثال ۱از درس «همه را امتحان کن»

مسئله

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

راه‌حل، قدم‌به‌قدم

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

  1. قدم ۱:
    حالت‌ها: همه‌ی عددهای ۱۰ تا ۹۹. range(10, 100) از ۱۰ شروع می‌شود و ۱۰۰ را ندارد.
  2. قدم ۲:
    رقم‌ها: n // 10 دهگان است و n % 10 یکان. برای ۷۲: ۷ و ۲.
  3. قدم ۳:
    شرط: t + u == 9 and u % 2 == 0. با and، دو تکه با هم درست‌اند.
  4. قدم ۴:
    خروجی: ۱۸، ۳۶، ۵۴، ۷۲، ۹۰. پنج عدد؛ چیزی جا نیفتاد، چون همه‌ی ۹۰ عدد سنجیده شدند.
  5. قدم ۵:
    نوبتِ تو، اول خودت: جمعِ رقم‌ها ۱۲ و یکان فرد. کدام عددها؟ جواب بده، بعد قدمِ بعد را باز کن.
  6. قدم ۶:
    ۳۹، ۵۷، ۷۵، ۹۳. در کد فقط شرط عوض شد: t + u == 12 and u % 2 == 1.
مثال ۲از درس «حلقه‌های تودرتو: جفت‌ها و سه‌تایی‌ها»

مسئله

چند سه‌تاییِ ⁦a < b < c⁩ از عددهای ۱ تا ۲۰ هست که ⁦a + b + c = ۳۰⁩؟ مثلاً ⁦۵ + ۱۰ + ۱۵⁩. اول خودت حدس بزن.

راه‌حل، قدم‌به‌قدم

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

  1. قدم ۱:
    سه حلقه: b از ⁦a + ۱⁩ و c از ⁦b + ۱⁩. پس همیشه ⁦a < b < c⁩ و هر سه‌تایی یک بار می‌آید.
  2. قدم ۲:
    برای هر سه‌تایی شرط سنجیده می‌شود: جمع ۳۰ است؟ اگر بله، count یکی بیشتر می‌شود.
  3. قدم ۳:
    برنامه ۴۵ چاپ می‌کند. از کجا بدانیم درست است؟ با یک شمارشِ منظمِ دستی مقایسه کن.
  4. قدم ۴:
    فهرستِ منظم روی a. برای a = ۱: ⁦b + c = ۲۹⁩ و c حداکثر ۲۰، پس b از ۹ تا ۱۴؛ شش سه‌تایی.
  5. قدم ۵:
    سطرها: ۶، ۶، ۷، ۷، ۷، ۵، ۴، ۲، ۱؛ جمع ۴۵، همان جوابِ برنامه. فرمولِ ساده‌ای برایش نداریم؛ فهرستِ منظم کافی است.
  6. قدم ۶:
    نوبتِ تو، اول خودت: اگر جمع ۱۵ باشد، چند سه‌تایی؟ جواب بده، بعد قدمِ بعد را باز کن.
  7. قدم ۷:
    ۱۲. فهرستِ منظم روی a: ۵، ۴، ۲، ۱. در برنامه فقط ۳۰ به ۱۵ عوض می‌شود.

یک نمونهٔ کوچک

ابزار این ایستگاه را امتحان کنید

از درس «همه را امتحان کن»
نمونه در حال آماده شدن است…
این نمونهٔ کوچکی از ابزار این ایستگاه است؛ می‌توانید همین حالا با فرزندتان امتحانش کنید: اول حدس بزنید، بعد ببینید. در درس، فرزندتان با یک پرسش و راهنمای قدم‌به‌قدم با آن کار می‌کند. چیزی ذخیره یا فرستاده نمی‌شود.

پیش‌نیازها

ایستگاه‌هایی که به این تکیه می‌کنند

روش یادگیری فکرستان و همهٔ ایستگاه‌های این مسیر: برنامه‌نویسی برای کودکان

شروع با فکرستان

حساب را پدر یا مادر می‌سازد و رضایتش را همان‌جا ثبت می‌کند. فرزندتان با نام مستعار وارد می‌شود و با چند پرسش کوتاه، نقطهٔ شروعِ هر مسیر پیدا می‌شود.