ก่อนหน้านี้ฉันถามคำถามเกี่ยวกับวิธีคำนวณความน่าจะเป็นได้อย่างรวดเร็วและแม่นยำ อย่างไรก็ตามเห็นได้ชัดว่ามันง่ายเกินไปที่จะให้โซลูชันแบบปิด! นี่คือรุ่นที่ยากขึ้น
งานนี้เป็นเรื่องเกี่ยวกับการเขียนโค้ดเพื่อคำนวณความน่าจะเป็นตรงและรวดเร็ว ผลลัพธ์ควรเป็นความน่าจะเป็นที่แม่นยำที่เขียนเป็นเศษส่วนในรูปแบบที่ลดลงมากที่สุด นั่นคือไม่ควรเอาท์พุท4/8
แต่จะดี1/2
กว่า
สำหรับจำนวนเต็มบวกn
พิจารณาสตริงสุ่มอย่างสม่ำเสมอของ 1s และ -1s ของความยาวn
และเรียกมันว่า A ตอนนี้เชื่อมต่อกับA
สำเนาของตัวเอง นั่นคือA[1] = A[n+1]
ถ้าการจัดทำดัชนีจาก 1 A[2] = A[n+2]
และอื่น ๆ ตอนนี้มีความยาวA
2n
ทีนี้ลองพิจารณาความยาวสตริงที่สองแบบสุ่มn
ซึ่งมีn
ค่าแรกคือ -1, 0 หรือ 1 ที่มีความน่าจะเป็น 1/4, 1/2, 1/4 แต่ละอันและเรียกมันว่า B
ตอนนี้พิจารณาสินค้าด้านในของB
ที่มีแตกต่างกันA[1+j,...,n+j]
j =0,1,2,...
n=3
ตัวอย่างเช่นพิจารณา ค่าที่เป็นไปได้A
และB
อาจจะเป็นและA = [-1,1,1,-1,...]
B=[0,1,-1]
ในกรณีนี้เป็นครั้งแรกผลิตภัณฑ์ชั้นสองเป็นและ0
2
งาน
สำหรับแต่ละj
เริ่มต้นด้วยj=1
รหัสของคุณควรส่งออกน่าจะเป็นที่ทุกคนแรกผลิตภัณฑ์ภายในเป็นศูนย์สำหรับทุกj+1
n=j,...,50
คัดลอกตารางที่ผลิตโดย Martin Büttnerเพราะj=1
เรามีผลลัพธ์ตัวอย่างต่อไปนี้
n P(n)
1 1/2
2 3/8
3 7/32
4 89/512
5 269/2048
6 903/8192
7 3035/32768
8 169801/2097152
คะแนน
คะแนนของคุณใหญ่ที่สุดj
รหัสของคุณเสร็จใน 1 นาทีบนคอมพิวเตอร์ของฉัน เพื่อชี้แจงเล็กน้อยแต่ละคนj
ได้หนึ่งนาที j=1
โปรดทราบว่ารหัสการเขียนโปรแกรมแบบไดนามิกในคำถามที่เชื่อมโยงก่อนหน้านี้จะทำเช่นนี้ได้อย่างง่ายดายสำหรับ
เบรกเกอร์
หากทั้งสองรายการได้รับเดียวกันj
คะแนนแล้วรายการที่ชนะจะเป็นหนึ่งที่ได้รับจะสูงที่สุดในหนึ่งนาทีในเครื่องของฉันสำหรับการที่n
j
หากผลงานที่ดีที่สุดสองรายการเท่ากันในเกณฑ์นี้เช่นกันผู้ชนะจะได้รับคำตอบก่อน
ภาษาและห้องสมุด
คุณสามารถใช้ภาษาและไลบรารี่ที่คุณต้องการได้ฟรี ฉันจะต้องสามารถเรียกใช้รหัสของคุณดังนั้นโปรดรวมคำอธิบายแบบเต็มสำหรับวิธีการเรียกใช้ / รวบรวมรหัสของคุณใน linux ถ้าเป็นไปได้ทั้งหมด
My Machineเวลาของฉันจะทำงานบนเครื่องของฉัน นี่คือการติดตั้ง Ubuntu มาตรฐานบนโปรเซสเซอร์ AMD FX-8350 Eight-Core นี่ก็หมายความว่าฉันต้องสามารถเรียกใช้รหัสของคุณได้
รายการที่ชนะ
j=2
ในPythonโดย Mitch Schwartzj=2
ในPythonโดย feersum ขณะนี้รายการที่เร็วที่สุด