เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การวัดเวลา I

ในสไลด์บรรยาย คุณได้เห็นวิธีโหลดและใช้ฟังก์ชัน time.time() เพื่อประเมินเวลาที่ใช้ในการดำเนินการทางคณิตศาสตร์พื้นฐาน

คราวนี้ ลองใช้กลยุทธ์เดียวกันเพื่อเปรียบเทียบสองวิธีในการแก้ปัญหาที่คล้ายกัน นั่นคือ การคำนวณผลรวมของกำลังสองของจำนวนเต็มบวกทั้งหมดตั้งแต่ 1 ถึง 1 ล้าน (1,000,000)

เช่นเดียวกับที่เห็นในวิดีโอ เราจะเปรียบเทียบสองวิธี ได้แก่ วิธีแบบ brute force และวิธีที่ใช้หลักคณิตศาสตร์ที่ซับซ้อนกว่า

ฟังก์ชัน formula ใช้สูตรมาตรฐาน

$$ \frac{N*(N+1)(2N+1)}{6} $$

โดยที่ N=1,000,000

ส่วนฟังก์ชัน brute_force จะวนลูปผ่านแต่ละตัวเลขตั้งแต่ 1 ถึง 1 ล้าน แล้วบวกสะสมเข้าสู่ผลลัพธ์

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การเขียนโค้ดที่มีประสิทธิภาพด้วย pandas

ดูคอร์ส

คำแนะนำการฝึกหัด

  • คำนวณผลลัพธ์ของปัญหาโดยใช้ฟังก์ชัน formula()
  • แสดงเวลาที่ใช้ในการคำนวณผลลัพธ์ด้วยฟังก์ชัน formula()
  • คำนวณผลลัพธ์ของปัญหาโดยใช้ฟังก์ชัน brute_force()
  • แสดงเวลาที่ใช้ในการคำนวณผลลัพธ์ด้วยฟังก์ชัน brute_force()

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Calculate the result of the problem using formula() and print the time required
N = 1000000
fm_start_time = ____
first_method = formula(N)
print("Time using formula: {} sec".format(time.time() - fm_start_time))

# Calculate the result of the problem using brute_force() and print the time required
sm_start_time = ____
second_method = ____(N)
print("Time using the brute force: {} sec".format(time.time() - sm_start_time))
แก้ไขและรันโค้ด