ฉันเคยสงสัยเรื่องนี้มาระยะหนึ่งแล้ว ตามที่ชื่อบอกว่าจะเร็วกว่าฟังก์ชั่นจริงหรือเพียงแค่เพิ่มกำลังครึ่งหนึ่ง?
UPDATE
นี่ไม่ใช่เรื่องของการเพิ่มประสิทธิภาพก่อนวัยอันควร นี่เป็นเพียงคำถามว่าโค้ดอ้างอิงทำงานอย่างไร ทฤษฎีของ Python code ทำงานอย่างไร
ฉันส่งอีเมลถึง Guido van Rossum เพราะฉันต้องการทราบความแตกต่างของวิธีการเหล่านี้
อีเมลของฉัน:
มีอย่างน้อย 3 วิธีในการทำรากที่สองใน Python: math.sqrt, ตัวดำเนินการ '**' และ pow (x, .5) ฉันแค่อยากรู้เกี่ยวกับความแตกต่างในการใช้งานของแต่ละสิ่งเหล่านี้ เมื่อพูดถึงประสิทธิภาพซึ่งดีกว่า
คำตอบของเขา:
pow และ ** เทียบเท่ากัน math.sqrt ไม่ทำงานสำหรับตัวเลขที่ซับซ้อนและลิงก์ไปยังฟังก์ชัน C sqrt () เป็นที่หนึ่งที่เร็วกว่าฉันไม่มีความคิด ...
math.sqrt
เป็นประจำเพิ่มประสิทธิภาพมากขึ้น (มันเป็น) x**.5
และเป็นการแสดงออกถึงความตั้งใจมากขึ้นอย่างเห็นได้ชัดก็ควรจะต้องการมากกว่า ไม่ใช่การเพิ่มประสิทธิภาพก่อนวัยอันควรที่จะรู้ว่าคุณเขียนอะไรและเลือกทางเลือกที่เร็วกว่าและให้รหัสที่ชัดเจนยิ่งขึ้น ถ้าเป็นเช่นนั้นคุณต้องเถียงกันพอ ๆ กันว่าทำไมคุณถึงเลือกทางเลือกอื่น