Hỏi đáp
Chia sẻ kiến thức, cùng nhau phát triển
Nên sử dụng hàm sqrt() hay **0.5 để có được tốc độ tốt nhất
21:31 01-08-2023
1.440 lượt xem
5 bình luận
23:00 19-08-2023
def is_prime(n):
if n == 2:
return True
if n < 2 or not n % 2:
return False
is_prime = True
for k in range(3,ceil(n**0.5)+1,2):
if not n % k:
is_prime = False
break
return is_prime
Khi muốn tính căn bận 2 của số n thì nên dùng hàm math.sqrt(2) hay n**0.5 để có được tốc độ cũng như độ chính xác cao nhất.
Sau khi hỏi thử Google Bard thì tôi đã tìm được câu trả lời:
=>Kết luận: sqrt() tốn nhiều bộ nhớ nhưng nhanh hơn. Còn **0.5 tốn ít bộ nhớ nhưng chậm hơn. Vậy nếu muốn nhanh cứ chọn sqrt().
Mình nghĩ là nên dùng n**0.5 tốc độ cao hơn math.sqrt(2) tại vì hàm sqrt sẽ được gọi trong thư viện Math => chậm hơn