Tính căn bậc 2 của số nguyên bất kỳ bằng babylonian method với sai số 10 8
Trong bài viết này chúng ta sẽ tìm hiểu về hàm sqrt() trong C++. Đây là hàm được sử dụng rất nhiều trong các ngôn ngữ lập trình khi giải các bài toán. Show
I. Căn Bậc 2 Trong C++ Là Gì ?Hàm sqrt() là hàm có sẵn trong thư viện math, vì vậy trước khi sử dụng nó hãy khai báo thư viện đã nhé: #include Hàm sqrt() là hàm được sử dụng để tính căn bậc hai của một số. Tham số truyền vào nó là một số bất kỳ và giá trị trả về là căn bậc hai của tham số đó. Cú pháp: sqrt(x)Trong đó x là một số truyền vào bất kỳ, có thể là số nguyên hoặc số thực. Căn Bậc 2 Trong C++ Là Gì ?II. Hàm Tính Căn Bậc 2 Trong C++Hôm nay Techacademy quay lại cùng với một bài toán đơn giản mà phức tạp. Chắc hẳn khi học lập trình bạn nào cũng đã từng tính căn bậc hai của một số. Chắc không ai quên được tên hàm nó chính là hàm sqrt(). Nhưng các bạn đã bao giờ tự hỏi làm sao để có thể tự viết hàm sqrt() này chưa? Hãy cũng mình đi tìm giải pháp trong bài viết này nhé. Tính căn bậc hai sử dụng hàm trong C/C++// Code from https://techacademy.edu.vn #includeChạy demo: Input x: 5 Sqrt of 5 = 2.236068Tìm căn bậc hai của một số không dùng hàm thì sao?Ý tưởng tìm căn bậc hai:
Nếu kết quả có sai số cao hơn epsilon, cập nhật lại kết quả theo công thức result = (number/result - result) / 2 + result;
Ví dụ: Bạn cần tính căn bậc 2 của 5.
Code đầy đủ cho ý tưởng này là // Code from https://techacademy.edu.vn #includeVà chạy thử xem sao Input x: 5 Sqrt of 5 = 2.236069 Hàm Tính Căn Bậc 2 Trong C++III. Ví Dụ Về Căn Bậc 2 Trong C++Trong phần này mình sẽ thực hiện hai ví dụ sử dụng hàm sqrt() để các bạn có thể so sánh kết quả nhé. Ví dụ 1: Ở ví dụ này mình sẽ khai báo và khởi tạo giá trị x = 9, sau đó gọi hàm sqrt() để tính căn bậc hai của x. #includeKết quả: Ví Dụ Về Căn Bậc 2 Trong C++Ví dụ 2: Ở ví dụ này mình sẽ thay đổi giá trị của x thành 125, cùng xem kết quả nhé. Kết quả: Ví Dụ Về Căn Bậc 2 Trong C++IV. Căn Bậc N Trong CBài này mình sẽ hướng dẫn các bạn mới học lập trình cách để tính căn bậc n với n là một số bất kỳ nhé, nhưng n >= 2 nha. Chỉ là chỉ lại giúp các bạn nhớ lại toán học thôi ^^. Một số thắc mắc của các bạn sinh viên:
Tính căn bậc 3 trong C/C++Để tính căn bậc 3 trong C/C++, bạn sử dụng công thức toán học sau. Công thức này đúng với căn bậc n luôn nhé. Bạn có thể áp dụng để tính căn bậc n của số bất kỳ: Như vậy, với một số x = 8 chẳng hạn, bạn muốn tính căn bậc 3 của 8. Khi đó, trong công thức trên x = 8, n = 3, m = 1. Vậy ta sẽ phải tính x1/3 Để tính ax trong C/C++, chúng ta có thể sử dụng hàm pow() có cú pháp như sau: double pow (double base, double exponent);Ví dụ dưới đây sử dụng C/C++ để tính căn bậc 3 của 8 theo cách trên. Các bạn lưu ý em kiểu cho số mũ nhé. Vì 2 số nguyên chia cho nhau sẽ chỉ ra giá trị nguyên(1/3 = 0). #includeKết quả: 2.000000 Như vậy, để tính căn bậc n của số a, bạn sẽ dùng hàm pow để tính kết quả của phép tính a1/n Tính căn bậc 3 không dùng hàm powĐể tính căn bậc 3 của 1 số dương a ( tổnq quát căn bậc n ), ta phải xây dựng một chuỗi ( toán học ) mà chuỗi này hội tụ về căn bậc 3 của a. Sau đó lặp hữu hạn 1 số lần để được kết quả với độ chính xác nào đó chấp nhận được. Sau day la chuong trinh trong C de thuật tính căn bậc 3 cua 2 voi độ chính xác 0.00000001 chỉ bằng các phép toán +, – , *, / mà thôi. Dưới đây là lời giải tính căn bậc 3 của 2 của một thành viên trong Cộng đồng C Việt: //////////////////////////////////////////////////////////////////////// // Cube root of 2 by Nguyen Van Noi - DHTG // Email : /////////////////////////////////////////////////////////////////////// #includeMột lời giải khác do mình tổng hợp: Ý tưởng: Tìm phần nguyên trước, sau đó tìm phần thập phân. Với cách làm này, bạn chỉ thu được kết quả xấp xỉ với đáp án chính xác. Độ chính xác phụ thuộc vào giá trị precision mà bạn mong muốn. #includeChạy thử: Can bac 3 cua 125 = 5.000000 Căn Bậc N Trong CV. Dấu Căn Bậc 2 Trong C++Hàm sqrt() trong C Hàm double sqrt(double x) trong Thư viện C trả về căn bậc hai của x. Khai báo hàm sqrt() trong C Dưới đây là phần khai báo cho hàm sqrt() trong C: double sqrt(double x)Tham số x − Đây là giá trị số thực dấu chấm động. Trả về giá trị Hàm này trả về căn bậc hai của x. Ví dụ Chương trình C sau minh họa cách sử dụng của hàm sqrt() trong C: #includeBiên dịch và chạy chương trình C trên sẽ cho kết quả: Dấu Căn Bậc 2 Trong C++VI. Hàm Căn Bậc 3 Trong C++Bài tập C: Tìm căn bậc ba của một số Tương tự như cách tìm căn bậc hai (không sử dụng hàm sqrt()), bài tập C này có thể được giải theo hai bước: Tìm phân nguyên Tìm phần thập phân Đây chỉ là cách giải cho kết quả xấp xỉ, và độ chính xác phụ thuộc vào số các số sau dấu thập phân. Bạn theo dõi phần code dưới đây để hiểu cách tìm căn bậc ba của một số bất kỳ trong C. Chương trình C Dưới đây là chương trình C để giải bài tập tìm căn bậc ba của một số trong C: #includeBiên dịch chương trình C trên sẽ cho kết quả: Hàm Căn Bậc 3 Trong C++VII. Bài Tập Về Căn Bậc 2 Trong C++Đề bài Viết chương trình giải phương trình bậc 2 trong C++. Phương trình bậc 2 có dạng: Bài Tập Về Căn Bậc 2 Trong C++Lời giải Lời giải của chúng tôi sử dụng phương thức sqrt() để tính căn bậc 2 của một số trong C++. #includeKết quả: Nhap he so bac 2, a = 2 Nhap he so bac 1, b = 3 Nhap so hang tu do, c = 1 Phuong trinh co 2 nghiem la: x1 = -0.500000 va x2 = -1.000000VIII. Tìm Căn Bậc Hai Không Dùng SqrtTìm căn bậc hai không sử dụng hàm sqrt? Bạn nghĩ sao? Hôm nay Techacademy quay lại cùng với một bài toán đơn giản mà phức tạp. Chắc hẳn khi học lập trình bạn nào cũng đã từng tính căn bậc hai của một số. Chắc không ai quên được tên hàm nó chính là hàm sqrt(). Nhưng các bạn đã bao giờ tự hỏi làm sao để có thể tự viết hàm sqrt() này chưa? Hãy cũng mình đi tìm giải pháp trong bài viết này nhé. Tìm Căn Bậc Hai Không Dùng SqrtTìm căn bậc hai của một số không dùng hàm thì sao?Ý tưởng tìm căn bậc hai:
Nếu kết quả có sai số cao hơn epsilon, cập nhật lại kết quả theo công thức result = (number/result – result) / 2 + result;
Ví dụ: Bạn cần tính căn bậc 2 của 5.
Code đầy đủ cho ý tưởng này là // Code from https://nguyenvanhieu.vn #includeVà chạy thử xem sao Input x: 5 Sqrt of 5 = 2.236069 |