Trang 2 / 8 FirstFirst 123457 ... LastLast
Hiển thị kết quả từ 11 đến 20 / 74
  1. #11
    Tham gia
    13-12-2008
    Location
    Vũng Tàu
    Bài viết
    393
    Like
    0
    Thanked 2 Times in 2 Posts
    hix , tui là girl đấy nhá . Khổ lắm nói mãi . Thế bạn tìm đc cái biến nào mà chứa nổi 10000! thì tui tính tích ra ngay cho . qword cũg chỉ chứa đc 18 chữ số thôi . Có thể lưu vô mảg , để tui nghiên cứu đã , sẽ post code sau . Phần phân tích của đoạn code trên nà
    Code:
    1000!=2.3.4.5...10000
    
    Mà mỗi số tự nhiên có đặc điểm là có thể biểu diễn bằng tích của các số nguyên tố, nếu nó là số nguyên tố rùi thì nó đc biểu diễn bằng chính nó nhân với 1
    VD:
    	54=2*3*3*3
    	7=7*1
    
    Giờ bài toán đặt ra là tính giai thừa của 1 số lớn, mà nếu lớn thì ko có biến nào chứa nổi, vì thế nên biểu diễn= tích của các số nguyên tố.
    VD:
    	66=2*3*11
    Trong đó 2, 3, 11 là các số nguyên tố
    Tính theo dãy số nguyên tố thì đc sắp xếp như sau: 
    	2 3 5 7 11
    ta thấy số 2,3,11 mỗi số xuất hiện 1 lần trong tích
    vì thế nên file out có dạng:
    	1 1 0 0 1
    0 là ko xuất hiện lần nào, vì 5 và 7 ko xuất hiện
    còn 2 3 11 thì xuất hiện 1 lần nên in ra số lần xuất hiện
    
    
    nên ch.trình của ta sẽ là
    Cho 1 biến i chạy từ 2 đến n (1 k là số nguyên tố => chạy từ 2 ) , và mỗi giá trị của i thì gọi thủ tục Xuly(i:integer) 1 lần
    
    Trong phần xử lí ta sẽ làm như sau:
    cho biến t=2, t sẽ là các số nguyên tố mà số i sẽ chia hết, nếu ko chia hết thì cứ tăng t lên và thế mà chia cho đến khi i=1 thì thui
    dùng mảng a để lưu số lần xuất hiện của t, sẽ đc tính là a[t], và dùng 1 mảng đánh dấu là dd để bỏ wa ko in ra cái t ko phải là số nguyên tố khi tăng t 1 đơn vị ngẫu nhiên wa mỗi vòng lặp nếu i ko chia hết cho t.
    
    Phần in ra, ta cho i chạy từ 2 đến t, nếu dd[t]=true { xác định t là số nguyên tố} thì mới in ra a[t] { là số lần xuất hiện của t đc lưu trong mảng a}
    Hết.
    Được sửa bởi hang_vt lúc 21:02 ngày 03-01-2009

  2. #12
    Tham gia
    28-09-2007
    Location
    Vĩnh Yên-Vĩnh Phúc
    Bài viết
    1,167
    Like
    6
    Thanked 14 Times in 12 Posts
    Quote Được gửi bởi chutieukhocnhe View Post
    Cái ý tưởng của huysun đưa ra làm em thật bất ngờ, đơn giản vậy mà em ko nghĩ ra, sẵn đây em hỏi anh huysun, anh căn cứ vào đâu để kiếm được cái thuật giải đó ? Để em dựa vào kinh nghiệm đó mà học hỏi giải những bài toán khác.
    sách toán nâng cao lớp 6.(ko nhớ sách gì, của ai)

    [=========> Bổ sung bài viết <=========]

    http://www.vphausa.org/vphavn/vdt/Ma%20Phuong.pdf tìm trên google ra cái này
    Được sửa bởi huysun lúc 22:20 ngày 03-01-2009 Reason: Bổ sung bài viết

  3. #13
    Tham gia
    13-12-2008
    Location
    Vũng Tàu
    Bài viết
    393
    Like
    0
    Thanked 2 Times in 2 Posts
    hứa hôm nay sẽ post nhưg ct có vấn đề mới chạy đến 9800! thôi . Để ngâm cứu lại nhá . SR

  4. #14
    Tham gia
    16-11-2007
    Bài viết
    221
    Like
    0
    Thanked 1 Time in 1 Post
    Quote Được gửi bởi chutieukhocnhe View Post
    Dạ em học lớp 9, nhưng ở chỗ em bắt đầu học pascal hồi lớp 8 à, em mới học có 2 năm à đâu có như mấy anh học tin từ hồi cấp 1. Mấy anh có phương pháp học pascal hay kinh nghiệm thì chia sẻ cho em với, em phải làm sao để được như mấy anh, đại khái là như thế.

    Cái ý tưởng của huysun đưa ra làm em thật bất ngờ, đơn giản vậy mà em ko nghĩ ra, sẵn đây em hỏi anh huysun, anh căn cứ vào đâu để kiếm được cái thuật giải đó ? Để em dựa vào kinh nghiệm đó mà học hỏi giải những bài toán khác.

    [=========> Bổ sung bài viết <=========]

    Sẵn đây cho em hỏi, làm thế nào để viết 1 cái giao diện đẹp cho chương trình bằng pascal. Giống như giao diện mấy chương trình trên dos đó.

    Còn cái này nữa. Em nghe nói máy tính có thể tính khoảng mấy triệu phép tính mỗi giây, mà sao đằng này em thấy người ta tính giai thừa của 10000! thôi mà nó tính tới mấy giây lựng ???
    Anh mới học đc 1 năm nè em.Học chung lớp với MMKC_IT đấy!!

  5. #15
    Tham gia
    14-09-2008
    Location
    /hcm city
    Bài viết
    14
    Like
    0
    Thanked 0 Times in 0 Posts
    Tui mới học pascal từ cuối năm lớp 8 nè, giờ lớp 9 rùi hehehhe

  6. #16
    Tham gia
    27-11-2008
    Bài viết
    36
    Like
    0
    Thanked 0 Times in 0 Posts

    Sory !

    Quote Được gửi bởi hang_vt View Post
    hix , tui là girl đấy nhá . Khổ lắm nói mãi .
    Sory chị nhen ! Em mới vô nên ko biết mà.

    [=========> Bổ sung bài viết <=========]

    Hình như em nhớ. Em có coi qua cái code nào tính được 10000! ra số đàng hoàng luôn. Nhưng đợi hơi mệt! Code đó em kiếm lâu quá rồi quên. Chẻng lẻ mình già rồi sao trời.

    Mấy anh chị học lớp 9, sao học pascal dữ vậy chỉ em nhỏ đây với . Em là chutieukhocnhe nhé, mọi người nhớ nhé. Có bí quyết , kinh nghiệm học tốt pascal chỉ em với. Từ bi, hỷ xã nhé mọi người. "Lợi hòa đồng quân" !!!
    Được sửa bởi chutieukhocnhe lúc 15:49 ngày 06-01-2009 Reason: Bổ sung bài viết

  7. #17
    Tham gia
    28-09-2007
    Location
    Vĩnh Yên-Vĩnh Phúc
    Bài viết
    1,167
    Like
    6
    Thanked 14 Times in 12 Posts
    Quote Được gửi bởi chutieukhocnhe View Post
    Sory chị nhen ! Em mới vô nên ko biết mà.

    [=========> Bổ sung bài viết <=========]

    Hình như em nhớ. Em có coi qua cái code nào tính được 10000! ra số đàng hoàng luôn. Nhưng đợi hơi mệt! Code đó em kiếm lâu quá rồi quên. Chẻng lẻ mình già rồi sao trời.

    Mấy anh chị học lớp 9, sao học pascal dữ vậy chỉ em nhỏ đây với . Em là chutieukhocnhe nhé, mọi người nhớ nhé. Có bí quyết , kinh nghiệm học tốt pascal chỉ em với. Từ bi, hỷ xã nhé mọi người. "Lợi hòa đồng quân" !!!
    trước hết tập thạo cách tính 1000! bằng mảng 1 chiều.
    sau đó cải tiến:
    thay kiểu dữ liệu của các phần tử trong mảng thành longint hoặc word.
    thay div 10, mod 10 thành div 1 triệu,mod 1 triệu (với longint) hay div 1000, mod 1000(với word).
    tốc độ làm việc chắc chắn nhanh hơn nhiều.

  8. #18
    Tham gia
    20-12-2008
    Bài viết
    1
    Like
    0
    Thanked 0 Times in 0 Posts
    ai co de thi hoc sinh gioi quoc gia cac nam gan day thi
    goi len giup minh cai>> minh dang can

  9. #19
    Tham gia
    27-11-2008
    Bài viết
    36
    Like
    0
    Thanked 0 Times in 0 Posts

    Thông tin Reply to Thread

    Quote Được gửi bởi huysun View Post
    trước hết tập thạo cách tính 1000! bằng mảng 1 chiều.
    sau đó cải tiến:
    thay kiểu dữ liệu của các phần tử trong mảng thành longint hoặc word.
    thay div 10, mod 10 thành div 1 triệu,mod 1 triệu (với longint) hay div 1000, mod 1000(với word).
    tốc độ làm việc chắc chắn nhanh hơn nhiều.
    Ụa mà tính 1000! bằng mảng tính sao vậy anh ? Chẳng lẻ nhân rồi chia ???

  10. #20
    Tham gia
    13-12-2008
    Location
    Vũng Tàu
    Bài viết
    393
    Like
    0
    Thanked 2 Times in 2 Posts
    Quote Được gửi bởi chutieukhocnhe View Post
    Ụa mà tính 1000! bằng mảng tính sao vậy anh ? Chẳng lẻ nhân rồi chia ???
    nếu tui k nhầm thì là thế này : do k có biến nào đủ lớn để lưu gtrị của 1000! nên ta sẽ dùng mảg để lưu . Lúc đầu gán tất cả phần tử a[1]...a[n-1]=0 , a[n]=1 . Lưu dần giá trị vào từng phần tử của mảng & in ra mảg ấy . Tui cũng có đoạn code theo cách này nhưg chỉ chạy đến 9800! thôi . Nếu cần tui post cho , ùi sửa chữa j` đó thì sửa

Trang 2 / 8 FirstFirst 123457 ... LastLast

Bookmarks

Quy định

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