คำว่าเอนโทรปีไม่เพียง แต่ปรากฏในอุณหพลศาสตร์และทฤษฎีสารสนเทศเท่านั้น แต่ยังปรากฏในโลกแห่งความเป็นจริงของการบีบอัดข้อมูลด้วย ในบริบทนั้นเอนโทรปีที่คอมเพรสเซอร์เห็นนั้นเท่ากับจำนวนบิตที่ผลิต (โปรดสังเกตว่าฉันบอกว่า "เอนโทรปีที่คอมเพรสเซอร์เห็น " เพราะสิ่งที่พิจารณาว่าเอนโทรปีขึ้นอยู่กับรุ่นที่คอมเพรสเซอร์ใช้เพื่ออธิบายข้อมูลอินพุตนี่คือเหตุผลที่ว่าทำไมคอมเพรสเซอร์ต่าง ๆ ผลิตไฟล์ที่มีขนาดแตกต่างกัน: อะไรคือเอนโทรปี หนึ่งคือโครงสร้างที่เอาเปรียบคนอื่น)
โดยหลักการแล้วสามารถนำไปประยุกต์ใช้กับความซับซ้อนของซอร์สโค้ดได้: "เพียงแค่" เขียนคอมเพรสเซอร์ที่ทำงานบนซอร์สโค้ดที่ได้มาตรฐานอย่างสมบูรณ์เท่านั้นและซึ่งบีบอัดจริง ๆ แล้วแยกวิเคราะห์ว่ามันเหมือนกับคอมไพเลอร์จะสร้างแผนผังไวยากรณ์ที่สอดคล้องกัน จากนั้นมันสามารถเดินทรีไวยากรณ์นี้และตัดสินใจที่แต่ละโหนดว่าโหนดใดจะเป็นไปได้ในแต่ละจุดโดยเข้ารหัสโหนดนั้นด้วยความรู้นั้น
ตัวอย่างเช่นหากภาษาอนุญาตให้มีตัวระบุที่มีอยู่หรือสิ่งที่อยู่ในวงเล็บหรือผลิตภัณฑ์ ณ จุดที่เฉพาะเจาะจงคอมเพรสเซอร์จะนับตัวบ่งชี้ที่มีอยู่ที่เป็นไปได้โดยนำข้อมูลประเภทเข้าบัญชี (กล่าวว่าคุณมีตัวระบุ 3 ตัวดังกล่าว ) และเพิ่ม 2 สำหรับนิพจน์ย่อยที่เป็นไปได้สองแบบให้ความเป็นไปได้ 5 ข้อ ดังนั้นโหนดจะถูกเข้ารหัสด้วยlb 5 = 2.32
บิต ในกรณีของนิพจน์ย่อยที่เป็นไปได้สองอันจำเป็นต้องใช้บิตเพิ่มเติมเพื่อเข้ารหัสเนื้อหา
นี่จะเป็นการวัดที่แม่นยำมากสำหรับความซับซ้อนของรหัสตามที่เป็นอยู่ อย่างไรก็ตามมาตรการนี้ยังคงไร้ประโยชน์! มันไร้ประโยชน์ด้วยเหตุผลเดียวกันกับที่การวัดความซับซ้อนของโค้ดทั้งหมดนั้นไร้ประโยชน์: พวกมันล้มเหลวที่จะทำการเชื่อมต่อระหว่างความซับซ้อนของโค้ดที่วัดได้ (ไม่ว่าจะเป็นอะไร) และความซับซ้อนของปัญหาที่โค้ดแก้ คุณสามารถเสมอหาทางแก้ปัญหาที่ซับซ้อนขันปัญหาการเขียนโปรแกรมของคุณเพื่อสร้างความประทับใจให้นายจ้างของคุณมีจำนวน LOC ของคุณ แต่ไม่มีวัดรหัสซับซ้อนจะบอกคุณว่างานที่จะได้รับการแก้ไขได้ด้วยส่วนของความพยายามที่