nhờ AI tạo thử mạng neural, đọc file jpg, zip, QR code (4 người xem)

Người dùng đang xem chủ đề này

  • anhtuanle123

    Thành viên tiêu biểu
    Tham gia
    8/6/09
    Bài viết
    435
    Được thích
    292
    tạo thử code nhận diện !
    1787052034485.png1787052070783.png
     

    File đính kèm

    Lần chỉnh sửa cuối:
    Chủ đề này hay quá bác ơi! Bác đã chạy test thử với tập dữ liệu nào chưa, tốc độ xử lý của Excel có bị lag không?

    Thường thì code VBA do AI sinh ra (kiểu như ChatGPT) khá tốt về mặt logic, nhưng khi xử lý thuật toán nặng như Neural Network thì hay bị lỗi ở khâu khai báo mảng (Array) hoặc lồng quá nhiều vòng lặp. Cứ nạp dữ liệu lớn vào là Excel rất dễ bị đơ (Not Responding).

    Bác cứ share nguyên đoạn code hoặc đính kèm file demo lên đây để anh em cùng chạy thử và tối ưu tốc độ xem sao nhé. Hóng kết quả từ bác!
     
    mình chỉ trò chuyện với AI , rùi nó cho code chạy thôi ah, code có trong file macro đính kèm bên trên, mình sẽ vặn vẹo nó thêm, nếu có code ngon hơn sẽ share ^^
    --------------------------------------------------------------
    hỏi : đoạn code này có thể dùng để làm các ứng dụng như nhận diện vân tay của vài nghìn người hoặc nhận diện khuôn mặt không ?
    --------------------------------------------------------------
    Câu trả lời ngắn gọn là: KHÔNG, đoạn code này không thể dùng để nhận diện vân tay hay khuôn mặt cho vài nghìn người trong thực tế.

    Mặc dù đoạn code của bạn chứa những "hạt nhân" toán học cơ bản nhất của trí tuệ nhân tạo (lan truyền tiến, lan truyền ngược, hàm kích hoạt), nhưng để giải quyết bài toán phức tạp như vân tay hay khuôn mặt, người ta cần những kiến trúc mạng và nền tảng hoàn toàn khác.

    Dưới đây là 4 lý do cốt lõi giải thích tại sao đoạn code này không đáp ứng được:

    1. Kiến trúc mạng (MLP vs. CNN)​

    • Code của bạn (MLP): Đang sử dụng kiến trúc Multi-Layer Perceptron. Nhược điểm lớn nhất của nó là "dàn phẳng" bức ảnh (biến ma trận 8x10 thành một mảng dài 80 phần tử). Việc này phá hủy hoàn toàn cấu trúc không gian 2D của hình ảnh. Hai điểm ảnh nằm cạnh nhau trên trục dọc sẽ bị đẩy ra xa nhau trong mảng 1D, khiến AI không hiểu được các đường nét, góc cạnh.
    • Thực tế: Hệ thống nhận diện khuôn mặt/vân tay bắt buộc phải dùng Mạng nơ-ron tích chập (CNN - Convolutional Neural Networks). CNN sử dụng các bộ lọc (filters) quét qua bức ảnh để nhận diện được các đặc điểm từ nhỏ (cạnh, góc, đường vân) đến lớn (mắt, mũi, vòng xoáy vân tay) mà không làm mất thông tin không gian.

    2. Sự nhạy cảm với vị trí (Translation Invariance)​

    • Code của bạn: Nếu bạn vẽ chữ "A" nhưng dịch nó sang phải 1 pixel hoặc hơi nghiêng, mô hình này khả năng cao sẽ nhận diện sai hoàn toàn. Nó học vẹt vị trí pixel cố định (pixel số 15 phải là màu đen).
    • Thực tế: Khuôn mặt hay ngón tay của người dùng không bao giờ đặt ở vị trí hoàn hảo giống nhau 100% mỗi lần quét (ánh sáng khác, góc nghiêng khác, xa gần khác). Kiến trúc của bạn không có khả năng chống chịu sự thay đổi này.

    3. Giới hạn phần cứng và Ngôn ngữ (Excel VBA)​

    • Sức mạnh tính toán: Nhận diện chữ 8x10 pixel cần $80 \times 64 = 5.120$ trọng số. Tuy nhiên, một ảnh vân tay hoặc khuôn mặt cơ bản nhất cũng phải đạt độ phân giải tối thiểu 112x112 pixel (12.544 đầu vào). Nếu đưa vào mạng để nhận diện vài nghìn người, số lượng trọng số sẽ lên tới hàng chục triệu.
    • Tốc độ: Chạy vài triệu phép tính nhân ma trận bằng vòng lặp For của VBA trên CPU sẽ khiến Excel "treo" vĩnh viễn. Trong thực tế, quá trình này cần được tính toán song song trên các card đồ họa (GPU) chuyên dụng thông qua C++ hoặc Python.

    4. Cách thức phân loại (Classification vs. Embedding)​

    • Code của bạn: Đang dùng Softmax để phân loại trực tiếp. Tức là đầu ra có 4 lớp (A, B, D, O). Nếu có 5.000 người, bạn cần 5.000 nút đầu ra. Nếu thêm 1 người mới, bạn phải đập đi huấn luyện lại mạng từ đầu.
    • Thực tế: Các hệ thống FaceID không phân loại trực tiếp như vậy. Chúng dùng AI để nén bức ảnh khuôn mặt thành một "vector đặc trưng" (embedding) gồm ví dụ 512 con số. Khi quét mặt bạn, nó tạo ra vector này và đối chiếu với cơ sở dữ liệu xem có vector nào "gần giống" nhất (tính bằng khoảng cách toán học). Việc này cho phép thêm người mới vào hệ thống mà không cần huấn luyện lại AI.
    Tóm lại: Đoạn code VBA của bạn là một tài liệu học tập xuất sắc để hiểu cách một Mạng nơ-ron hoạt động "dưới mui xe". Tuy nhiên, để làm ứng dụng thực tế về thị giác máy tính, bạn sẽ cần chuyển sang ngôn ngữ Python, sử dụng thư viện PyTorch / TensorFlow, và học về kiến trúc mạng CNN / ResNet.

    --------------------------------------------------------------------
    Hỏi : vậy nếu chỉ viết code VBA Excel thì mạng Newral làm được những gì ?
    --------------------------------------------------------------------
    Dù bị giới hạn về tốc độ tính toán, một Mạng nơ-ron (Neural Network) được viết thuần bằng VBA Excel vẫn hoàn toàn xử lý tốt các bài toán Machine Learning dạng dữ liệu bảng (Tabular Data) hoặc chuỗi thời gian đơn giản—nơi dữ liệu đầu vào là các con số, thuộc tính hoặc chỉ số định lượng thay vì hàng triệu pixel ảnh.

    Dưới đây là những ứng dụng thực tế và khả thi nhất mà bạn có thể xây dựng:

    1. Dự báo & Phân tích Chuỗi thời gian (Time-Series Forecasting)​

    • Dự báo Doanh thu / Cầu hàng hóa: Dự đoán doanh số bán hàng tháng tới dựa trên dữ liệu lịch sử (doanh thu các tháng trước, chi phí marketing, yếu tố mùa vụ).
    • Dự báo Tài chính & Bất động sản: Dự đoán giá nhà dựa trên diện tích, số phòng, vị trí; hoặc dự đoán chỉ số chứng khoán/tỷ giá ngắn hạn dựa trên các chỉ báo kỹ thuật.

    2. Phân loại & Chẩn đoán (Classification Problems)​

    • Đánh giá Rủi ro Tín dụng (Credit Scoring): Phân loại hồ sơ vay tiền thành "An toàn" hay "Rủi ro" dựa trên thu nhập, độ tuổi, lịch sử dư nợ và số người phụ thuộc.
    • Dự đoán Tỷ lệ Rời bỏ của Khách hàng (Customer Churn): Phân loại khách hàng nào có khả năng hủy dịch vụ dựa trên tần suất sử dụng, số lần khiếu nại và số tiền chi trả.
    • Chẩn đoán Y tế cơ bản: Phân loại khả năng mắc bệnh (ví dụ: tiểu đường, tim mạch) dựa trên các chỉ số sinh hóa (huyết áp, chỉ số BMI, lượng đường trong máu).

    3. Nhận dạng Mẫu đơn giản (Simple Pattern Recognition)​

    • Nhận dạng Chữ số / Ký tự viết tay cỡ nhỏ: Nhận diện chữ số từ $0$ đến $9$ hoặc ký tự đơn giản trên ma trận pixel nhỏ (như ma trận $8 \times 8$ hoặc $10 \times 10$ tương tự ví dụ của bạn).
    • Phân loại Cảm xúc Văn bản đơn giản (Sentiment Analysis): Đánh giá bình luận của khách hàng là "Tích cực" hay "Tiêu cực" dựa trên tần suất xuất hiện của các từ khóa được mã hóa thành số (Bag-of-Words).

    4. Bảng điều khiển Giảng dạy & Trực quan hóa AI (Educational Dashboard)​

    • Mô phỏng Quá trình Học (Training Visualizer): Đây là điểm mạnh nhất của Excel. Bạn có thể vẽ đồ thị biểu diễn hàm mất mát (Loss Curve) giảm dần qua từng vòng lặp (Epoch), hoặc hiển thị sự thay đổi của từng trọng số (Weights) trực tiếp lên ô tính Excel theo thời gian thực để phục vụ giảng dạy và nghiên cứu toán học.

    Bảng tóm tắt giới hạn năng lực của Mạng Nơ-ron trên VBA​

    Loại bài toánKhả năng của VBA Neural NetworkVí dụ thực tế
    Dữ liệu bảng (Numbers/Table)Rất tốt (Dưới 10.000 dòng, 20-50 thuộc tính)Dự báo doanh thu, chấm điểm tín dụng
    Dữ liệu Ký tự / Ảnh nhỏKhá (Ảnh ma trận dưới $16 \times 16$ pixel)Nhận diện chữ số viết tay đơn giản
    Ảnh lớn / Video (FaceID)Không thể (Do quá tải bộ nhớ & tốc độ CPU)Nhận diện khuôn mặt, vân tay thực tế
    Xử lý Ngôn ngữ lớn (LLM)Không thể (Yêu cầu hàng tỷ trọng số)ChatGPT, DeepSeek
     

    [Chia sẻ] "Bẻ khóa" thuật toán JPEG và kết xuất hình ảnh bằng Pure VBA 100%​

    Chào mọi người, hôm nay mình muốn chia sẻ một dự án kỹ thuật mang tính thử thách cực cao: Một bộ giải mã hình ảnh JPG hoàn chỉnh (JPEG Decoder) được viết bằng 100% Pure VBA, không sử dụng bất kỳ thư viện ngoài (DLL), API Windows, hay công cụ hỗ trợ nào khác. Chỉ VBA và toán học thuần túy!

    Tầm vóc của dự án​

    Trong lập trình, việc gọi hàm để đọc một bức ảnh là thao tác cơ bản. Tuy nhiên, tự tay viết mã để "mổ xẻ" tệp nhị phân JPG, can thiệp vào từng bit (0 và 1) và ép Excel tự tính toán để đổ màu ra từng ô (cell) lại là một câu chuyện hoàn toàn khác. VBA vốn không được thiết kế để xử lý luồng nhị phân tốc độ cao hay giải các ma trận lượng giác phức tạp.

    Dự án này là minh chứng cho việc khi chúng ta thấu hiểu thuật toán cốt lõi, giới hạn của ngôn ngữ lập trình chỉ là rào cản mỏng manh. Nó biến Excel từ một công cụ bảng tính trở thành một lõi xử lý đồ họa (GPU) sơ khai.

    Lịch sử định dạng JPEG​

    Ra đời vào năm 1992 bởi Joint Photographic Experts Group, JPEG đã tạo ra một cuộc cách mạng định hình lại toàn bộ Internet. Thay vì lưu trữ cồng kềnh như định dạng BMP, JPEG sử dụng cơ chế nén "có tổn hao" (lossy compression) dựa trên sự đánh lừa thị giác của mắt người. Nhờ khả năng ép dung lượng xuống mức tối thiểu mà vẫn giữ được độ chân thực, JPEG đã giữ vững ngôi vương là chuẩn hình ảnh phổ biến nhất thế giới suốt hơn 3 thập kỷ.

    Giải phẫu thuật toán cốt lõi​

    Để biến hàng triệu ký tự nhị phân vô nghĩa thành một bức ảnh hiển thị hoàn hảo trên Excel, đoạn code này phải tái hiện lại 4 thuật toán kinh điển nhất của khoa học máy tính:

    • Không gian màu YCbCr: Thay vì lưu màu hệ RGB (Đỏ, Xanh lá, Xanh dương), JPG lưu dữ liệu dưới dạng Độ sáng (Luma) và Độ lệch màu (Chroma) để nén các chi tiết màu sắc mà mắt người kém nhạy cảm.
    • Biến đổi Cosin rời rạc ngược (IDCT): Đây là "trái tim" của JPEG. Thuật toán này sử dụng các phép toán lượng giác để chuyển đổi dữ liệu từ không gian tần số (bước sóng ánh sáng) trở lại thành ma trận điểm ảnh 8x8.
    • Giải lượng tử hóa (Dequantization): Sử dụng các bảng lượng tử (Quantization Tables) để khôi phục lại các hệ số đã được làm tròn trong quá trình nén.
    • Giải mã Huffman (Huffman Decoding): Một thuật toán nén không tổn hao vô cùng chặt chẽ. Bộ đọc phải xử lý từng bit đơn lẻ đi qua một cây nhị phân phức tạp; chỉ cần lệch 1 bit hoặc bỏ lỡ một cờ đồng bộ (Restart Marker), toàn bộ bức ảnh sẽ bị vỡ vụn.
    Hy vọng đoạn code này sẽ giúp các bạn yêu thích lập trình có một tài liệu tham khảo thực tế về cách dữ liệu số hoạt động ở tầng sâu nhất.

    mình copy paste mà đọc lại còn không hiểu :cool::cool::cool::cool::cool::cool::cool:

    1789474409291.png
     

    File đính kèm

    Lần chỉnh sửa cuối:

    [Chia sẻ] "Bẻ khóa" thuật toán tạo QR code bằng Pure VBA 100%
    TỪ NHỮNG Ô CỜ ĐEN TRẮNG ĐẾN CẢ THẾ GIỚI KỶ NGUYÊN SỐ: BẢN HÙNG CA MANG TÊN QR CODE​

    Có bao giờ bạn đứng trước một cây ATM quét mã chuyển tiền, hay lướt qua một biển quảng cáo giữa ngã tư sầm uất và tự hỏi: "Làm sao những ô vuông đen trắng hỗn loạn trông như một trò chơi xếp hình bị lỗi kia lại có thể chứa đựng cả thế giới thông tin bên trong?"

    Hôm nay, khi vừa đặt dòng code cuối cùng cho dự án tự dựng động cơ mã hóa QR Code thuần (Pure Implementation) chuẩn ISO/IEC 18004 mà không thèm xài bất kỳ thư viện hay API có sẵn nào, tôi muốn ngồi lại và kể cho các bạn nghe một câu chuyện. Câu chuyện về một phát minh thầm lặng đã và đang tái định hình cách toàn nhân loại kết nối giữa thế giới thực và không gian số.

    1. CÂU CHUYỆN LỊCH SỬ: KHI MÃ BARCODE TRUYỀN THỐNG BỊ "QUÁ TẢI"​

    Lội ngược dòng thời gian về năm 1994, tại nhà máy sản xuất phụ tùng ô tô DENSO WAVE (một công ty con của tập đoàn Toyota) ở Nhật Bản.

    Lúc bấy giờ, các công nhân phải gồng mình chịu đựng một cơn ác mộng: Một linh kiện ô tô cần dán tới 5–10 mã vạch truyền thống (Barcode 1D) mới chứa đủ thông tin. Quá trình sản xuất bị nghẽn lại chỉ vì các tay quét mã không thể đọc kịp. Hơn nữa, mã vạch 1D chỉ lưu được tối đa khoảng 20 ký tự chữ và số theo chiều ngang.

    Một kỹ sư trẻ có tên Masahiro Hara đã được giao nhiệm vụ giải bài toán hóc búa này.

    Vào một giờ nghỉ trưa, khi đang chăm chú quan sát bàn cờ Go (Cờ vây) với các quân cờ đen trắng đan xen linh hoạt, một tia sáng đã lóe lên trong đầu Hara: "Tại sao lại chỉ mã hóa thông tin theo 1 chiều ngang? Nếu mã hóa theo cả 2 chiều (ngang và dọc), dung lượng lưu trữ sẽ tăng lên gấp hàng trăm lần!"

    Sau nhiều tháng miệt mài, Masahiro Hara và các cộng sự đã cho ra đời QR Code (Quick Response Code - Mã phản hồi nhanh). Điểm thiên tài nhất của Hara không chỉ là thuật toán, mà là quyết định mang tính lịch sử của DENSO WAVE: Công khai bản quyền thuật toán QR Code cho toàn thế giới sử dụng miễn phí!

    2. BÊN TRONG CỖ MÁY TOÁN HỌC: CHUẨN ISO/IEC 18004 BẤT BẠI​

    Nhìn bên ngoài, QR Code chỉ là những đốm đen trắng ngẫu nhiên. Nhưng bên dưới "lớp da" đó là một kiệt tác toán học và hình học cực kỳ khắt khe mà chuẩn ISO/IEC 18004 quy định:

    • Ba mắt thần định vị (Finder Patterns): Ba khối vuông lớn ở góc giúp máy quét xác định ngay lập tức tọa độ, góc nghiêng và khoảng cách của mã, dù bạn có cầm điện thoại nghiêng 180 độ.
    • Toán trường Galois GF(2⁸) & Reed-Solomon: Đây là trái tim của khả năng "sửa lỗi" thần kỳ. Ngay cả khi mã QR của bạn bị rách, dính bẩn hay mất tới 30% diện tích, các đa thức toán học vẫn tự bù đắp bit thiếu và giúp máy đọc chính xác 100%.
    • Ma trận lặn Ziczac (Zigzag Placement): Toàn bộ chuỗi dữ liệu sau khi biến thành các Byte nhị phân sẽ được "lặn" theo đường ziczac lùi từ phải sang trái, khéo léo luồn lách qua các vùng bảo lưu định dạng.
    • Đánh giá mặt nạ (Masking Evaluation 0–7): Để tránh việc xuất hiện các mảng màu đen hoặc trắng quá lớn gây chói cho camera, thuật toán sẽ thử 8 mặt nạ nhị phân khác nhau và chọn ra mặt nạ có điểm phạt (Penalty Score) thấp nhất.

    3. TẦM QUAN TRỌNG VÀ HƠI THỞ CUỘC SỐNG​

    QR Code không chỉ là một công nghệ mã hóa. Nó là chiếc cầu nối Vô hình (Invisible Bridge) giữa Thực và Ảo:

    • Tài chính & Thanh toán không tiền mặt: Từ chiếc xe bánh mì lề đường đến các trung tâm thương mại sang trọng, một cú chạm QR đã thay thế hoàn toàn ví tiền truyền thống.
    • Truy xuất nguồn gốc & Logistics: Quản lý hàng triệu kiện hàng toàn cầu, kiểm tra nguồn gốc nông sản từ trang trại đến bàn ăn.
    • Kết nối y tế & Xã hội: Tấm thẻ căn cước, hộ chiếu vắc-xin, định danh điện tử... giúp xã hội vận hành mượt mà hơn bao giờ hết.

    4. TỪ LÝ THUYẾT ĐẾN DỰ ÁN "PURE IMPLEMENTATION"​

    Là một người đam mê thuật toán, thay vì chọn đường tắt bằng cách gọi các thư viện ngoài hay Cloud API có sẵn, tôi đã chọn con đường gian nan hơn: Tự tay viết lại toàn bộ cỗ máy mã hóa QR Code theo chuẩn ISO/IEC 18004 thuần (Pure Algorithm) chạy trực tiếp trên VBA Excel / Google Apps Script!

    Cảm giác tự tay mình điều khiển từng bit nhị phân, tính toán từng hệ số đa thức Reed-Solomon trên trường Galois GF(2⁸), rồi chứng kiến các ô cờ Excel tự đổi màu thành một mã QR xịn đéc mà camera điện thoại quét cái "TÍT" ăn ngay... đó là một niềm vui công nghệ thật khó tả!

    Dự án này là minh chứng rằng: Chỉ cần nắm chắc bản chất toán học và thuật toán cốt lõi, bạn có thể biến những công cụ tưởng chừng như đơn giản nhất thành những cỗ máy công nghệ phi thường.

    Toàn bộ Mã nguồn & Thuật toán của dự án đã được tôi đóng gói hoàn chỉnh. Mời anh em yêu thuật toán cùng vào vạch lá tìm sâu, đóng góp ý kiến và trải nghiệm thử nhé!


    1789787343203.png
     

    File đính kèm

    [Chia sẻ] Giải Nén ZIP Bằng 100% VBA Thuần: Khi Lập Trình Viên Hơi "Cố Chấp"​


    Đã bao giờ bạn ngồi trong văn phòng, cần tự động hóa một tác vụ giải nén file nhưng chính sách công ty khóa quyền cài phần mềm, và hệ thống bảo mật chặn luôn cả lệnh gọi Windows Shell? Đa số sẽ bỏ cuộc và làm bằng tay, nhưng chúng ta thì không. Bằng một sự "cố chấp" vô cực, một bộ engine giải mã chuẩn nén Deflate đã được gò thủ công bằng 100% mã VBA thuần túy — không API, không DLL, không file thực thi bên ngoài. Nhặt từng bit nhị phân bằng một ngôn ngữ vốn sinh ra để kẻ bảng tính Excel, đây đích thị là một màn "lấy nhíp xúc cát" đầy nghệ thuật.

    Thuật Toán Deflate - Khi Toán Học Làm Trò Ảo ThuậtĐằng sau mọi file ZIP là thuật toán cốt lõi mang tên Deflate (RFC 1951). Nó là sự kết hợp hoàn hảo giữa hai "phép thuật" tối ưu hóa:

    • Cơ chế đệm trượt LZ77: Hãy tưởng tượng bạn đang chép phạt một đoạn văn dài. Thay vì cặm cụi viết lại những từ đã lặp, thuật toán này sẽ ghi chú: "hãy lùi lại 50 ký tự, copy 15 ký tự đắp lên đây". Nó lùng sục các chuỗi dữ liệu lặp lại và thay thế chúng bằng tọa độ không gian.
    • Mã hóa Huffman Động (Dynamic Huffman): Hoạt động giống như mã Morse. Ký tự nào xuất hiện nhiều (như nguyên âm) sẽ được ép thành mã rất ngắn (chỉ 1-2 bit), ký tự hiếm gặp sẽ bị kéo dài ra. Sự kết hợp này vắt kiệt dung lượng file đến mức tối đa.
    Trong C++, thao tác dịch bit diễn ra trong chớp mắt. Nhưng với VBA, hệ thống không có hàm dịch bit nguyên thủy. Đoạn code của chúng ta đã phải dùng toán học (chia lấy dư, nhân với lũy thừa 2) và tự xây dựng một Cây nhị phân tiêu chuẩn (Canonical Huffman Tree) trong bộ nhớ RAM để mô phỏng lại việc cắt xén từng bit một!

    Tác Giả & Lịch Sử - Huyền Thoại Mang Tên Phil KatzNếu bạn mở bất kỳ file .zip nào trên đời bằng Notepad, bạn sẽ thấy nó luôn bắt đầu bằng hai ký tự nhị phân PK. Đó là di sản vĩnh cửu của Phil Katz — một thiên tài lập trình mang chút máu nổi loạn.

    Thập niên 1990, khi các thuật toán nén dữ liệu đang bị độc quyền và thu phí đắt đỏ, Phil Katz đã tự viết ra phần mềm PKZIP với lõi nén Deflate siêu việt. Điểm vĩ đại nhất là ông đã mở hoàn toàn cấu trúc thuật toán này cho thế giới. Deflate sau đó trở thành chuẩn mực định hình lại thế giới số: nó là lõi nén của định dạng ảnh PNG, giao thức lướt web HTTP, và nằm sâu trong nhân Linux lẫn Windows. Giờ đây, chúng ta đang tái hiện lại chính di sản ấy trên... giao diện của một tờ báo cáo Excel.

    Áp Dụng Thực Tế - Vũ Khí Của Ninja Chốn Công SởĐoạn code VBA này không sinh ra để cạnh tranh tốc độ với WinRAR hay 7-Zip. Nó sinh ra để sinh tồn trong những môi trường khắc nghiệt nhất:

    • Vượt rào bảo mật IT (Air-gapped systems): Chạy trơn tru trên các máy tính nội bộ của ngân hàng, cơ quan nhà nước hay tập đoàn lớn — nơi cấm tiệt mọi file .exe lạ hay các hàm API móc ngoặc vào hệ điều hành.
    • Tự động hóa luồng công việc tuyệt đối: Macro có thể tự tải một file ZIP mã hóa từ email, quét Bảng thư mục trung tâm (Central Directory) để moi ra đúng file cần thiết, giải nén ngầm trong bộ nhớ và đẩy thẳng số liệu vào báo cáo mà người dùng không cần nhìn thấy một thao tác nào.
    • Chống lỗi "Data Descriptor": Không giống các trình đọc tuần tự dễ bị đánh lừa bởi cờ giấu dung lượng, engine của chúng ta quét thẳng vào tệp điều khiển ở cuối file ZIP, đảm bảo không bỏ sót bất kỳ file nào dù cấu trúc nén có dị biệt đến đâu.
    Triển Vọng Tương Lai: Vượt Ra Ngoài Ranh Giới Giải NénĐừng nghĩ thuật toán Deflate (LZ77 kết hợp Huffman) chỉ loanh quanh với mấy cái file ZIP. Cái thứ toán học lằng nhằng vừa bắt VBA chạy "tụt hơi" ở trên thực chất đang âm thầm thống trị toàn bộ thế giới số. Nắm được nguyên lý của nó, bạn sẽ thấy ứng dụng của nó bạt ngàn ở các lĩnh vực tưởng như chẳng liên quan:

    • Kẻ "Cứu Rỗi" Băng Thông Internet: Mỗi khi bạn lướt web hay xem Youtube, máy chủ không hề gửi nguyên xi đống code HTML/CSS về máy bạn. Chúng được "Deflate" (qua GZIP hoặc Brotli) ép nhỏ lại rồi mới truyền đi, tiết kiệm hàng tỷ đô la tiền cáp quang cho toàn cầu mỗi ngày.
    • Giải Mã... Sinh học & ADN (Bioinformatics): Tin được không? Chuỗi ADN của con người thực chất cũng chỉ là một dải ký tự A, C, G, T khổng lồ với rất nhiều đoạn mã lặp lại. Cơ chế đệm trượt tìm điểm lặp (Sliding Window) của thuật toán này được các nhà khoa học áp dụng thẳng vào việc căn chỉnh, dò tìm và phân tích đột biến trong hệ gen người!
    • "Thánh Tiết Kiệm" Của Lưu Trữ Đám Mây: Các ông lớn như Google Drive hay Dropbox dùng nguyên lý băm dữ liệu và tìm chuỗi lặp này để loại bỏ các tệp trùng lặp (Data Deduplication). Hàng triệu người tải lên cùng một đoạn video hài hước? Máy chủ chỉ lưu một bản gốc và phân phát các "con trỏ tọa độ LZ77" cho những người còn lại.
    • Viễn Thám & Vạn Vật Kết Nối (IoT): Các thiết bị cảm biến không dây ở nông trại, máy tạo nhịp tim y tế hay vệ tinh không gian có băng thông cực hẹp và pin rất yếu. Trước khi phát tín hiệu, dữ liệu được ép qua bảng mã Huffman để gửi đi với dung lượng cực tiểu, đôi khi cứu sống cả một nhiệm vụ không gian (hoặc ít nhất là đỡ mất công kỹ sư đi thay pin).
    Có thể thấy, việc tự tay gò mã giải mã thuật toán này không chỉ là một trò "flex" kỹ năng lập trình giải trí, mà thực sự là một cách để chạm tay vào bộ não toán học vĩ đại đang vận hành cả thế giới hiện đại!


    1790502618457.png
     

    File đính kèm

    Lần chỉnh sửa cuối:

    Bài viết mới nhất

    Back
    Top Bottom