Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: hỏi về TT tính sin(x)=x-x^3/3!+x^5/5!-x^7/7!...

  1. #1
    Ngày gia nhập
    01 2008
    Bài viết
    7

    Mặc định hỏi về TT tính sin(x)=x-x^3/3!+x^5/5!-x^7/7!...

    các bác cho em hỏi thuật toán tính bài đó với
    tính sin(x)=x-x^3/3!+x^5/5!-x^7/7!...
    Luôn luôn lắng nghe, luôn luôn thấu hiểu

  2. #2
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Dùng vòng lặp, thêm 1 vài biến phụ xử lý sao cho khéo số mũ và giai thừa là xong. Cứ code thử đi rùi post lên đây mình sẽ coi cho.

  3. #3
    Ngày gia nhập
    07 2007
    Nơi ở
    Sơn La
    Bài viết
    133

    Gợi ý một chút nhé.
    Chỉ là thêm một tí thôi cho nó tối ưu về tốc độ.
    Bạn nên có một biến Tmp;
    Tại thời điểm index thì tmp=giai_thua (index);
    Tại thời điểm index+2 thì tmp=tmp*(index-1)*(index);
    Như vậy bạn không phải mỗi bước index lại đi tính giai_thua (index);
    Nói chung bài này chi là một bài đơn gian để bạn làm quen với các bài sử lý nhiều sự kiện sau này. Bạn cố gắng code rồi post lên mọi người check cho.
    Sau khi làm xong, bạn có thể làm thêm bài này;
    Tính biểu thức sqrt(6+sqrt(6+sqrt(6+...))).
    Thân.
    Trao đổi kiến thức sẽ giúp ta tiếp cận nhanh với kiến thức.

  4. #4
    Ngày gia nhập
    01 2008
    Bài viết
    1

    Bài này trong giáo trình Ngôn ngữ C của Vũ Bá Duy giải theo cách nhập thêm 1 sai số eps (epsilon).

    Code:
    #include <math.h>
    #include <stdio.h>
    void main(){
    float x, eps;
    float s, sh;
    int k;
    printf("\nNhap gia tri (radian) x = ");
    scanf("%f",&x);
    printf("\nNhap sai so duoc phep eps = ");
    scanf("%f",&eps);
    s=x;sh=x; k=1;
    do {
    sh =-sh*x*x/(2*k*(2*k+1));
    s+=sh;
    k++;
    } while(fabs(sh)>eps);
    printf("s= %f ",s);
    }

  5. #5
    Ngày gia nhập
    11 2006
    Bài viết
    633

    Viết trên C++
    Code:
    #include <iostream>
    #include <iomanip>
    using namespace std;
    int main()
    {
        cout <<"Nhap x: "; double x; cin >>x;
        cout <<"Nhap n: "; int n; cin >>n;
        double tmp = x;
        double sinx = x;
        for (int i = 3; i <= n; i = i + 2)
        {
            tmp *= -(x * x / i / (i-1));
            sinx += tmp;
        }
        cout <<"sin (" <<x <<") = " <<setw(15) <<sinx <<endl;
        system("pause");
        return 0;
    }
    Tui chẳng hiểu code của ông Vũ Bá Duy gì đó thêm thư viện math mà chẳng xài tới thư viện đó, ko hiểu ổng thêm làm gì

  6. #6
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Mặc định hỏi về TT tính sin(x)=x-x^3/3!+x^5/5!-x^7/7!...

    cái này : fabs()

  7. #7
    Ngày gia nhập
    11 2007
    Nơi ở
    Cung trăng
    Bài viết
    6

    fabs() lấy giá trị tuyệt đối của kiểu float.Ok men
    Yêu lắm Cesc

  8. #8
    Ngày gia nhập
    02 2008
    Bài viết
    88

    Mình chỉ thêm một chút thôi
    sin(x)=x^1/1!-x^3/3!+x^5/5!-x^7/7!...
    Mình từ Caulacbovb qua)
    Giã từ VB6 đến với VB.Net, C# và Java.

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn