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

Đề tài: Đổi số thập phân sang phân số?

  1. #1
    Ngày gia nhập
    07 2006
    Bài viết
    17

    Mặc định Đổi số thập phân sang phân số?

    Tôi có đọc 1 thuật giải về cái này thấy rất hay, nhưng trước tiên muốn xem các bạn có giải thuật nào hay hơn về bài toán này. Mời các bạn cùng đưa ra giải thuật của mình thử xem nhé.

  2. #2
    Ngày gia nhập
    08 2006
    Bài viết
    14

    Bạn hãy trình bày giải thuật mà mình biết đi đã , rồi anh em sẽ coi thế nào đã chứ .

  3. #3
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    217

    Đối với các số thâp phân vô hạn tuần hoàn mình nhớ hồi lớp 9 đã được học các công thức biến đổi nó về phân số tương ứng với trường hợp dãy tuần hoàn có 1, 2, 3... chữ số, nhưng nói chung vẫn chưa tìm được công thức tổng quát.
    Vì trong máy tính cũng không biểu diễn được những số kiểu như vậy nên mình xin nêu cách biến đổi cho các số thập phân hữu hạn
    Gọi số thập phân đó là a có phần thập phân là b ta đưa về dạng (a*10^b)/(10^b)
    Khi đó cả (a*10^b) và (10^b) đều là số nguyên và ta đã đưa được số thập phân a về dạng phân số, giờ chỉ còn việc tối giản nó mà thôi. Để làm việc này ta chỉ cần tìm ước chung lớn nhất của nó và chia từng số cho UCLN đó

  4. #4
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    217

    Mình tìm được cách tổng quát đây
    Chuyển số thập phân tuần hoàn sang phân số
    Công thức tổng quát đây:
    * Dạng 1: Ví dụ A=0.123123123...
    Ta có: p=123, m=3 (123 gồm 3 số)
    A=p/(10^m-1)
    A=123/(1000-1)
    A=123/999
    A=41/333
    *Dạng 2: Ví dụ A=1.03243636363636...
    Ta có: k=1, q=0324=324, n=4 (0324 gồm 4 số), p=36, m=2 (36 gồm 2 số)
    A=k+q/10^n+p/(10^n(10^m-1))
    A=1+324/10^4+36/(10^4(10^2-1))
    A=1+324/10000+36/990000
    A=7098/6875

    Chuyển số thập phân không tuần hoàn sang phân số

    VD 1: A=0.152647975...
    1/A=6.551020412 gán A
    A-6=0.551020412 gán A
    1/A=1.814814804 gán A
    A*999=1812.999989 gán A
    Làm tròn A=1813
    A/999=1813/999=49/27 gán A
    1/A=27/49 gán A
    A+6=321/49 gán A (hồi nãy trừ 6 thì bây giờ cộng 6)
    1/A=49/321 gán A
    Kết quả A=0.152647975...=49/321

    VD 2: A=1.181913775...
    A-1=0.181913775 gán A
    1/A=5.497109826 gán A
    A-5=0.497109826 gán A
    1/A=2.01162791 gán A
    A-2=0.01162791 gán A
    1/A=85.99997609 gán A
    Làm tròn A=86
    1/A=1/86 gán A
    A+2=173/86 gán A (hồi nãy trừ 2 thì bây giờ cộng 2)
    1/A=86/173 gán A
    A+5=951/173 gán A (hồi nãy trừ 5 thì bây giờ cộng 5)
    1/A=173/951 gán A
    A+1=1124/951 gán A (hồi nãy trừ 1 thì bây giờ cộng 1)
    Kết quả A=1.181913775...=1124/951
    (Nguồn casio.phpbb3.net)

  5. #5
    Ngày gia nhập
    10 2006
    Nơi ở
    Hà Nội
    Bài viết
    146

    Cái này cũng chỉ dựa vào kinh nghiệm thực tế thôi, chứ chắc không viết được thuật toán bằng C/C++ chứ!

  6. #6
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,719

    Mặc định Đổi số thập phân sang phân số?

    Đối với số thập phân là một số hữu hạn thì việc chuyển sang phân số là khá dễ dàng.
    Đối với một số thập phân vô hạn thì về nguyên tắc là không thể chuyển sang phân số được, nhưng trong máy tính mọi số thập phân đều là hữu hạn.

    Đối với các số thập phân vô hạn thì ta phải sử dụng số gần đúng thôi.
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

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

    Trích dẫn Nguyên bản được gửi bởi Dreaminess Xem bài viết
    Đối với số thập phân là một số hữu hạn thì việc chuyển sang phân số là khá dễ dàng.
    Đối với một số thập phân vô hạn thì về nguyên tắc là không thể chuyển sang phân số được, nhưng trong máy tính mọi số thập phân đều là hữu hạn.

    Đối với các số thập phân vô hạn thì ta phải sử dụng số gần đúng thôi.
    Nguyên tắc trên có lẽ chưa đúng cho lắm. Bởi theo lý thuyết: Mọi số thập phân vô hạn, tuần hoàn đều có thể biễu diễn được dưới dạng phân số m/n với m và n là những số nguyên.

  8. #8
    Ngày gia nhập
    06 2007
    Nơi ở
    Hà Nội
    Bài viết
    361

    vô hạn tuần hoàn có thể đổi sang số được , như trên
    Còn hữu hạn , quá dễ ví dụ:
    1.23 cho thành 123/100 giản ước đi. Đây là thuật toán dễ nhất đó
    Blog tổng quan kiến thức về viễn thông : http://tongquanvienthong.blogspot.com/

    mSPDict từ điển android hỗ trợ liên kết tra trên các trình đọc sách điện tử và tra sách giấy thông qua camera
    http://www.tinhte.vn/threads/691731/

Các đề tài tương tự

  1. Đổi số thập phân sang nhị phân và ngược lại
    Gửi bởi CuiBapOnline trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 11
    Bài viết cuối: 29-10-2013, 10:50 PM
  2. Bài tập C đổi thập phân sang nhị phân
    Gửi bởi nhoklovex4 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 03-01-2013, 05:23 PM
  3. Hỏi về thuật toán chuyển so thập phan sang số nhị phân,thập lục phân
    Gửi bởi chicken_chip trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 4
    Bài viết cuối: 04-11-2011, 05:45 PM
  4. Chuyển hệ thập phân sang hệ thập lục phân, giúp mình
    Gửi bởi Yio_91 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 04-10-2010, 01:04 PM
  5. đổi số thập phân sang số nhị phân
    Gửi bởi hamhochoi2008 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 16-03-2008, 08:20 AM

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