answer
Vũ Thái Thanh · Vũ Thái Thanh 02:50 07/03/2012
sqrt=x**[1/2]đang thực hiện phép chia số nguyên. 1/2 == 0.
Vì vậy, bạn đang tính toán x [1/2] trong trường hợp đầu tiên, x [0] trong trường hợp thứ hai.
Vì vậy, nó không sai, nó là câu trả lời đúng cho một câu hỏi khác.
259 hữu ích 3 bình luận chia sẻ
answer
Tạ Tường Lâm · Tạ Tường Lâm 02:51 07/03/2012
Bạn phải viết sqrt = x**[1/2.0]:, nếu không một phép chia số nguyên được thực hiện và biểu thức 1/2trả về 0.
Hành vi này là "bình thường" trong Python 2.x, trong khi trong Python 3.x 1/2đánh giá là 0.5. Nếu bạn muốn mã Python 2.x của mình hoạt động giống như viết phân chia 3.x wrt from __future__ import division- thì 1/2sẽ đánh giá tới 0.5và về khả năng tương thích ngược, 1//2sẽ đánh giá tới 0.
Và đối với bản ghi, cách ưa thích để tính căn bậc hai là:
import math math.sqrt[x]122 hữu ích 0 bình luận chia sẻ
answer
Hoàng Bình Minh · Hoàng Bình Minh 00:11 03/04/2018
import math math.sqrt[ x ]
Nó là một bổ sung nhỏ cho chuỗi câu trả lời. Tuy nhiên, vì Chủ đề là lượt truy cập rất phổ biến của google, tôi tin rằng điều này xứng đáng được thêm vào.
28 hữu ích 0 bình luận chia sẻ
answer
Tạ Hoài Phương · Tạ Hoài Phương 02:51 07/03/2012
/ thực hiện phép chia số nguyên trong Python 2:
>>> 1/2 0Nếu một trong các số là số thực, nó hoạt động như mong đợi:
>>> 1.0/2 0.5 >>> 16**[1.0/2] 4.011 hữu ích 0 bình luận chia sẻ
answer
Đỗ Thanh Yên · Đỗ Thanh Yên 02:52 07/03/2012
Những gì bạn đang thấy là phép chia số nguyên. Để nhận phân chia dấu phẩy động theo mặc định,
from __future__ import divisionHoặc, bạn có thể chuyển đổi 1 hoặc 2 của 1/2 thành giá trị dấu phẩy động.
sqrt = x**[1.0/2]7 hữu ích 0 bình luận chia sẻ
answer
Lý Quốc Quân · Lý Quốc Quân 08:33 25/01/2018
Điều này có thể hơi muộn để trả lời nhưng cách đơn giản và chính xác nhất để tính căn bậc hai là phương pháp của newton.
Bạn có một số mà bạn muốn tính căn bậc hai của nó [num]và bạn có thể đoán căn bậc hai của nó [estimate]. Ước tính có thể là bất kỳ số nào lớn hơn 0, nhưng một số có ý nghĩa sẽ rút ngắn đáng kể độ sâu cuộc gọi đệ quy.
new_estimate = [estimate + num / estimate] / 2Dòng này tính toán ước tính chính xác hơn với 2 tham số đó. Bạn có thể chuyển giá trị new_estimate cho hàm và tính toán một new_estimate khác chính xác hơn giá trị trước đó hoặc bạn có thể tạo một định nghĩa hàm đệ quy như thế này.
def newtons_method[num, estimate]: # Computing a new_estimate new_estimate = [estimate + num / estimate] / 2 print[new_estimate] # Base Case: Comparing our estimate with built-in functions value if new_estimate == math.sqrt[num]: return True else: return newtons_method[num, new_estimate]Ví dụ, chúng ta cần tìm căn bậc hai của 30. Chúng tôi biết rằng kết quả là từ 5 đến 6.
newtons_method[30,5]số là 30 và ước tính là 5. Kết quả từ mỗi lần gọi đệ quy là:
5.5 5.477272727272727 5.4772255752546215 5.477225575051661Kết quả cuối cùng là phép tính chính xác nhất về căn bậc hai của số. Nó có cùng giá trị với hàm tích hợp math.sqrt [].
5 hữu ích 0 bình luận chia sẻ
answer
Hồ Triệu Mẫn · Hồ Triệu Mẫn 02:23 06/04/2018
Có lẽ một cách đơn giản để nhớ: thêm dấu chấm sau tử số [hoặc mẫu số]
16 ** [1. / 2] # 4 289 ** [1. / 2] # 17 27 ** [1. / 3] # 31 hữu ích 0 bình luận chia sẻ
answer
Bùi Thế Vinh · Bùi Thế Vinh 06:08 16/08/2020
Nếu bạn muốn làm điều đó theo cách thực tế của máy tính, hãy sử dụng kỹ thuật Babylon. Nó được giải thích ở đây và ở đây .
Giả sử bạn muốn tính căn bậc hai của 2:
a=2 a1 = [a/2]+1 b1 = a/a1 aminus1 = a1 bminus1 = b1 while [aminus1-bminus1 > 0]: an = 0.5 * [aminus1 + bminus1] bn = a / an aminus1 = an bminus1 = bn print[an,bn,an-bn]1 hữu ích 0 bình luận chia sẻ
answer
Trần Hà Khuê · Trần Hà Khuê 17:42 10/02/2017
Bạn có thể sử dụng NumPy để tính căn bậc hai của mảng:
import numpy as np np.sqrt[[1, 4, 9]]0 hữu ích 1 bình luận chia sẻ
answer
Lê Bình An · Lê Bình An 01:55 25/07/2017
Tôi hy vọng đoạn mã được đề cập dưới đây sẽ trả lời câu hỏi của bạn.
def root[x,a]: y = 1 / a y = float[y] print y z = x ** y print z base = input["Please input the base value:"] power = float[input["Please input the root value:"]] root[base,power]-1 hữu ích 1 bình luận chia sẻ