แฟร็กทัลที่แขวนอยู่บนผนังของฉันมา 12 ปี
(chriskw.xyz)- ตอนอยู่มัธยมต้น ผู้เขียนวาดแพตเทิร์นการคัดลอกสี่เหลี่ยมจัตุรัสบนกระดาษกราฟแล้วติดไว้บนผนังนาน 12 ปี ก่อนจะนำมาวิเคราะห์เป็นแฟร็กทัลชื่อ wallflower และเชื่อมโยงไปถึง L-System, พีชคณิตเชิงเส้น, ระบบจำนวน และการวางนัยทั่วไปในมิติสูง
- เริ่มจากสี่เหลี่ยมจัตุรัสหนึ่งรูป แล้วคัดลอกรูปปัจจุบันไปไว้ด้านบน ล่าง ซ้าย และขวา จากนั้นในขั้นถัดไปคัดลอกไปในทิศทางที่หมุนไปประมาณ 27 องศา กระบวนการนี้สร้างแฟร็กทัลที่เติมเต็มระนาบได้
- กฎ L-System แบบง่าย
R → RLR,L → RLLสร้างเค้าโครงที่คล้ายกัน แต่ไม่ใช่รูปเดียวกัน โดยรูปแบบที่พบได้บ่อยกว่าถูกบันทึกไว้ในชื่อ Quadratic von Koch island, Quadratic Flake, Minkowski Sausage เป็นต้น - wallflower สามารถตีความเป็น ระบบจำนวนที่ใช้เมทริกซ์เป็นฐาน โดยใช้เมทริกซ์ (M=\begin{bmatrix}-2&1\1&2\end{bmatrix}) เป็นฐาน และใช้เวกเตอร์ทิศทางเป็นตัวเลข โดย (\det(M)=-5) ทำให้ทิศทางกลับด้านในทุกรอบการทำซ้ำ
- การวางนัยทั่วไปเป็น 3D ดูขัดตาเพราะปัญหาความสมมาตรและการซ้อนทับ ส่วนใน 4D สามารถสร้าง orthotopeflower ด้วยเมทริกซ์ที่ตรงเงื่อนไขได้ แต่ภายใต้ข้อจำกัดเดียวกันดูเหมือนว่าจะเป็นไปได้เฉพาะ 1D, 2D และ 4D
จุดเริ่มต้นของแฟร็กทัลที่ติดอยู่บนผนัง
- ตอนมัธยมต้น ผู้เขียนเคยขีดเขียนรูปที่รวมและคัดลอกสี่เหลี่ยมจัตุรัสซ้ำ ๆ บนกระดาษกราฟ แล้วติดไว้บนผนังเพื่อวิเคราะห์ภายหลัง
- เนื่องจากมีโครงสร้างแผ่ออกเหมือนกลีบดอกไม้ และมีเรื่องราวที่ติดอยู่บนผนังมานาน จึงเรียกแฟร็กทัลนี้ว่า wallflower
- ขั้นตอนที่วาดเดิมมีดังนี้
- เริ่มจากสี่เหลี่ยมจัตุรัสหนึ่งรูป
- วางสำเนาของสถานะปัจจุบัน 4 ชุดไว้ทางซ้าย ขวา บน และล่าง
- จากนั้นวางสำเนาของสถานะปัจจุบัน 4 ชุดในสี่ทิศเดียวกัน แต่เอียงไปตามเข็มนาฬิกาประมาณ 27 องศา
- ทำซ้ำสองวิธีการวางนี้สลับกันไปจนกระดาษกราฟเต็ม
- กระบวนการนี้ หากทำซ้ำเหมือน Gosper Curve จะสามารถครอบคลุมบริเวณใด ๆ บนระนาบได้ และสถานะระหว่างทางแต่ละขั้นก็สามารถปูกระเบื้องระนาบได้เช่นกัน
เค้าโครงที่เกือบเหมือน L-System แต่ไม่เหมือนกัน
- ราว 1 ปีก่อน ผู้เขียนพบว่าเค้าโครงนี้สามารถสร้างด้วย L-System ได้
- กฎที่ใช้ประกอบด้วยการหมุนขวา 90 องศา (R) และหมุนซ้าย (L) เท่านั้น
- สตริงเริ่มต้นคือ (RRRR)
- ในแต่ละรอบ แทนที่ (R \rightarrow RLR), (L \rightarrow RLL)
- ช่วงไม่กี่ขั้นแรกดูเหมือนเค้าโครงเดียวกับ wallflower แต่เมื่อทำแอนิเมชันจึงยืนยันได้ว่าตั้งแต่ การทำซ้ำครั้งที่ 4 เป็นต้นไป สองวิธีนี้เริ่มคลาดกัน
- ความแตกต่างมาจากวิธีวางสำเนา
- วิธี “drag and drop” วางสำเนาของการทำซ้ำครั้งที่ 3 ไว้ด้านบน ล่าง ซ้าย และขวาโดยตรงจากจุดศูนย์กลาง
- วิธี L-System วางสำเนาในทิศทแยง
- รูปที่ L-System สร้างขึ้นมีการบันทึกไว้แล้วในหลายแห่ง
- “Quadratic von Koch island” ใน List of fractals
- “Quadratic Flake” ใน Koch snowflake
- Minkowski Sausage
- Mandelbrot’s Quartet ของ Jeffrey Ventrella
- สำหรับรูปแปรผันแบบ drag and drop ที่ติดอยู่บนผนัง ไม่พบรูปแบบเดียวกันจากการค้นรูป Google และการไล่ดู Wikipedia
- ผู้เขียนพบกฎที่เข้ากับ wallflower คือ (L \rightarrow RLR), (R \rightarrow LLR) แต่กฎนี้ทำให้เกิดผลที่ทิศทางการวาดเค้าโครง กลับด้าน ในแต่ละขั้น
วิธีนับแฟร็กทัล
- wallflower ขยายออกจากจุดกำเนิด จึงมองได้ว่าเป็นวิธีจับคู่จำนวนธรรมชาติกับพิกัดบนกริด
- ให้สี่เหลี่ยมจัตุรัสตรงกลางเป็น 0 แล้วกำหนดหมายเลขให้สี่เหลี่ยมรอบ ๆ 4 รูปที่เพิ่มเข้ามาในการทำซ้ำครั้งแรกเป็น 1, 2, 3, 4 ตามเข็มนาฬิกา
- ในการทำซ้ำครั้งถัดไป อาจไล่หมายเลขจากบนลงล่าง ซ้ายไปขวาได้ แต่วิธีนี้ไม่เข้ากับโครงสร้างแบบเรียกซ้ำมากนัก
- หากใช้ข้อเท็จจริงว่ากลีบดอกแต่ละกลีบเป็นสำเนาของการทำซ้ำก่อนหน้า จะสามารถนำเลขหมายกลับมาใช้ซ้ำได้ทั้งภายในกลีบและระหว่างกลีบ โดยนับ จากศูนย์กลางออกไปด้านนอก
- ในการกำหนดหมายเลขแบบนี้ พหุคูณของ 5, (5n+1), พหุคูณของ 25 เป็นต้น จะก่อเป็นแพตเทิร์นกริดเอียง
- เหตุผลคือจำนวนสี่เหลี่ยมจัตุรัสในแต่ละรอบเพิ่มเป็น (1, 5, 25, 125, ...)
- แต่ละรอบเพิ่มสำเนา 4 ชุดให้กับสถานะก่อนหน้า 1 ชุด รวมเป็น 5 เท่า
- ดังนั้นกำลังของ 5 และการเขียนในฐาน 5 จึงเข้ากับโครงสร้างนี้ได้ดี
ระบบจำนวนที่ใช้เมทริกซ์เป็นฐาน
- หากแยกจำนวนหนึ่งออกเหมือนค่าประจำหลักในฐาน 5 ก็สามารถหาตำแหน่งบนกริดแฟร็กทัลได้โดยบวกเวกเตอร์ที่สอดคล้องกับค่าประจำหลักแต่ละตัว
- ตัวอย่างเช่น 231 มองเป็น (200 + 30 + 1) แล้วนำเวกเตอร์ตำแหน่งของแต่ละส่วนมาบวกกันเพื่อหาตำแหน่งของ 231
- ค่าหลักเดียวถูกนิยามเป็นเวกเตอร์ทิศทาง
- (\vec{0}=(0,0))
- (\vec{1}=(1,0))
- (\vec{2}=(0,1))
- (\vec{3}=(-1,0))
- (\vec{4}=(0,-1))
- ค่าประจำหลักในรูป (10^n) เดิมทีเขียนเป็นเงื่อนไขแยกตามคู่/คี่ แต่หากใช้เมทริกซ์หนึ่งตัวซ้ำ ๆ ก็สามารถคำนวณได้โดยไม่ต้องมีเงื่อนไข
- เมทริกซ์ที่ใช้มีดังนี้
[ M=\begin{bmatrix} -2 & 1 \ 1 & 2 \end{bmatrix} ]
- เมทริกซ์นี้ทำให้ (M^2=5I) จึงจัดสเกลให้ใหญ่ขึ้น 5 เท่าทุกสองขั้น
- ดังนั้นจึงเขียนได้ดังนี้
[ \overrightarrow{(10^n)}=M^n\vec{1} ]
- โครงสร้างนี้มองได้ว่าเป็นระบบจำนวนที่ใช้ เมทริกซ์เป็นฐาน และใช้ เวกเตอร์เป็นตัวเลข แทนระบบฐานทั่วไปที่ใช้ฐานสเกลาร์และตัวเลขสเกลาร์
determinant ที่แยกแฟร็กทัลทั้งสองออกจากกัน
- ดีเทอร์มิแนนต์ของ (M) คือ (\det(M)=-5) และเพราะดีเทอร์มิแนนต์เป็นลบ ทิศทางของพื้นที่จึงกลับด้านในทุกรอบการทำซ้ำ
- การกลับด้านนี้ทำให้ตำแหน่งของค่าอย่าง 20 และ 40 ดูเหมือนสลับกันเมื่อเทียบกับการกำหนดหมายเลขเดิม
- หากต้องการหลีกเลี่ยงการกลับด้าน สามารถเลือกเมทริกซ์ที่มีดีเทอร์มิแนนต์เป็นบวกได้
[ M'=\begin{bmatrix} 2 & 1 \ -1 & 2 \end{bmatrix} ]
[ \det(M')=5 ]
- (M') ไม่กลับทิศทาง แต่หมุนเวกเตอร์ตัวเลขตามเข็มนาฬิกาต่อเนื่อง และเมื่อใช้เมทริกซ์นี้เป็นฐาน จะได้ เวอร์ชัน L-System ที่กล่าวไปก่อนหน้า
- ความแตกต่างของแฟร็กทัลทั้งสองคือ
- wallflower มาจาก (M) ที่มี (\det(M)=-5)
- กลุ่ม quadratic flake ที่พบบ่อยกว่า มาจาก (M') ที่มี (\det(M')=5)
- ค่าสัมบูรณ์ของดีเทอร์มิแนนต์ 5 สอดคล้องกับโครงสร้างที่ขนาดแฟร็กทัลเพิ่มขึ้น 5 เท่าในแต่ละรอบ
- หากดีเทอร์มิแนนต์ใหญ่กว่านี้ สำเนาจะโตเร็วเกินไปจนเกิดช่องว่าง
- หากดีเทอร์มิแนนต์เล็กกว่านี้ สำเนาจะโตช้าเกินไปจนการทำซ้ำซ้อนทับกัน
- มุมประมาณ 27 องศา เกี่ยวข้องกับเวกเตอร์ (\langle1,2\rangle) ที่เกิดจากเงื่อนไขพิกัดจำนวนเต็ม ดีเทอร์มิแนนต์ (\pm5) และความยาวเวกเตอร์ (\sqrt5)
- มุมของเวกเตอร์นี้คือ (\arctan(2/1)\approx63.43^\circ)
- เมื่อเทียบกับแกน y จะห่างประมาณ 27 องศา
กฎการบวกและการทด
- การบวกเวกเตอร์เข้ากับค่าประจำหลักที่ขยายแล้วได้ดี แต่ทำงานต่างจากการบวกตัวเลขทั่วไป เช่น (\vec{2}+\vec{2}\neq\vec{4})
- ตัวเลข 1 ถึง 4 จึงควรมองเป็นทิศทางบน ขวา ล่าง ซ้าย มากกว่าเป็นตัวเลขจริง ๆ
- ทิศทางตรงข้ามหักล้างกัน
- (\vec{1}+\vec{3}=\vec{0})
- (\vec{2}+\vec{4}=\vec{0})
- เมื่อนำชุดของเวกเตอร์หน่วยมาทำเป็นตาราง ผลลัพธ์การบวกบางส่วนจะกลายเป็นค่าสองหลัก
- ด้วยเหตุนี้ เวลาบวกจำนวนมาก ๆ ต้องจัดการ การทด เหมือนการบวกยาวทั่วไป
- ตัวอย่างเช่น เมื่อคำนวณ (\vec{22}+\vec{1}) ผลลัพธ์จะออกมาเป็น 133 เพราะกฎ (\vec{2}+\vec{1}=\vec{13})
- ผู้เขียนไม่ได้พิสูจน์ว่าระบบการบวกนี้ทำงานได้โดยทั่วไปหรือไม่ และทิ้งไว้ให้ผู้อ่านตรวจสอบ
ระบบจำนวนและงานวิจัยที่เกี่ยวข้อง
- ระบบจำนวนของแฟร็กทัล wallflower เชื่อมโยงกับระบบฐานอื่น ๆ ที่ไม่ได้ใช้เฉพาะจำนวนธรรมชาติเป็นตัวเลข
- Balanced Ternary ใช้ (-1,0,1) เป็นตัวเลข และใช้ 3 เป็นฐาน ส่วน wallflower สามารถมองเป็น อนาล็อกสองมิติ ของระบบนี้ที่เพิ่มตัวเลขทิศทางบวก/ลบของแกน y เข้าไป
- generalized balanced ternary ถูกวางนัยทั่วไปสู่มิติใด ๆ ด้วยกริดเพอร์มูโตฮีดรอน และใน 2 มิติจะกลายเป็นกริดหกเหลี่ยม
- Quater-imaginary Base เป็นระบบที่ใช้ (2i) เป็นฐาน และใช้ 0, 1, 2, 3 เป็นตัวเลข
- (M') สามารถมองเป็นฐานที่สอดคล้องกับจำนวนเชิงซ้อน (2+i) และบทความ Balanced base 2+i (and some gratuitous fractals) ของ Timothy James McKenzie Makarios กล่าวถึงแนวคิดนี้
- ผู้เขียนพบแหล่งข้อมูลที่เกี่ยวข้องดังนี้
- Project BinSys: โปรเจกต์ค้นหาเมทริกซ์ฐานที่มีดีเทอร์มิแนนต์เป็น 2
- Replicating Tesselations ของ Andrew Vince: อธิบายแฟร็กทัล การปูกระเบื้อง พีชคณิตเชิงเส้น และระบบจำนวนอย่างเข้มงวดขึ้น และขยายจาก (\mathbb{Z}^2) ไปสู่กริดทั่วไป
ขยายไปสู่ 3D และ 4D
- ใน 3D ผู้เขียนคิดถึงโครงสร้าง “3D plus” ที่เริ่มจากลูกบาศก์หนึ่งก้อนแล้วคัดลอกไปในหกทิศทาง
- เงื่อนไขที่ต้องการสำหรับเมทริกซ์ 3x3 มีดังนี้
- สมาชิกทั้งหมดต้องเป็นจำนวนเต็ม
- เวกเตอร์แต่ละคอลัมน์ต้องมีระยะ Hamming จากจุดกำเนิดเท่ากับ 3
- เพราะแต่ละรอบเพิ่มสำเนา 6 ชุด ขนาดจึงต้องเพิ่มเป็น 7 เท่า และดีเทอร์มิแนนต์ต้องเป็น (\pm7)
- ผู้เขียนพบเมทริกซ์ 3x3 ที่ตรงเงื่อนไข แต่ผลการแสดงภาพออกมาเป็นรูปที่เหมือนถูก บีบอัด และมีปัญหาที่การทำซ้ำก่อนหน้ายังโผล่ให้เห็น
- เมื่อเพิ่ม 3D plus อีกสองชุด สามารถเติมส่วนที่ว่างได้ และจุดศูนย์กลาง 8 จุดเรียงตัวเหมือนจุดยอดของลูกบาศก์ที่บิดเบี้ยว
- เพื่อให้การจัดวางสมมาตรกว่านี้ เงื่อนไขที่เวกเตอร์แต่ละคอลัมน์ตั้งฉากกันและมีขนาดเท่ากันอาจเพียงพอ แต่ใน 3D ดูเหมือนเป็นไปไม่ได้เพราะไม่เข้ากับเงื่อนไขพิกัดจำนวนเต็ม
- ใน 4D เงื่อนไขเข้ากันได้พอดี
- ผลรวมกำลังสองขององค์ประกอบในเวกเตอร์แต่ละคอลัมน์ต้องเป็น 3
- สามารถกำหนดให้องค์ประกอบ 3 ตัวจากทั้งหมด 4 ตัวเป็น (\pm1) และอีกหนึ่งตัวเป็น 0 ได้
- สร้างแฟร็กทัล 4D ด้วยเมทริกซ์ 4x4 ต่อไปนี้
[ \begin{bmatrix} 0 & -1 & -1 & -1 \ 1 & 0 & -1 & 1 \ 1 & 1 & 0 & -1 \ 1 & -1 & 1 & 0 \end{bmatrix} ]
- แฟร็กทัล 4D นี้เรียกว่า orthotopeflower
- การแสดงภาพ 4D ทำโดยดูเป็นสไลซ์ 3D ที่ตรึงค่า (w) หรือแสดงหน้าต่างสี่มิติด้วยการวางกริด 7x7 ซ้อนอยู่ภายในกริด 7x7
- ในหน้าต่างมุมมอง 31x31x31x31 ดูเหมือนขยายออกไปด้านนอกโดยไม่มีการบีบอัดมากเกินไปแบบที่เห็นใน 3D
มิติที่สูงขึ้นและการหักมุมสุดท้าย
- เมื่อขยายข้อจำกัดเดียวกันไปยังมิติสูงขึ้น ดูเหมือนว่ามิติที่ตรงเงื่อนไขจะมีเพียง 1D, 2D และ 4D
- 1D คือ balanced ternary
- 2D คือ wallflower หรือ quadratic flake
- 4D คือ orthotopeflower
- เมทริกซ์ที่เลือกใน 4D เข้ารหัสควอเทอร์เนียน (i+j+k) และจากสิ่งนี้สามารถคิดถึง balanced nonary quaternion base ที่มีฐานเป็น (i+j+k) และมีตัวเลขเป็น (0,\pm1,\pm i,\pm j,\pm k)
- ผู้เขียนยังไม่แน่ใจว่าระบบควอเทอร์เนียนนี้ใช้งานได้จริงหรือไม่ จึงฝากไว้ให้ตัวเองในอนาคตที่รู้คณิตศาสตร์มากกว่านี้
- ความพยายามที่จะจุดความสนใจด้านคณิตศาสตร์และการเขียนโปรแกรมขึ้นมาใหม่หลังภาวะหมดไฟ ได้เปลี่ยนภาพขีดเขียนเก่า ๆ ให้กลายเป็นการสำรวจที่เชื่อมจากแฟร็กทัล ระบบจำนวน พีชคณิตเชิงเส้น ไปจนถึงมิติสูง
- หักมุมสุดท้ายคือ ภาพประกอบในบทความไม่ตรงกับแฟร็กทัลจริงบนผนังที่เห็นในภาพตัวอย่าง
- การทำซ้ำครั้งที่ 4 ของของจริงบนผนังคัดลอกไปใน ทิศตรงข้าม กับมุมประมาณ 27 องศา
- ตอนนั้นผู้เขียนคิดว่าหากเอียงไปทิศเดิมต่อไปเรื่อย ๆ จะหลุดออกจากแกน จึงพยายามแก้ชดเชย แต่โครงสร้างของ (M) นั้นชดเชยตัวเองอยู่แล้วในแต่ละขั้น
- ปิดท้ายด้วยข้อสังเกตว่า Donald Knuth ก็เคยเลี้ยว ผิดทาง ตอนติดแฟร็กทัลบนผนังเช่นกัน
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
เป็นบทความที่มีมุมมองลึกซึ้งและใส่ใจมาก และ การแสดงภาพ 3D ดีเป็นพิเศษ
ทำให้นึกถึงสิ่งที่เคยทำตอนลองปรับแต่ง recursive decimation เพื่อสร้างเอฟเฟกต์คล้ายแฟร็กทัลจากภาพใด ๆ
ลองเล่นได้ที่นี่: https://jsfiddle.net/nicobrenner/a1t869qf/
กด
Blursort 2x2สองสามครั้งเพื่อสร้างเฟรม แล้วกดAnimateก็พอ สามารถคัดลอก/วางรูปภาพได้ด้วย และทั้งหมดทำงานในเบราว์เซอร์โดยไม่มีแบ็กเอนด์ ไม่แนะนำให้ใช้บนมือถือเหมือนผมจะติดใจเรื่องนี้จนทำรูปแบบเติม “wallflower” ด้วย L-system ขึ้นมา
https://onlinetools.com/math/l-system-generator?draw=AB&skip...
พอมาคิดอีกที อันนี้น่าจะสร้างแฟร็กทัลอีกแบบหนึ่ง แต่ก็ไม่แน่ใจ
https://onlinetools.com/math/l-system-generator?draw=ABCD&sk...
อันก่อนหน้านี้เติม Koch island
ตอนแรกคิดว่าจะเป็นบทความอ่านเบา ๆ แต่ลึกกว่าที่คิด เลยต้องอ่านแบบกวาด ๆ ไปบางส่วนเพราะต้องทำงาน
ตั้งใจว่าจะกลับมาเล่นโน่นนี่ทีหลัง เป็นบทความที่ทำออกมาได้ดีจริง ๆ
เป็นบทความที่ลึกและหนักกว่าที่คาดไว้มาก รู้สึกได้ถึง ความทุ่มเท
อยากถามผู้เขียนว่า ตอนนี้จะแนะนำให้แขวนอะไรไว้บนผนังห้องลูกดี
ผมใส่ย่อหน้าเกี่ยวกับภาวะหมดไฟไว้เล็กน้อยช่วงท้ายบทความ ในกรณีของผม รากของปัญหาคือการสูญเสียความหลงใหลและความอยากรู้อยากเห็นที่เคยมีต่อคณิตศาสตร์และการเขียนโปรแกรม และระหว่างเขียนบทความนี้ ผมก็ได้กลับไปสัมผัสความรู้สึกพิศวงแบบเด็ก ๆ ที่เมื่อก่อนเคยรู้สึกได้ง่ายอีกครั้ง
ลองตรวจเลขคณิตของจำนวนสองหลักสองตัวแล้ว มันใช้งานได้จริง
คิดไว้ว่า
41+14จะได้12เพราะการบวกช่องทางขวาสองช่องกับช่องด้านบนสองช่อง จะได้ช่องทางขวาสองช่องกับช่องด้านบนสองช่องในการบวกยาวด้านล่าง ใช้
=เมื่อแสดงว่าเทียบเท่ากัน เช่น การสลับพจน์(1+2=2+1), การแยกจำนวน(41=40+1), การบวกเลขหลักเดียว(1+4=22); ใช้->เมื่ออัลกอริทึมให้ค่าหลัก และใช้<เมื่อย้ายไปคอลัมน์ถัดไป41+14 = (40+1)+(10+4) = 40 + 10 + (1+4) = 40 + 10 + 22 -> 1s digit = 2 < 4 + 1 + 2 = 22 + 2 = 20 + 2 + 2 = 20 + 41 -> 10s digit = 1 < 2 + 4 = 0 -> done == 12ในบทความมี ระบบฐาน สองแบบที่ต่างกัน แบบหนึ่งคือ
10, 20, 30, 40เรียงตามเข็มนาฬิกา และอีกแบบเรียงทวนเข็มนาฬิกา ทั้งสองแบบมี1, 2, 3, 4เรียงตามเข็มนาฬิกา การบวกข้างบนอิงตามระบบที่สองที่ใช้ในตารางบวก คือระบบที่หลักสิบเรียงทวนเข็มนาฬิกาในอีกระบบหนึ่งก็ทำงานได้เช่นกัน
14+21ควรได้1214+21 =10+20+42 ->2 <1+2+4 =13+4 =10+3+4 =10+31 ->1 <1+3 =0 ==12สงสัยว่าคิดระบบเลขแบบ “middle out” ขึ้นมาได้อย่างไร
เวลานั่งแก้โจทย์คณิตศาสตร์คนเดียว ผมแทบไม่เคยคิดไอเดียที่เหมือนได้แรงบันดาลใจแบบนี้ออกเลย
ผมคิดเยอะมากด้วยว่าจะวาดแฟร็กทัลนี้ด้วยโปรแกรมอย่างไร วิธีที่เป็นธรรมชาติคือเริ่มจากตรงกลางแล้วขยายออกไปด้านนอก
มีเกร็ดเล่าว่า Richard Feynman จะเก็บปัญหาแบบสุ่มไว้หลังฉากในหัวราวสิบกว่าข้อ แล้วค่อย ๆ เดินหน้าทีละนิดเมื่อเห็นความเชื่อมโยง และพอแก้ข้อหนึ่งได้ในที่สุด ผู้คนก็คิดว่าเขาคิดออกสด ๆ ราวกับใช้เวทมนตร์ ครั้งนี้ก็คล้ายกันนิดหน่อย แต่ผมห่างไกลจากระดับนั้นมาก และทำได้แค่กับปัญหาเดียว ไม่ใช่สิบกว่าข้อ
ที่ทำงานเก่าของผมเคยแขวนสิ่งนี้เป็น งานพิมพ์ขนาดใหญ่ ไว้บนผนัง
https://raw.githubusercontent.com/cies/haskell-fractal/refs/... [17MB, ขอโทษที่เป็น Github]
มีโค้ด Haskell ที่ใช้สร้างอยู่ด้วย: https://github.com/cies/haskell-fractal
โดยเฉพาะกระบวนการคิดฟังก์ชัน
sharpenน่าสนใจมาก สำหรับการฟิตเส้นโค้ง ใช้เครื่องมือที่ตอนนี้หายไปแล้ว: https://github.com/cies/haskell-fractal/blob/master/fractal....เป็นโปรเจกต์เล็ก ๆ ที่สนุกดี
เข้าใจความรู้สึกตรงประโยค “ตัดสินใจมอบหมายให้ตัวผมในอนาคตที่รู้คณิตศาสตร์มากกว่านี้”
รายการปัญหาที่ควรต้องแก้ แต่แก้ไม่ได้เพราะมีแผนที่และการเชื่อมต่ออินเทอร์เน็ตไม่พอ มีอิทธิพลอย่างมากต่อการตัดสินใจว่าจะเรียนปริญญาอะไร ส่วนใหญ่เป็นปัญหา พีชคณิตเชิงเส้น
ดูเหมือนมีพิมพ์ผิดในสูตรของแพตเทิร์น สมการถัดจาก “Looking closely you might pick up on the pattern” ควรเป็น
5**(n/2)ไม่ใช่5**nและควรเป็น5**((n-1)/2)ไม่ใช่5**(n-1)\overrightarrow{10*4}คือ[0, 25]แต่ตามสูตรเดิมจะได้[0, 625]อีกอย่าง เรื่อง ข้อผิดพลาดของ Knuth นั้น ในคอมเมนต์ YouTube บอกว่าแฟร็กทัลของเขาจริง ๆ แล้วถูกต้อง เพียงแต่เขาสับสนจุดเริ่มต้นกับจุดสิ้นสุด พูดแบบคร่าว ๆ แฟร็กทัลนั้นสมมาตรตามการหมุนรอบศูนย์กลาง และการหมุนนั้นเองที่ Knuth คิดว่าผิด อย่างไรก็ดี ก็ถือว่าเขาพลาดเรื่องแฟร็กทัลอยู่ดี ดังนั้นข้อสรุปยังคงเดิม