อินพุต
เมทริกซ์M
แสดงเป็นสองบรรทัดที่คั่นด้วยช่องว่างของจำนวนเต็ม แต่ละบรรทัดจะมีจำนวนเต็มเท่ากันและแต่ละจำนวนเต็มจะเป็น -1 หรือ 1 จำนวนเต็มต่อหนึ่งบรรทัดจะมากที่สุด 20 M
ดังนั้นจึงเป็น2
โดยn
ที่n
เป็นจำนวนเต็มในแต่ละสองบรรทัด
รหัสของคุณควรเป็นโปรแกรมที่สมบูรณ์ และยอมรับอินพุตทั้งในมาตรฐานหรือจากไฟล์ (นั่นคือตัวเลือกของคุณ) คุณสามารถยอมรับอินพุตจากมาตรฐานในจากไฟล์หรือเพียงแค่เป็นพารามิเตอร์ อย่างไรก็ตามถ้าคุณทำอย่างหลังโปรดให้ตัวอย่างที่ชัดเจนว่าโค้ดของคุณควรทำงานอย่างไรและจำไว้ว่ามันจะต้องเป็นโปรแกรมที่สมบูรณ์และวิธีการแสดงเมทริกซ์M
ในอินพุต กล่าวอีกนัยหนึ่งคุณน่าจะต้องทำการแยกวิเคราะห์
เอาท์พุต
ไบนารีเอนโทรปีนอนส์ของการกระจายของM*x
ที่องค์ประกอบของx
กำลังอย่างสม่ำเสมอและเป็นอิสระได้รับการแต่งตั้งจาก {-1,1} x
เป็นn
เวกเตอร์คอลัมน์มิติ
เอนโทรปีของการแจกแจงความน่าจะเป็นแบบไม่ต่อเนื่องคือ
- sum p_i log_2(p_i)
ในกรณีนี้p_i
น่าจะเป็นของวันที่ไม่ซ้ำกันที่เป็นไปได้i
M*x
ตัวอย่างและคำแนะนำที่เป็นประโยชน์
เป็นตัวอย่างการทำงานให้เมทริกซ์M
เป็น
-1 1
-1 -1
ทีนี้ลองดู2^2
เวกเตอร์ที่ต่างกันที่เป็นไปได้x
ทั้งหมด สำหรับแต่ละอันเราคำนวณM*x
และใส่ผลลัพธ์ทั้งหมดลงในอาร์เรย์ (อาร์เรย์ 4 องค์ประกอบของเวกเตอร์องค์ประกอบ 2 ตัว) แม้ว่าสำหรับเวกเตอร์ 4 ตัวแต่ละอันความน่าจะเป็นที่เกิดขึ้นคือ1/2^2 = 1/4
เราสนใจเพียงจำนวนครั้งที่แต่ละเวกเตอร์ผลลัพธ์ที่ไม่ซ้ำกันเกิดM*x
ขึ้นดังนั้นเราจึงสรุปความน่าจะเป็นส่วนบุคคลของการกำหนดค่าที่นำไปสู่เวกเตอร์เฉพาะที่เหมือนกัน กล่าวอีกนัยหนึ่งM*x
เวกเตอร์ที่ไม่ซ้ำกันที่เป็นไปได้อธิบายถึงผลลัพธ์ของการแจกแจงที่เรากำลังตรวจสอบและเราต้องกำหนดความน่าจะเป็นของผลลัพธ์แต่ละอย่าง (ซึ่งโดยการก่อสร้างจะเป็นจำนวนเต็มคูณ1/2^2
หรือ1/2^n
โดยทั่วไปเสมอ) คำนวณเอนโทรปี
ในn
กรณีทั่วไปขึ้นอยู่กับM
ผลลัพธ์ที่เป็นไปได้ของM*x
ช่วงตั้งแต่ "แตกต่างกันทั้งหมด" (ในกรณีนี้เรามีn
ค่าของi
ในp_i
และแต่ละคนp_i
มีค่าเท่ากับ1/2^n
) ถึง "ทั้งหมดเดียวกัน" (ในกรณีนี้มีความเป็นไปได้เดียว ผลลัพธ์และp_1 = 1
)
โดยเฉพาะสำหรับ2x2
เมทริกซ์ข้างต้นM
เราสามารถหาได้โดยการคูณมันด้วยการกำหนดค่าสี่แบบที่เป็นไปได้ ( [+-1; +-1]
) ว่าเวกเตอร์ที่ได้แต่ละอันนั้นแตกต่างกัน p_1 = p_2 = p_3 = p_4 = 1/2^2 = 1/4
ดังนั้นในกรณีนี้มีสี่ผลลัพธ์และผล จำได้ว่าlog_2(1/4) = -2
เรามี:
- sum p_i log_2(p_i) = -(4*(-2)/4) = 2
ดังนั้นผลลัพธ์สุดท้ายของเมทริกซ์นี้คือ 2
กรณีทดสอบ
การป้อนข้อมูล:
-1 -1
-1 -1
เอาท์พุท:
1.5
การป้อนข้อมูล:
-1 -1 -1 -1
-1 -1 -1 -1
เอาท์พุท:
2.03063906223
การป้อนข้อมูล:
-1 -1 -1 1
1 -1 -1 -1
เอาท์พุท:
3
x
คืออะไร? 2. เพื่อประโยชน์ในการทำให้คำถามมีอยู่แล้วเอนโทรปีแบบไบนารีของแชนนอนMx
ถูกกำหนดไว้อย่างไร?