ریاضی را حرف بزن · دانشگاه
عبارت منظم: الگوهای متن
عبارت منظم زبانی کوچک است که یک خانوادهٔ کامل از رشتهها را یکجا توصیف میکند. برنامهنویسها هر روز از آن استفاده میکنند؛ ریاضیدانها میپرسند یک الگو کدام رشتهها را میپذیرد.
پیشنویس: نوشتهٔ یک دستیار هوش مصنوعی؛ هنوز معلمی آن را بررسی نکرده است.
الفبا
هر نماد را همانطور که زیرش نوشته شده بلند بخوان.
- بخوان: c و a و t همانطور که نوشته شدهاند؛ و c نقطه t: نقطه یعنی هر نویسهٔ دلخواهیعنی: حرفها خودشان را نشان میدهند؛ نقطه هر یک نویسه را نشان میدهد.
- بخوان: a ستاره: a به هر تعداد، حتی صفر بار؛ a بهاضافه: دستکم یک بار؛ a علامت سؤال: یک بار یا اصلاً نهیعنی: میشمارد قطعهٔ قبل از آن چند بار میتواند تکرار شود.
- بخوان: کروشه a و b و c: یک نویسه از فهرست؛ a خطتیره z: یک نویسه از بازه؛ هَت در ابتدای کروشه: یک نویسه که در فهرست نیستیعنی: یک نویسه که از یک مجموعهٔ مشخص برداشته میشود.
- بخوان: هَت، a، b، دلار: رشته از همینجا شروع میشود، ab است و همینجا تمام میشودیعنی: الگو را به ابتدا و انتهای رشته میچسباند.
- بخوان: داخل پرانتز: ab یا c؛ همهٔ اینها یک بار یا بیشتریعنی: خط عمودی بین دو قطعه انتخاب میکند؛ پرانتز قطعهها را گروه میکند تا یک شمارنده روی همهٔ آنها اثر کند.
- بخوان: a، بین دو تا چهار باریعنی: دقیقاً میگوید چند تکرار مجاز است: یک عدد یا از و تا.
- بخوان: بکاسلش d: یک رقم؛ بکاسلش w: یک حرف یا رقم یا زیرخط؛ بکاسلش s: یک فاصلهیعنی: نامهای کوتاه برای رایجترین ردهٔ نویسهها: رقمها، نویسههای واژه و فاصلهها.
- بخوان: s عضو L از r است و L از r زیرمجموعهٔ سیگما ستاره استیعنی: L از r مجموعهٔ رشتههایی است که r آنها را بهطور کامل میپذیرد؛ سیگما ستاره مجموعهٔ همهٔ رشتههای روی الفبای Σ است.
داستان: دربان
روی هر سطر بزن تا کلمههایش را ببینی.
- قاعدهٔ دربان، r: یک کد یعنی یک حرف A یا B، بعد یک رقم، و دیگر هیچ.
- کدی با یک حرف مجاز و یک رقم با قاعده جور است: عضو زبان r است.
- کدی که حرفش C است جور نیست: C در دسته نیست.
- کدی با حرف مجاز و دو رقم برگردانده میشود: لنگر پایان میگوید کد پس از یک رقم تمام شود.
- مراجعهکنندهها شکایت میکنند، پس علامت بهاضافه یک یا چند رقم را مجاز میکند. قاعدهٔ تازه را r′ بنامیم.
- حالا همان کد دو رقمی رد میشود.
- برای ساعت ملاقات، او زمانها را وارسی میکند: دو رقم، یک دونقطه، دو رقم. این قاعده را d بنامیم.
- زمانی با دو رقم ساعت رد میشود.
- زمانی با یک رقم ساعت رد نمیشود: بهجای دو رقم، یک رقم دارد.
- هرچه r بپذیرد r′ هم میپذیرد، و هر دو فقط دربارهٔ رشتههای روی الفبا داوری میکنند.
این داستان با کلمهها ۶۷۰ حرف است؛ با نمادها ۹۹.
بخوانش
چه میگوید؟
بنویسش
کدام نمادنویسی همین را میگوید؟
یک کد یعنی حرف a یا b یا c و پس از آن دقیقاً سه رقم، و دیگر هیچ.
کل رشته یا cat است یا dog.
رشتهٔ s را الگوی r میپذیرد.
کد قفل: دقیقاً دو حرف بزرگ، بعد دقیقاً دو رقم، و دیگر هیچ.
واژهٔ colour که حرف u در آن اختیاری است.
کل رشته جفت ab است که یک بار یا بیشتر تکرار شده.
بین دو تا چهار a، بعد یک b تنها، و دیگر هیچ.
الگوی r هیچ رشتهای را نمیپذیرد.
رشتهٔ s را الگوی r نمیپذیرد.
هر رشتهای را که r بپذیرد، r′ هم میپذیرد.
یک واژه: یک یا چند حرف یا رقم یا زیرخط، و دیگر هیچ.
کل رشته yes است یا no یا تهی.
بسازش
کاشیها را به ترتیب بزن. یکی از کاشیها اضافه است.
یک زمان از شبانهروز: رشته شروع میشود، دو رقم، یک دونقطه، رقم دقیقه از ۰ تا ۵، یک رقم دلخواه، رشته تمام میشود.
رشتهٔ s را r میپذیرد و هر چه r بپذیرد رشتهای روی الفباست.
کد صندلی: رشته شروع میشود، یک حرف بزرگ از A تا Z، دقیقاً سه رقم، رشته تمام میشود.
کل رشته جفت ab یک بار یا بیشتر است و بعد یک c اختیاری.
رشتهٔ s را r میپذیرد اما r′ نمیپذیرد: s در زبان r منهای زبان r′ است.
برچسب اتاق: رشته شروع میشود، یک یا چند حرف کوچک، یک فاصله، یک یا چند رقم، رشته تمام میشود.
چالشها
معماهای خلاقانهای که همهٔ نمادهای این فصل را به کار میبرند. عجله نکن؛ ساعتی در کار نیست.
1 جدول دربان
چهار قاعده (ستونها)، پنج کد (سطرها). s روی پنج کد میگردد و r روی چهار قاعده. هر جمله را در این جدول داوری کن.
| ✓ | ✓ | ✓ | ||
| ✓ | ||||
| ✓ | ||||
| ✓ | ✓ | |||
تیک یعنی کدِ s را قاعدهٔ r بهطور کامل میپذیرد.
زبان r۱ داخل زبان r۲ است، پس r۱ هرگز چیزی نمیپذیرد که r۲ ردش کند؛ عکسش درست نیست و کد دو رقمی با حرف B نشانش میدهد. و یک کد، AB، را همهٔ قاعدهها رد میکنند.
2 الگوهای شبیه هم
چهار الگو که فقط در یک کروشه یا ستاره فرق دارند. هر کدام را به چیزی که میپذیرد وصل کن (رشتهٔ کامل، ساختهشده از a و b).
روی یک سطر بزن، بعد روی معنایش.
ستاره فقط به قطعهٔ درست قبل از خودش میچسبد: یک حرف، یک جفت داخل پرانتز یا یک انتخاب داخل کروشه. پس چهار الگو یک حرف، یک جفت، یک انتخاب و دو حرف بهنوبت را تکرار میکنند.
3 شمار رقم غلط
این الگو باید سالی با دقیقاً چهار رقم، یک خطتیره و ماهی با دو رقم را بپذیرد، مثل «سال چهاررقمی، خطتیره، ماه دورقمی» (کل رشته). یکی از کاشیها غلط است. پیدایش کن و درستش کن.
روی کاشیِ غلط بزن.
سه رقم هر سال واقعی را رد میکند. علامت بهاضافه یا بازهٔ سه تا چهار سالهای کوتاهتر را هم راه میدهد؛ فقط شمارندهٔ چهار میگوید دقیقاً چهار رقم.
4 کدام رشته رد میشود؟
قاعدهٔ دروازه این است: جفت ab یا یک c، بعد حداکثر یک رقم، و دیگر هیچ. از سه رشته کدام را میپذیرد؟
پرانتز ab را یک قطعه میکند، پس رشتهای که ab و بعد یک رقم دارد جور است. رشتهای با abc بعد از ab یک c دارد که قاعده اجازه نمیدهد، و رشتهای با دو c دو قطعه دارد در حالی که فقط یکی مجاز است.
5 چند رشته رد میشود؟
قاعده فقط رشتههایی روی سه حرف a و b و c را میپذیرد. زبان این الگو چند رشته دارد؟
سه جا، و در هر جا دو انتخاب (a یا b): ۲ × ۲ × ۲ = ۸.
6 الگویی که همه را راه میدهد
زبان الگوی نقطهستاره چیست؟
نقطه هر یک نویسه است و ستاره هر تعداد از آن را، حتی صفر، میپذیرد: هر رشتهای، از جمله رشتهٔ تهی؛ یعنی Σ*.
7 وارسیگر زمان را بنویس
یک رشتهٔ ساعت از یک ساعت (۰۰ تا ۲۳)، یک دونقطه و یک دقیقه (۰۰ تا ۵۹) ساخته میشود، مثل نه و سی دقیقه. الگویی بنویس که دقیقاً همین رشتهها را بپذیرد، بعد مقایسه کن.
یک راه:
ساعت انتخاب میخواهد: ۰ یا ۱ و بعد هر رقم، یا ۲ و بعد ۰ تا ۳. دقیقه: ۰ تا ۵ و بعد هر رقم. لنگرها وارسی را روی کل رشته نگه میدارند. الگوی سستتر با دو جفت رقم ساده، ساعتهایی مثل بیستونه و نودونه دقیقه را هم میپذیرد.
8 با یک مجموعه بگو
زبان الگوی cat|dog را بهصورت یک مجموعه بنویس.
یک راه:
خط عمودی دو گزینهٔ کامل میدهد، پس زبان دقیقاً دو رشته دارد: cat و dog. (بدون لنگر، جستوجو آنها را درون رشتههای بلندتر هم پیدا میکند؛ اما در زبان رشتهٔ کامل را میشماریم.)
9 پنج پلاک، چهار قاعده
چهار قاعده برای پلاک (ستونها) و پنج پلاک (سطرها). s روی پلاکها میگردد و p روی قاعدهها. هر جمله را در این جدول داوری کن.
| ✓ | ✓ | ✓ | ||
| ✓ | ✓ | |||
| ✓ | ✓ | ✓ | ||
| ✓ | ✓ | ✓ | ||
| ✓ |
تیک یعنی پلاکِ s را قاعدهٔ p بهطور کامل میپذیرد.
یک حرف و بعد رقمها حالت خاصِ حرفها و بعد رقمهاست، پس p۲ داخل p۱ است. نویسهٔ واژه اجازه میدهد رقم اول بیاید، که p۱ آن را رد میکند: همان پلاکی که با ۱۲ شروع میشود. هر پلاک از یک قاعده میگذرد، چون بکاسلش w همه را میپذیرد.
10 قاعدههای گذرواژه
چهار وارسی برای گذرواژه (ستونها): دستکم هشت نویسه؛ فقط نویسهٔ واژه؛ دارای یک رقم؛ فقط حرف کوچک. پنج گذرواژه (سطرها). هر جمله را در این جدول داوری کن.
| ✓ | ✓ | |||
| ✓ | ✓ | ✓ | ||
| ✓ | ✓ | ✓ | ||
| ✓ | ✓ | ✓ | ||
| ✓ |
تیک یعنی گذرواژهٔ s از وارسیِ q میگذرد.
نقطه با شمارندهٔ هشت یا بیشتر، وارسی طول است. هیچ گذرواژهای هم تماماً حرف کوچک است و هم رقم دارد: این دو دسته یکدیگر را رد میکنند. فقط گذرواژهٔ دارای فاصله از وارسی نویسهٔ واژه رد میشود، و هیچ گذرواژهای از هر چهار وارسی نمیگذرد، چون قاعدهٔ فقطحرفکوچک با قاعدهٔ رقم نمیسازد.
11 چند تا a؟
پنج راه برای شمردن حرف a. هر کدام را به چیزی که مجاز میکند وصل کن (رشتهٔ کامل).
روی یک سطر بزن، بعد روی معنایش.
علامت سؤال و ستاره هر دو صفر را مجاز میکنند؛ بهاضافه و آکولاد نه. آکولاد با یک عدد یعنی دقیقاً همان تعداد؛ ویرگول در پایان، سقف را باز میگذارد.
12 یک نویسه، کدام؟
پنج الگو برای یک نویسه یا چند نویسه. هر کدام را به چیزی که میپذیرد وصل کن.
روی یک سطر بزن، بعد روی معنایش.
بازه در کروشه همان بکاسلش d است؛ هَت در داخل کروشه آن را برعکس میکند. بهاضافه تکرار میافزاید، نقطه هر محدودیتی را برمیدارد، و بکاسلش s فاصله است.
13 یک عدد، نه هیچ
این الگو باید رشتهای کامل از یک یا چند رقم را بپذیرد. همینطور که نوشته شده رشتهٔ تهی را هم میپذیرد. یکی از کاشیها غلط است. پیدایش کن و درستش کن.
روی کاشیِ غلط بزن.
ستاره صفر تکرار را مجاز میکند، پس رشتهٔ تهی هم راه پیدا میکند. بهاضافه دستکم یک رقم میخواهد. علامت سؤال حداکثر یک رقم را مجاز میکند و شمارندهٔ یک دقیقاً یک رقم را.
14 یک حرف، نه سه حرف
کد یعنی یکی از حرفهای a یا b یا c، بعد دقیقاً دو رقم، و دیگر هیچ. این الگو هر سه حرف را پشت سر هم میخواهد. یکی از کاشیها غلط است. پیدایش کن و درستش کن.
روی کاشیِ غلط بزن.
پرانتز گروه میکند: رشته باید abc داشته باشد. کروشه یک نویسه از فهرست را انتخاب میکند. c اختیاری هنوز ab را میخواهد، و بهاضافه پس از بازه چند حرف را مجاز میکند.
15 کدام برگردانده میشود؟
قاعده هر رشتهٔ کاملی از a و b را میپذیرد، حتی تهی. کدامیک از سه رشته پذیرفته نمیشود؟
ستاره صفر حرف را مجاز میکند، پس رشتهٔ تهی ε راه پیدا میکند؛ abba هم تماماً a و b است. فقط رشتهای که c دارد نویسهای بیرون از دسته دارد.
16 چند رشتهٔ دورقمی؟
قاعده رشتهای کامل از دقیقاً دو رقم را میپذیرد. زبان آن چند رشته دارد؟
دو جا، هر یک با ده رقم: ۱۰ × ۱۰ = ۱۰۰. رشتهٔ ۰۷ هم میشمارد؛ در رشتهها صفرِ آغازین مجاز است، پس ۹۰ نیست.
17 قاعدهٔ پلاک را بنویس
پلاک یعنی دو حرف بزرگ، یک خطتیره، بعد سه رقم، و دیگر هیچ. الگو را بنویس، بعد مقایسه کن.
یک راه:
بازهٔ حرفهای بزرگ با شمارندهٔ دو، خطتیره همانطور که هست، سه رقم با شمارنده یا تکتک، و لنگر در هر دو سر تا چیزی اضافه راه پیدا نکند.
18 زوج در دودویی
یک عدد دودویی دقیقاً وقتی زوج است که رقم آخرش ۰ باشد. الگویی بنویس که دقیقاً رشتههای دودویی عددهای زوج را بپذیرد، بعد مقایسه کن.
یک راه:
هر دنبالهای از ۰ و ۱، بعد یک ۰ پایانی، با لنگر در هر دو سر. ستاره میتواند تهی باشد، پس رقم تنهای ۰ پذیرفته میشود، و ۱ یا رشتهٔ تهی نه.
فصل تمام شد. این نمادها حالا مال تو هستند.
داستان خودت را بگو
برای یک دروازه (یک گذرواژه، یک پلاک، یک کد در) قاعدهای بساز و آن را الگو بنویس؛ بعد یک رشته که میپذیرد و یکی که نمیپذیرد.
فقط روی همین دستگاه نگه داشته میشود.