วงแหวนเว็บ

neizod's speculation

insufficient data for meaningful answer

เซต Cantor แบบสามส่วน

Saturday, December 31, 2022, 07:34 PM

แฟร็กทัลตัวหนึ่งที่เรียบง่าย แล้วก็ซับซ้อน แล้วก็กลับมาเรียบง่าย แต่ก็ยังไม่ทิ้งลายความซับซ้อน คงหนีไม่พ้นเซต Cantor แบบสามส่วน ซึ่งมันเป็นเซตของจำนวนจริงในช่วงปิด [0,1] ที่เขียนนิยามผ่านความสัมพันธ์เวียนเกิดได้ว่า

C0=[0,1]Cn=Cn13(23+Cn13)

โดยตัวเซต Cantor จริงๆ แล้วนั้นจะเป็นเซตปลายทางเมื่อเราดำดิ่งลงไปในความสัมพันธ์เวียนเกิดข้างต้นอย่างไม่รู้จบ ซึ่งก็คือ

C=limnCn

มองเป็นสมการอาจไม่น่าตื่นตาตื่นใจเท่าไหร่ (หรืออาจถึงขั้นเห็นไม่ชัดเลยว่ามันจะเป็นแฟร็กทัลยังไงด้วย) แต่ถ้าได้ลองวาดรูปบนเส้นจำนวนดูก็น่าจะเห็นภาพอย่างชัดเจน ว่ามันก็คือการลบกล่องสี่เหลี่ยมตรงกลางขนาดความกว้าง 1/3 ทิ้งไปเรื่อยๆ นั่นเอง

ซูมดู Cn ให้ลึกลงไป – สัดส่วนการซูมในแกนตั้งกับแกนนอนนั้นไม่เท่ากัน

มันจะมีรายละเอียดปลีกย่อยทางเทคนิคเล็กๆน้อยๆ อย่างเช่นว่าเราเริ่มด้วยกล่องสี่เหลี่ยมที่เป็นช่วงปิด (รวมค่าสุดขอบที่หัวท้าย) แต่ตอนลบช่วงตรงกลางนั้นเราลบด้วยช่วงเปิด (ไม่รวมขอบหัวท้าย) ดังนั้นหลังจากลบเสร็จ เราจะได้ช่วงปิดสองช่วงกลับมา นี่ทำให้ท้ายที่สุดแล้ว C จะกลายเป็นเซตของจำนวนจริงโดดๆ ไม่ได้เป็นเซตของช่วงที่ต่อเนื่องกันแบบ Cn อีกต่อไป

ซึ่งเราน่าจะเห็นได้ชัดผ่านการเขียนค่าสมาชิกใน C ออกมาเป็นจำนวนจุดลอยตัว ที่ทำได้กฎอันเรียบง่ายเมื่อเขียนด้วยเลขฐานสาม ที่มีข้อจำกัดว่าค่าประจำตำแหน่งหลักสามารถเป็นได้แค่ 03 หรือ 23 เท่านั้น เช่น

2/3=(0.2)31/3=(0.022222)3=(0.2)3=(0.1)3

แต่ความน่าตื่นตาตื่นใจยิ่งกว่า ก็คือแม้ว่า C จะเป็นเซตของเลขจำนวนจริงโดดๆ อย่างไรก็ดี หากจับสมาชิกสองตัว (ซ้ำกันได้) ในเซตมาบวกกันแล้ว มันสามารถสร้างจำนวนจริงกลับมาได้ทุกตัวในช่วง [0,2] เลยทีเดียว

พูดอีกอย่างก็คือ

CC=[0,2]

โดยนิยามการบวกระหว่างเซตว่า AB={a+b|aA,bB}

ซึ่งอาจพิสูจน์ให้เห็นได้สวยๆ ผ่านการอุปนัย ที่ย้อนกลับไปเอา Cn เข้ามาช่วย โดยเริ่มจาก

Cn=LRL=Cn13R=23+Cn13

แล้วหลังจากนั้น

CnCn=(LR)(LR)=(LL)(LR)(RL)(RR)=13((Cn1Cn1)(2+Cn1Cn1)(4+Cn1Cn1))=13([0,2][2,4][4,6])=[0,2]

แน่นอนว่าวาดภาพออกมาน่าจะช่วยให้เห็นคอนเซปต์ได้ง่ายกว่า(?)

บทพิสูจน์ด้วยการแปะภาพคนดัง 😜

ความเจ๋งจากแนวทางการอุปนัยเช่นนี้ คือเราสามารถประยุกต์ใช้มันเพื่อหาว่าสำหรับแต่ละ x[0,2] เราสามารถแยกมันเป็น x=a+b โดยที่ a,bC ได้อย่างไร

ซึ่งก็คือเราจะค่อยๆ แกะค่าออกมาโดยเริ่มจาก a,bC1 ว่าต้องใช้ค่าจากฝั่ง L หรือ R มาบวกกันเพื่อสร้าง x หลังจากนั้นจะบีบให้ a,b ละเอียดเล็กลงเรื่อยๆ ด้วยการพิจารณา Cn ที่สูงขึ้นไป

สรุปเป็นอัลกอริทึมโดยเริ่มที่ x1x ได้ประมาณนี้

  1. พิจารณาว่า xi อยู่ในช่วงใด แล้วทดค่าเก็บไว้ในรูปของ AiBi
    • หาก xi[0,2/3) ทดค่า LL
    • หาก xi[2/3,4/3) ทดค่า LR
    • หาก xi[4/3,2) ทดค่า RR
  2. คำนวณ xi+13xi(mod2)
  3. เพิ่มค่า i แล้วย้อนกลับไปทำข้อ 1. ไล่มาเรื่อยๆ จนกว่าจะเหนื่อย

เหนื่อยแล้วจะได้ลิสต์ [A1B1,A2B2,A3B3,] กลับมา ซึ่งเอาไปสร้าง x=a+b ได้เป็น

a=A1A2A3b=B1B2B3

หลังจากนั้นแปลงเป็นจำนวนจุดลอยตัวในฐานสาม โดยให้ L=0 และ R=2 ก็จะได้คำตอบที่ต้องการ

ตัวอย่างเช่น x=1/2 เราแกะค่าออกมาได้ดังนี้

i1234xi1/23/21/23/2AiBiLLRRLLRR

ดังนั้นจึงหา x=a+b ได้เป็น

a=LRLR=(0.0202)3=(0.02)3=1/4b=LRLR=(0.0202)3=(0.02)3=1/4

หมายเหตุว่าอัลกอริทึมดังกล่าวไม่จำเป็นต้องให้คำตอบเพียงแค่วิธีเดียวที่เป็นไปได้ ลองดูตัวอย่างเมื่อต้องการ x=11/27

i12345xi11/2711/95/311AiBiLLLRRRLRLR

ที่อาจให้คำตอบแรกอันเรียบง่ายกลับมาว่า

a=LLRLLL=(0.002)3=2/27b=LRRRRR=(0.0222)3=(0.02)3=(0.1)3=1/3

แต่เพราะการบวกมีสมบัติสลับที่ ดังนั้นค่าที่จดไว้ว่า LR มันไม่ได้หมายถึงแค่ Ai=L,Bi=R เพียงเท่านั้น แต่ยังสามารถหมายถึง Ai=R,Bi=L ได้อีกด้วย และทำให้เราได้คำตอบอื่นๆ อีกมากมาย เช่น

a=LRRLLL=(0.022)3=8/27b=LLRRRR=(0.0022)3=(0.002)3=(0.01)3=1/9

หรือแม้กระทั่ง

a=LLRLRLRLR=(0.002)3=1/12b=LRRRLRLRL=(0.02220)3=35/108

ซ.ต.พ.

neizod

author