น้ำตกสองเท่า


12

ก่อนอื่นการแทรกสลับทางคณิตศาสตร์สั้นและคุ้มค่ากับเวลาของคุณ:

ถ้า0 < a < 4ที่ฟังก์ชั่นโลจิสติก f(x) = ax(1-x)แมช่วง [0,1] ภายในตัวเอง นี่หมายความว่าเราสามารถเล่นเกมซ้ำได้ ตัวอย่างเช่นถ้า a = 2 ค่าเริ่มต้น 0.3 จะกลายเป็น 0.42 ดังนั้น 0.4872 เป็นต้น

เมื่อพารามิเตอร์aเพิ่มขึ้นฟังก์ชันสมการกำลังสองfจะซับซ้อนมากขึ้นในแง่ต่อไปนี้:

  • 0 < a < 1 ค่าเริ่มต้นทั้งหมดซ้ำเป็น 0
  • 1 < a < 3 0 กลายเป็นต้านทาน แต่มีจุดคงที่ใหม่ (a-1) / a ที่ดึงดูดการทำซ้ำทั้งหมด
  • 3 < a < 1+sqrt(6) จุดตรึงใหม่จะกลายเป็นต้านทาน แต่วงจรของ 2 จุดดึงดูดปรากฏขึ้น
  • 3.44949... < a < 3.54409... 2 รอบจะกลายเป็นต้านทาน แต่วงจรของ 4 จุดดึงดูดปรากฏขึ้น
  • เป็นต้น

Feigenbaum สังเกตว่าความยาวของช่วงพารามิเตอร์เหล่านี้ลดลงในอัตราที่ใกล้เข้ามา4.6692...มากขึ้นเรื่อยค่าคงที่ Feigenbaum การค้นพบที่ยอดเยี่ยมคือช่วงเวลา 2 แฉกลำดับนี้เป็นปรากฏการณ์ทั่วไปที่ใช้ร่วมกันโดยฟังก์ชั่นใด ๆ ที่ (เช่นพาราโบลากำลังสอง) กำลังเพิ่มขึ้นจากนั้นลดลง นี่คือหนึ่งในรายงานครั้งแรกในความเป็นสากลของความสับสนวุ่นวาย

ตอนนี้สำหรับความท้าทาย! เขียนรหัสที่สั้นที่สุดที่เป็นไปได้ซึ่งคำนวณค่าคงที่ Feigenbaum เพื่อความถูกต้องที่คุณเลือก จุดที่นี่ไม่ใช่การโกงระบบโดยการเข้ารหัสตัวเลขที่คุณ googled แต่เพื่อให้คอมพิวเตอร์ค้นหาค่า สำหรับการอ้างอิงนี่คือค่าคงที่ถึง 30 หลัก:

4.669201609102990671853203821578


5
ฉันประหลาดใจที่เรายังไม่มีความท้าทายในการคำนวณค่าคงที่นี้เป็นความคิดที่ดีที่เราพลาดไป ที่ใกล้เคียงที่สุดน่าจะเป็นในการพล็อต attractor ฉันขอแนะนำให้ใช้รหัสในข้อผิดพลาดสูงสุดหรือจำนวนหลักและสร้างค่าคงที่ภายในความแม่นยำนั้น (โดยไม่คำนึงถึงข้อ จำกัด ของเครื่องในบางจุด) หรืออาจคำนวณอัตราส่วนระหว่าง i'th และ (i + 1) st เป็นสองเท่าช่วงเวลาตามที่จะมาบรรจบกับค่าคงที่ นักกอล์ฟที่เลือกความแม่นยำนั้นคลุมเครือและไม่สามารถเข้ารหัสได้
xnor

ฉันคิดหนักว่าจะท้าทายความสามารถอย่างไร ปัญหาคือว่านี่เป็นสิ่งที่ยากที่จะคำนวณได้อย่างแม่นยำดังนั้นฉันคิดว่าคนจะมีความสนุกมากขึ้นที่จะมุ่งเน้นไปที่การใช้วิธีที่ลื่นไหลแทนที่จะได้รับตัวเลขพิเศษนั้นด้วยกำลังดุร้าย หากผู้คนรู้สึกแตกต่างฉันจะเปลี่ยนกฎ
Rodrigo A. Pérez

1
สิ่งที่คุณกำลังมองหาเป็นวิธีที่ลื่นหรือหลีกเลี่ยงการใช้กำลังดุร้าย? โปรดทราบว่าโดยค่าเริ่มต้นสำหรับการเล่นกอล์ฟรหัสเราไม่จำเป็นต้องมีขอบเขตในการรันไทม์หรือพื้นที่ดังนั้นคำตอบมักจะไม่มีประสิทธิภาพมากเมื่อปรับให้สั้น บางทีคุณอาจต้องการสร้างรหัสที่เร็วที่สุดหรือมีความซับซ้อนที่ จำกัด
xnor

คำตอบ:


3

Javascript, 141 138 135 131 ไบต์, 8 หลัก

มันเป็นสิ่งที่ฉันเดา ควรปรับปรุงค่อนข้างน้อย หากใครต้องการเริ่มต้น: วิธีการคำนวณ Feigenbaum และถ้าคุณค่อนข้างต้องการที่จะรู้วิธีการทำรหัสฉลาดตรวจสอบนี้

คัดลอกวางรหัสต่อไปนี้ในคอนโซลของคุณ คำนวณ4.6692016 68823243 (ไม่ค่อยแม่นยำเท่าไหร่ )

b=1;c=0;e=3.2;for(i=2;i<13;i++){z=b-c;a=b+z/e;j=4;while(j--){x=y=0;k=2**i;while(k--){y=1-2*y*x;x=a-x*x;}a-=x/y}e=z/(a-b);c=b;b=a;e}

b=1;c=0;e=3.2;for(i=2;i<13;i++){z=b-c;a=b+z/e;j=4;while(j--){x=y=0;k=2**i;while(k--){y=1-2*y*x;x=a-x*x;}a-=x/y}e=z/(a-b);c=b;b=a;e}
console.log(e)


2

Python ขนาด 127 ไบต์

c,b,e=0,1,2
for i in range(2,13):a=b+(b-c)/e;exec(("x=y=0;"+"y,x=1-2*y*x,a-x*x;"*2**i+"a=a-x/y;")*17);d,c,b=(b-c)/(a-b),b,a;e=d

เครดิตไปที่ @ThomasW พร้อมคำตอบจาวาสคริปต์ของเขา

เพิ่มprint(d)การส่งออก4.669201673141983 ใช้เวลาสองสามวินาทีเนื่องจากมีการคำนวณสตริงที่ยาวก่อนดำเนินการ


1

ถ่านขนาด 84 ไบต์

A¹βA⁰εA³·²δF…²¦¹³«A⁺β∕⁻βεδαFχ«A⁰ξA⁰ψFX²ι«A⁻¹××ψ²ξψA⁻α×ξξξ»A⁻α∕ξψα»A∕⁻βε⁻αβδAβεAαβ»Iδ

ลองออนไลน์! เชื่อมโยงไปยังรหัส verbose สำหรับคำอธิบาย

ใช้วิธีจากที่นี่

พิมพ์4.66920 0975097843 (6 หลัก)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.