Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Trang 1 trên tổng số 4 123... Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 33 kết quả

Đề tài: Nơi đề xuất, góp ý kiến cho topic "Tổng hợp các thuật toán cơ bản"

  1. #1
    Ngày gia nhập
    04 2008
    Nơi ở
    Bốn bề là nhà
    Bài viết
    703

    Mặc định Nơi đề xuất, góp ý kiến cho topic "Tổng hợp các thuật toán cơ bản"

    Hiện tôi có viết 1 box tổng hợp ở đây: http://forums.congdongcviet.com/show...751#post231751

    Do không muốn làm loãng topic, nên mọi đề xuất, thắc măc, đóng góp ý kiến các bạn hãy đưa ra ở đây.
    Bạn nào có thuật toán hay, hãy đóng góp bằng cách post ở đây đề mình move qua topic bên kia (sẽ giữ nguyên bản quyền tác giả).
    Trân trọng cám ơn.

    UP!
    Các bạn hãy tung "tuyệt chiêu" ra để cho mọi người mở rộng tầm mắt.
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    Đã được chỉnh sửa lần cuối bởi G.Perelman : 27-04-2011 lúc 09:08 AM.

  2. #2
    Ngày gia nhập
    02 2011
    Nơi ở
    Recycle bin
    Bài viết
    57

    một cách nữa để tính ước chung lớn nhất:
    C Code:
    1. int UCLN(int a,int b)
    2. {
    3.  while(a!=b)
    4.  {
    5.    if (a>b) a-=b;
    6.    else b-=a;
    7.  }
    8.  return a;
    9. }
    không nhớ rõ là của ai
    Viết đúng chính tả là một cách thể hiện lòng yêu nước

  3. #3
    Ngày gia nhập
    04 2008
    Nơi ở
    Bốn bề là nhà
    Bài viết
    703

    Cám ơn bạn vì tinh thần chia sẻ, nhưng thuật toán euclid hiện nay là 1 thuật toán khá hiệu quả,
    vì nó hội tụ nhanh hơn rất nhiều so với thuật toán bạn đưa ra (thuật toán này chắc ai cũng biết, vì tính đơn giản của nó).
    Dù sao cũng cám ơn bạn 1 lần nữa.
    Anything else?

  4. #4
    Ngày gia nhập
    12 2009
    Nơi ở
    The country of happiness
    Bài viết
    182

    mới được unban

    code C++ Sieve of Eratosthenes :

    C++ Code:
    1. #include<bitset>
    2. typedef vector<int> vi;
    3. typedef long long ll;
    4.  
    5. vi primes;
    6. bitset<10000010> bs;
    7. ll N ;
    8. int ntest;
    9.  
    10. void sieve(ll upper)
    11. {
    12.      bs.reset();
    13.      bs.flip();
    14.      bs.set(0,false);
    15.      bs.set(1,false);
    16.      N = upper + 1;
    17.      for(ll i = 2; i <= N; i++)
    18.      {
    19.             if(bs.test((size_t)i))
    20.             {
    21.                 for(ll j = i*i; j <= N; j+=i)
    22.                        bs.set((size_t)j,false);
    23.                 primes.push_back((int)i);
    24.             }
    25.      }
    26. }

    code kiểm tra số nguyên tố sử dụng Sieve of Eratothenes ( efficient in programming contest )

    C++ Code:
    1. Bước 1 : chạy sieve(N) với N là khoảng bạn cần. Nếu muốn kiểm tra số nguyên tố lớn tới 1 tỷ ( 9 chữ số 0 ) thì N = 40000
    2.  
    3. Hàm kiểm tra nguyên tố :
    4.  
    5. bool isPrime(ll x)
    6. {
    7.      if(x <= N) return bs.test(x); // độ phức tạp O(1) với x nhỏ hơn N
    8.      for(int i = 0; i <= primes.size() - 1; ++i)
    9.              if(x % primes[i] == 0) return false;
    10.      return true;
    11. }
    Đã được chỉnh sửa lần cuối bởi tiendaotd : 23-04-2011 lúc 04:15 PM.
    Trích dẫn Nguyên bản được gửi bởi Wazi Armstrong Xem bài viết
    Ôi skill của mình đã đạt đến hàng tuyệt đỉnh
    Không chỉ ăn, tắm, đi lại có thể code
    Mà giờ đã mình có thể code cả khi ngủ. Code tạm vào buffer của não, lúc nào dậy chỉ việc viết ra một cách trôi chảy không lưỡng lự.
    PS: Nếu ngủ dài rảnh rảnh có thể debug luôn, dậy chỉ việc build ?
    Trích dẫn Nguyên bản được gửi bởi vietanh8286 Xem bài viết
    Lập trình viên giỏi là lập trình viên có vợ

  5. #5
    Ngày gia nhập
    04 2008
    Nơi ở
    Bốn bề là nhà
    Bài viết
    703

    Xin lỗi, bạn có thể nói qua ý tưởng, hoặc thuật toán được không?
    Lưu ý, bạn chỉ cần viết 1 hàm chính, và các hàm phụ liên quan thôi nhé, không cần viết cả chương trình.

  6. #6
    Ngày gia nhập
    01 2010
    Nơi ở
    до свидания!
    Bài viết
    1,766

    Mặc định Nơi đề xuất, góp ý kiến cho topic "Tổng hợp các thuật toán cơ bản"

    Bổ sung thêm phần này nữa nhé: http://forums.congdongcviet.com/showthread.php?t=37060,....

  7. #7
    Ngày gia nhập
    12 2009
    Nơi ở
    The country of happiness
    Bài viết
    182

    Trích dẫn Nguyên bản được gửi bởi G.Perelman Xem bài viết
    Xin lỗi, bạn có thể nói qua ý tưởng, hoặc thuật toán được không?
    Lưu ý, bạn chỉ cần viết 1 hàm chính, và các hàm phụ liên quan thôi nhé, không cần viết cả chương trình.
    bên topic chính mới có code C# chứ chưa có code C++ nên mình bổ sung thôi

    thuật toán kiểm tra số nguyên tố bằng sàng Eratothenes thì như sau : với số X nhỏ hơn N , in ra luôn giá trị của mảng bool ( mảng bool này được xây dựng từ Eratothenes ) tức là O(1).

    với số X lớn hơn N, ta kiểm tra xem X có chia hết cho một trong các số nguyên tố nhỏ hơn N hay không. Nếu không thì xuất ra true, nếu có thì xuất ra false. Phạm vi chính xác của phép thử này là số X phải không lớn hơn bình phương của số nguyên tố gần N nhất.
    Trích dẫn Nguyên bản được gửi bởi Wazi Armstrong Xem bài viết
    Ôi skill của mình đã đạt đến hàng tuyệt đỉnh
    Không chỉ ăn, tắm, đi lại có thể code
    Mà giờ đã mình có thể code cả khi ngủ. Code tạm vào buffer của não, lúc nào dậy chỉ việc viết ra một cách trôi chảy không lưỡng lự.
    PS: Nếu ngủ dài rảnh rảnh có thể debug luôn, dậy chỉ việc build ?
    Trích dẫn Nguyên bản được gửi bởi vietanh8286 Xem bài viết
    Lập trình viên giỏi là lập trình viên có vợ

  8. #8
    Ngày gia nhập
    04 2008
    Nơi ở
    Bốn bề là nhà
    Bài viết
    703

    @tiendao: OMG, vậy để kiểm tra 1 số có phải nguyên tố hay không thì phải có 1 bước tiền xử lý (preprocessing) là đi sàng E đã phải không? Như vậy sợ rằng còn phức tạp hơn là phép kiểm tra thông thường.
    @Peter: Cám ơn Peter, mình sẽ chắt lọc các bài của bạn.
    @All: Mọi người hãy chung tay đóng góp, nếu mình tự viết và post thì sẽ chậm lắm, vì có nhiều thuật toán mình đã học xong từ lâu quá rồi.

  9. #9
    Ngày gia nhập
    03 2009
    Nơi ở
    %appdata%\Temp
    Bài viết
    819

    Trích dẫn Nguyên bản được gửi bởi G.Perelman Xem bài viết
    @tiendao: OMG, vậy để kiểm tra 1 số có phải nguyên tố hay không thì phải có 1 bước tiền xử lý (preprocessing) là đi sàng E đã phải không? Như vậy sợ rằng còn phức tạp hơn là phép kiểm tra thông thường.
    @Peter: Cám ơn Peter, mình sẽ chắt lọc các bài của bạn.
    @All: Mọi người hãy chung tay đóng góp, nếu mình tự viết và post thì sẽ chậm lắm, vì có nhiều thuật toán mình đã học xong từ lâu quá rồi.
    Phương pháp cái sàng này dùng để kiểm tra nhiều số có phải là nguyên tố hay không bạn ah. Trong trường hợp đầu vào lớn và phân phối dày thì nó rất hữu dụng đấy (Nhanh hơn việc kiểm tra từng số một rất nhiều lần)
    .::[The best way to predict the future is to invent it]::.
    __________________________________________________ _ - Alan Kay -

  10. #10
    Ngày gia nhập
    04 2008
    Nơi ở
    Bốn bề là nhà
    Bài viết
    703

    Xin thưa, "cái sàng" sinh ra với mục đích như vậy, nhưng bác kia dùng nó để kiểm tra 1 số x có phải là số nguyên tố hay không cơ ạ.
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

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

  1. Topic Luyện Thuật toán "Quy Hoạch Động"
    Gửi bởi linhcodervn trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 22
    Bài viết cuối: 04-05-2012, 04:40 PM
  2. eBook "Cấu Trúc Dữ Liệu & Giải Thuật Cài Đặt Bằng C" của Nguyễn Hồng Chương kiếm ở đâu?
    Gửi bởi nghedongnai trong diễn đàn Tài liệu, ebooks và công cụ
    Trả lời: 5
    Bài viết cuối: 30-03-2011, 08:36 PM
  3. Cùng nhau xây dựng Topic nha! "Võ Đường Quán"
    Gửi bởi hienclubvn trong diễn đàn Giải trí - Thư giãn
    Trả lời: 4
    Bài viết cuối: 11-08-2010, 04:38 PM
  4. Lập trình C chuyển bài toán "tổng số nguyên tố" sang "xuất nhập file"
    Gửi bởi long221091 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: 23-04-2010, 11:11 PM
  5. Đề xuất Thêm flag "Đã giải quyết" (Resolved) hay "chưa giải quyết" cho topic
    Gửi bởi cuonchagio trong diễn đàn Ý kiến, đề xuất và khiếu nại
    Trả lời: 3
    Bài viết cuối: 28-01-2010, 05:34 PM

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