สำหรับการนับวัตถุ combinatorial หลายชนิดเช่นต้นไม้ในกรณีนี้มีเครื่องมือทางคณิตศาสตร์ที่มีประสิทธิภาพ (วิธีสัญลักษณ์) ที่ช่วยให้คุณได้รับ mechnically นับเช่นนั้นจากคำอธิบายวิธีการสร้างวัตถุ combinatorial สิ่งนี้เกี่ยวข้องกับการสร้างฟังก์ชั่น
การอ้างอิงที่ยอดเยี่ยมคือAnalytic Combinatoricsโดย Philipe Flajolet และ Robert Sedgewick มันสามารถใช้ได้จากลิงค์ด้านบน
การสร้างฟังก์ชั่นหนังสือของเฮอร์เบิร์ตวิลฟ์ตอนปลายเป็นอีกแหล่งที่มาฟรี
และแน่นอนว่าคณิตศาสตร์คณิตศาสตร์โดย GKP เป็นขุมทรัพย์
สำหรับต้นไม้ไบนารีมันจะเป็นดังนี้: ก่อนอื่นคุณต้องมีคำจำกัดความที่ชัดเจนของต้นไม้
ต้นไม้ไบนารีเป็นต้นไม้ที่ถูกรูทซึ่งโหนดที่ไม่ใช่ใบไม้ทุกใบมีระดับ 2 อย่างแน่นอน
ต่อไปเราต้องยอมรับสิ่งที่เราต้องการเรียกขนาดของต้นไม้
ด้านซ้ายของโหนดทั้งหมดเท่ากัน ตรงกลางเราแยกความแตกต่างของใบและไม่ใช่ใบ ทางด้านขวาเรามีต้นไม้ไบนารีตัดแต่งกิ่งที่ใบถูกลบออก ขอให้สังเกตว่ามันมีสาขา unary สองประเภท (ซ้ายและขวา)!
ตอนนี้เราต้องขอคำอธิบายว่าวัตถุ combinatorial เหล่านี้ถูกสร้างขึ้นได้อย่างไร ในกรณีของต้นไม้ไบนารีการสลายตัวแบบเรียกซ้ำเป็นไปได้
ให้เป็นเซตของต้นไม้ไบนารีทั้งหมดของประเภทแรกจากนั้นเราก็มีสัญลักษณ์:
A
มันอ่านเป็น:“ วัตถุของคลาสของต้นไม้ไบนารีเป็นโหนดหรือโหนดตามด้วยต้นไม้ไบนารีสองต้น” สิ่งนี้สามารถเขียนเป็นสมการของเซต:
A={∙}∪({∙}×A×A)
โดยการแนะนำฟังก์ชั่นการสร้างที่แจกแจงคลาสของออบเจ็กต์ combinatorial นี้เราสามารถแปลสมการที่กำหนดเป็นสมการที่เกี่ยวข้องกับฟังก์ชั่นการสร้างA(z)
A(z)=z+zA2(z)
ทางเลือกของเราในการรักษาอย่างเท่าเทียมกันทุกโหนดและการใช้จำนวนโหนดในต้นไม้ที่เป็นความคิดของขนาดของมันจะแสดงโดย“เครื่องหมาย” โหนดกับตัวแปรZz
ตอนนี้เราสามารถแก้สมการกำลังสองสำหรับและรับตามปกติสองวิธีแก้ปัญหารูปแบบปิดที่ชัดเจนของฟังก์ชันการสร้าง:zA2(z)−A(z)+z=0A(z)
A(z)=1±1−4z2−−−−−−√2z
ตอนนี้เราต้องการทฤษฎีบททวินาม (ทฤษฎีทั่วไป) ของนิวตัน:
(1+x)a=∑k=0∞(ak)xk
ด้วยและเพื่อขยายรูปแบบปิดของฟังก์ชั่นการสร้างกลับเข้าไปในชุดพลังงาน เราทำเช่นนี้เพราะค่าสัมประสิทธิ์ที่เป็นเพียงจำนวนของวัตถุ combinatorial ของขนาดเขียนมักจะเป็น(z) แต่ที่นี่ความคิดของ“ขนาด” ของกองกำลังต้นไม้เราจะมองหาค่าสัมประสิทธิ์ที่เรา1} หลังจากเล่นกลกับทวินามและแฟคทอเรียลนิดหน่อยเราก็ได้a=1/2x=−4z2znn[zn]A(z)z2n+1
[z2n+1]A(z)=1n+1(2nn).
ถ้าเราเริ่มด้วยความคิดที่สองของขนาดการย่อยสลายแบบเรียกซ้ำคือ:
เราได้รับการเรียนที่แตกต่างกันของวัตถุ combinatorial{B} มันอ่าน:“ วัตถุของคลาสของต้นไม้ไบนารีเป็นแบบ leaf หรือโหนดแบบ interal ตามด้วยต้นไม้แบบไบนารีสองต้น”B
เราสามารถใช้วิธีเดียวกันและเปลี่ยนเป็น(z) เวลานี้ตัวแปรเท่านั้นที่ทำเครื่องหมายโหนดภายในไม่ใช่ใบไม้เนื่องจากคำนิยาม“ ขนาด” แตกต่างกันที่นี่ เราได้รับฟังก์ชั่นการสร้างที่แตกต่างเช่นกัน:B={□}∪({∙}×B×B)B=1+zB2(z)z
B(z)=1−1−4z−−−−−√2z
การแยกค่าสัมประสิทธิ์ผลผลิต
[zn]B(z)=1n+1(2nn).
Classและเห็นด้วยกับการนับเพราะต้นไม้ไบนารีที่มีโหนดภายในมีใบทำให้มีโหนดทั้งหมดABnn+12n+1
ในกรณีสุดท้ายเราต้องทำงานหนักขึ้นเล็กน้อย:
ซึ่งเป็นคำอธิบายของการลองไบนารีที่ตัดทิ้งแบบไม่ว่างเปล่า เราขยายสิ่งนี้เป็น
CD={∙}∪({∙}×C)∪({∙}×C)∪({∙}×C×C)={ϵ}∪({∙}×C×C)
และเขียนใหม่ด้วยฟังก์ชันสร้าง
C(z)D(z)=z+2zC(z)+zC2(z)=1+zC2(z)
แก้สมการกำลังสอง
C(z)D(z)=1−2z−1−4z−−−−−√2z=1−1−4z−−−−−√2z
และรับอีกครั้ง
[zn]C(z)=1n+1(2nn)n≥1[zn]D(z)=1n+1(2nn)n≥0
โปรดทราบว่าฟังก์ชั่นการสร้างคาตาลันคือ
E(z)=1−1−4z−−−−−√2
มันระบุระดับของต้นไม้ทั่วไป นั่นคือต้นไม้ที่ไม่มีข้อ จำกัด เกี่ยวกับระดับโหนด
E={∙}×SEQ(E)
มันอ่านว่า:“ วัตถุของคลาสของต้นไม้ทั่วไปคือโหนดตามด้วยลำดับว่างเปล่าที่เป็นไปได้ของต้นไม้ทั่วไป”
E(z)=z1−E(z)
ด้วยสูตรผกผัน Lagrange-Bürmannที่เราได้รับ
[zn]E(z)=1n+1(2nn)
ดังนั้นเราจึงพิสูจน์ได้ว่ามีต้นไม้ทั่วไปมากเท่ากับต้นไม้ไบนารี ไม่น่าแปลกใจที่มี bijection ระหว่างต้นไม้ทั่วไปและไบนารี bijection เป็นที่รู้จักกันในนามหมุนจดหมาย (อธิบายในตอนท้ายของบทความที่เชื่อมโยง) ที่ช่วยให้เราสองเก็บต้นไม้ทั่วไปทุกต้นเป็นต้นไม้ไบนารี
โปรดทราบว่าถ้าเราไม่แยกพี่น้องซ้ายและขวาในคลาสเราจะได้คลาสของต้นไม้อีก :CT
ต้นไม้ไบนารีนารี
พวกเขามีหน้าที่สร้างเกินไป
อย่างไรก็ตามค่าสัมประสิทธิ์ของพวกมันนั้นแตกต่างกัน คุณได้รับหมายเลข Motzkin
T={∙}×SEQ≤2(T)
T(z)=1−z−1−2z−3z2−−−−−−−−−−√2z
[zn]T(z)=1n∑k(nk)(n−kk−1).
โอ้และถ้าคุณไม่ชอบการสร้างฟังก์ชั่นก็มีหลักฐานอีกมากมายเช่นกัน ดูที่นี่มีหนึ่งที่คุณสามารถใช้การเข้ารหัสของต้นไม้ไบนารีเป็นคำ Dyck และและได้รับการเกิดซ้ำจากคำจำกัดความซ้ำของพวกเขา จากนั้นการแก้ปัญหาการเกิดซ้ำนั้นก็ให้คำตอบด้วย อย่างไรก็ตามวิธีการเชิงสัญลักษณ์ช่วยให้คุณประหยัดไม่ให้เกิดขึ้นอีกในครั้งแรกเนื่องจากมันทำงานได้โดยตรงกับพิมพ์เขียวของวัตถุ combinatorial