GithubHelp home page GithubHelp logo

nguyenphuc22 / design-patterns Goto Github PK

View Code? Open in Web Editor NEW
67.0 4.0 23.0 4.39 MB

Sách Design Pattern Tiếng Việt - Một cái nhìn tổng quan về design pattern trong lập trình.

Home Page: https://nguyenphuc22.github.io/Design-Patterns/

License: MIT License

Kotlin 95.02% HTML 4.98%
design-patterns creational-patterns behavioral behavioral-patterns structural-patterns java

design-patterns's Introduction

BuymeCoffee Twitter YouTube Blog

Github

GitHub Status

design-patterns's People

Contributors

nguyenphuc22 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

design-patterns's Issues

Explore and Document Low-Complexity Multiplication Algorithms like Karatsuba and Schönhage-Strassen

Mục tiêu

Nghiên cứu, trình bày và giải thích các thuật toán nhân hai số nguyên với độ phức tạp thấp, đặc biệt là Karatsuba và Schönhage-Strassen.

Chi tiết nhiệm vụ

  • Karatsuba Algorithm: Nghiên cứu và giải thích thuật toán nhân Karatsuba, một phương pháp hiệu quả hơn so với phương pháp nhân truyền thống.
  • Schönhage-Strassen Algorithm: Tìm hiểu và mô tả thuật toán nhân Schönhage-Strassen, một kỹ thuật tiên tiến hơn trong việc nhân số nguyên lớn.

Yêu cầu

  1. Trình bày một cách rõ ràng và chi tiết về nguyên lý hoạt động của mỗi thuật toán.
  2. So sánh và đánh giá sự khác biệt về độ phức tạp giữa các thuật toán này và phương pháp nhân truyền thống.
  3. Chuẩn bị các ví dụ minh họa, nếu có thể, hãy triển khai thuật toán trong một ngôn ngữ lập trình để chứng minh hiệu quả của chúng.

Hướng dẫn thêm

  • Khuyến khích sử dụng các nguồn tài liệu nghiên cứu chất lượng để hỗ trợ cho việc giải thích và đánh giá.
  • Cân nhắc việc tạo tài liệu hoặc báo cáo để trình bày kết quả nghiên cứu một cách khoa học và chuyên nghiệp.

Lưu ý: Đối với phần này, nếu có triển khai thuật toán, cần tạo branch riêng và sau đó tạo pull request để review. Nếu là báo cáo hoặc tài liệu, có thể sử dụng hệ thống quản lý tài liệu hoặc wiki của dự án để chia sẻ.

Thảo luận và Cập nhật

Mọi thảo luận, cập nhật hoặc thay đổi liên quan đến nhiệm vụ này nên được thực hiện thông qua các comments trong issue này, đảm bảo rằng tất cả thành viên trong nhóm đều được thông báo và cập nhật tiến độ công việc.

Implement Modulo Operation for BigInt

Mục tiêu

Triển khai phép modulo cho cấu trúc số nguyên lớn (BigInt) trong C++.

Chi tiết nhiệm vụ

  • Phép modulo (mod): Implement phép tính modulo giữa hai đối tượng BigInt. Phép modulo cần xử lý chính xác với các số có độ dài bất kỳ, bao gồm cả số dương và số âm.

Yêu cầu

  1. Xử lý chính xác việc tính modulo giữa hai số nguyên lớn.
  2. Đảm bảo hiệu suất tối ưu, đặc biệt khi làm việc với số nguyên lớn.
  3. Đảm bảo bài test vượt qua tất cả các Test-case.

Hướng dẫn thêm

  • Cần xử lý cẩn thận các trường hợp như modulo với số 0 và các số âm.
  • Khuyến khích sử dụng các thuật toán hiệu quả để tối ưu hóa quá trình tính toán.

Lưu ý: Cần tạo branch riêng cho nhiệm vụ này và sau đó tạo pull request để review và merge vào branch chính sau khi hoàn thành.

Thảo luận và Cập nhật

Mọi thảo luận, cập nhật hoặc thay đổi liên quan đến nhiệm vụ này nên được thực hiện thông qua các comments trong issue này, đảm bảo rằng tất cả thành viên trong nhóm đều được thông báo và cập nhật tiến độ công việc.

Implement Fast Exponentiation (pow) Operation for BigInt

Mục tiêu

Triển khai phép lũy thừa nhanh (pow) cho cấu trúc số nguyên lớn (BigInt) trong C++.

Chi tiết nhiệm vụ

  • Phép lũy thừa nhanh (pow): Implement phép lũy thừa nhanh pow(x, m, n) để tính x^m mod n cho BigInt. Đây là một phép toán quan trọng và cần được xử lý với hiệu suất cao.

Yêu cầu

  1. Xử lý chính xác việc tính x^m mod n, với x, mn là các số nguyên lớn.
  2. Tối ưu hiệu suất, đặc biệt quan trọng cho các ứng dụng cần tính toán nhanh.
  3. Đảm bảo bài test vượt qua tất cả các Test-case.

Hướng dẫn thêm

  • Khảo sát và áp dụng các thuật toán lũy thừa nhanh như phương pháp lũy thừa nhị phân hoặc thuật toán Exponentiation by Squaring.
  • Cân nhắc việc xử lý các trường hợp đặc biệt như mũ 0, mũ âm hoặc n là số 0.

Lưu ý: Cần tạo branch riêng cho nhiệm vụ này và sau đó tạo pull request để review và merge vào branch chính sau khi hoàn thành.

Thảo luận và Cập nhật

Mọi thảo luận, cập nhật hoặc thay đổi liên quan đến nhiệm vụ này nên được thực hiện thông qua các comments trong issue này, đảm bảo rằng tất cả thành viên trong nhóm đều được thông báo và cập nhật tiến độ công việc.

Setup Project Structure and CI/CD Pipeline

Mục tiêu

Thiết lập cấu trúc tổng quát của dự án và môi trường test kèm theo hệ thống Integration và Deployment tự động (CI/CD) cho dự án BigInt.

Chi tiết nhiệm vụ

  • Cấu trúc dự án: Xác định và thiết lập cấu trúc thư mục và quy ước đặt tên cho mã nguồn, tài liệu, và test cases.
  • Môi trường test: Thiết lập môi trường test đảm bảo tính nhất quán và dễ dàng thực hiện test đối với mã nguồn.
  • CI/CD Pipeline: Cài đặt và cấu hình pipeline tự động cho Continuous Integration và Continuous Deployment sử dụng công cụ như Jenkins, Travis CI, GitHub Actions, hoặc tương tự.

Yêu cầu

  1. Cấu trúc dự án phải rõ ràng, dễ hiểu và dễ navigate.
  2. Môi trường test cần đảm bảo tính chính xác và hiệu quả, có thể tích hợp với các công cụ tự động.
  3. CI/CD pipeline cần được cài đặt và cấu hình phù hợp để tự động hóa các quy trình build, test và deploy.

Hướng dẫn thêm

  • Tìm hiểu các best practices về cấu trúc dự án và CI/CD.
  • Xem xét việc sử dụng containerization như Docker để đơn giản hóa việc thiết lập môi trường phát triển và test.
  • Tài liệu hóa các bước cài đặt và cấu hình để thành viên mới có thể dễ dàng bắt kịp.

Lưu ý: Khuyến khích thảo luận và chia sẻ tiến độ trong quá trình làm việc để đảm bảo việc cài đặt đáp ứng nhu cầu của toàn bộ nhóm.

Thảo luận và Cập nhật

Mọi thảo luận, cập nhật hoặc thay đổi liên quan đến nhiệm vụ này nên được thực hiện thông qua các comments trong issue này, đảm bảo rằng tất cả thành viên trong nhóm đều được thông báo và cập nhật tiến độ công việc.

Implement Multiplication Operation for BigInt

Mục tiêu

Triển khai phép nhân cho cấu trúc số nguyên lớn (BigInt) trong C++.

Chi tiết nhiệm vụ

  • Phép nhân (*): Implement phép nhân giữa hai đối tượng BigInt. Phép nhân cần xử lý chính xác với các số có độ dài bất kỳ, bao gồm cả số dương và số âm.

Yêu cầu

  1. Xử lý chính xác việc nhân hai số nguyên lớn, kể cả khi chúng có độ dài khác nhau.
  2. Đảm bảo hiệu suất tối ưu, đặc biệt khi làm việc với số nguyên lớn.
  3. Đảm bảo bài test vượt qua tất cả các Test-case.

Hướng dẫn thêm

  • Xem xét việc sử dụng các thuật toán nhân hiệu quả như thuật toán Karatsuba hoặc thuật toán FFT để tối ưu hóa quá trình nhân.
  • Cân nhắc việc xử lý tràn số và tối ưu hóa việc nhân số nguyên lớn.

Lưu ý: Cần tạo branch riêng cho nhiệm vụ này và sau đó tạo pull request để review và merge vào branch chính sau khi hoàn thành.

Thảo luận và Cập nhật

Mọi thảo luận, cập nhật hoặc thay đổi liên quan đến nhiệm vụ này nên được thực hiện thông qua các comments trong issue này, đảm bảo rằng tất cả thành viên trong nhóm đều được thông báo và cập nhật tiến độ công việc.

Implement Subtraction Operation for BigInt

Mục tiêu

Triển khai phép trừ cho cấu trúc số nguyên lớn (BigInt) trong C++.

Chi tiết nhiệm vụ

  • Phép trừ (-): Implement phép trừ giữa hai đối tượng BigInt. Phép trừ cần xử lý chính xác với các số có độ dài bất kỳ, bao gồm cả số dương và số âm.

Yêu cầu

  1. Xử lý chính xác việc trừ hai số nguyên lớn, kể cả khi chúng có độ dài khác nhau.
  2. Đảm bảo hiệu suất tối ưu, đặc biệt khi làm việc với số nguyên lớn.
  3. Đảm bảo bài test vượt qua tất cả các Test-case.

Hướng dẫn thêm

  • Cân nhắc việc xử lý tràn số khi trừ các số có độ dài lớn.
  • Sử dụng các kỹ thuật và thuật toán hiệu quả để tối ưu hóa quá trình trừ.

Lưu ý: Cần tạo branch riêng cho nhiệm vụ này và sau đó tạo pull request để review và merge vào branch chính sau khi hoàn thành.

Thảo luận và Cập nhật

Mọi thảo luận, cập nhật hoặc thay đổi liên quan đến nhiệm vụ này nên được thực hiện thông qua các comments trong issue này, đảm bảo rằng tất cả thành viên trong nhóm đều được thông báo và cập nhật tiến độ công việc.

Implement Division Operation for BigInt

Mục tiêu

Triển khai phép chia cho cấu trúc số nguyên lớn (BigInt) trong C++.

Chi tiết nhiệm vụ

  • Phép chia (/): Implement phép chia giữa hai đối tượng BigInt. Phép chia cần xử lý chính xác với các số có độ dài bất kỳ, bao gồm cả số dương và số âm.

Yêu cầu

  1. Xử lý chính xác việc chia hai số nguyên lớn, kể cả khi chúng có độ dài khác nhau.
  2. Đảm bảo hiệu suất tối ưu, đặc biệt khi làm việc với số nguyên lớn.
  3. Đảm bảo bài test vượt qua tất cả các Test-case.

Hướng dẫn thêm

  • Xem xét việc xử lý các trường hợp phức tạp như chia cho số 0, và việc xử lý số dư.
  • Khuyến khích sử dụng các thuật toán chia hiệu quả để tối ưu hóa quá trình chia.

Lưu ý: Cần tạo branch riêng cho nhiệm vụ này và sau đó tạo pull request để review và merge vào branch chính sau khi hoàn thành.

Thảo luận và Cập nhật

Mọi thảo luận, cập nhật hoặc thay đổi liên quan đến nhiệm vụ này nên được thực hiện thông qua các comments trong issue này, đảm bảo rằng tất cả thành viên trong nhóm đều được thông báo và cập nhật tiến độ công việc.

Implement Addition Operation for BigInt

Mục tiêu

Triển khai phép cộng cho cấu trúc số nguyên lớn (BigInt) trong [tên ngôn ngữ lập trình].

Chi tiết nhiệm vụ

  • Phép cộng (+): Implement phép cộng giữa hai đối tượng BigInt. Phép cộng cần xử lý chính xác với các số có độ dài bất kỳ, bao gồm cả số dương và số âm.

Yêu cầu

  1. Xử lý chính xác việc cộng hai số nguyên lớn, kể cả khi chúng có độ dài khác nhau.
  2. Đảm bảo hiệu suất tối ưu, đặc biệt khi làm việc với số nguyên lớn.
  3. Đảm bảo bài test vượt qua tất cả các Test-case.

Hướng dẫn thêm

  • Cân nhắc việc xử lý tràn số khi cộng các số có độ dài lớn.
  • Sử dụng các kỹ thuật và thuật toán hiệu quả để tối ưu hóa quá trình cộng.

Lưu ý: Cần tạo branch riêng cho nhiệm vụ này và sau đó tạo pull request để review và merge vào branch chính sau khi hoàn thành.

Thảo luận và Cập nhật

Mọi thảo luận, cập nhật hoặc thay đổi liên quan đến nhiệm vụ này nên được thực hiện thông qua các comments trong issue này, đảm bảo rằng tất cả thành viên trong nhóm đều được thông báo và cập nhật tiến độ công việc.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.