根據H在有限域GF(2^m)上求解生成矩陣G

原理

有時間再補充。

注1:使用高斯消去法。如果Py不為單位陣,則說明進行了列置換,此時G不是系統形式。

注2:校驗矩陣H必須是行滿秩才存在對應的生成矩陣G,且生成矩陣G通常不唯一。

matlab實現:只做列置換,不做行置換

function [G, Px, Py] = Gaussian_Elimination_in_GFq(H, q)% initial[m, n] = size(H);H_stair = mod(H,q);Px = eye(m); Py = eye(n);for i=1:mfor j=i:nif gcd(H_stair(i,j), q) == 1break;elseif j==nerror('Gaussian_Elimination_in_GFq: The H is not full rank in GF(%d).',q);elsecontinue;endendendif j ~= iH_stair(:, [i, j]) = H_stair(:, [j, i]);Py(:, [i, j]) = Py(:, [j, i]);endendfor i=1:m[~, x, ~] = gcd(H_stair(i,i), q);inv_i = mod(x, q);H_stair(i, :) = mod(inv_i * H_stair(i, :), q);Px(i, :) = mod(inv_i * Px(i, :), q);for j=1:mif j~=i && H_stair(j,i)~=0factor=H_stair(j, i);H_stair(j, :) = mod(H_stair(j, :) - factor * H_stair(i, :), q);Px(j, :) = mod(Px(j, :) - factor * Px(i, :), q);endendendparity_matrix = mod((q-1).*H_stair(:,m+1:n),q);G_fixed=[parity_matrix',eye(n-m)];G=G_fixed*Py';
end

matlab實現:先做行置換,若無逆元,再做列置換

function [G, Px, Py] = Gaussian_Elimination_in_GFq(H, q)[m, n] = size(H);H_stair = mod(H,q);Px = eye(m); Py = eye(n);%% column findfor j=1:mfor i=j:mif gcd(H_stair(i,j), q) == 1break;elseif i==m%% row findfor k=j+1:nif gcd(H_stair(j,k), q) == 1break;elseif k==nerror('Gaussian_Elimination_in_GFq: The H is not full rank in GF(%d).',q);elsecontinue;endendend%% column exchangeH_stair(:,[j,k]) = H_stair(:,[k,j]);Py(:,[j,k]) = Py(:,[k,j]);i=j;break;elsecontinue;endendend%% row exchangeif i ~= jH_stair([j, i],:) = H_stair([i, j],:);Px([j, i],:) = Px([i, j],:);endendfor i=1:m[~, x, ~] = gcd(H_stair(i,i), q);inv_i = mod(x, q);H_stair(i, :) = mod(inv_i * H_stair(i, :), q);Px(i, :) = mod(inv_i * Px(i, :), q);for j=1:mif j~=i && H_stair(j,i)~=0factor=H_stair(j, i);H_stair(j, :) = mod(H_stair(j, :) - factor * H_stair(i, :), q);Px(j, :) = mod(Px(j, :) - factor * Px(i, :), q);endendendparity_matrix = mod((q-1).*H_stair(:,m+1:n),q);G_fixed=[parity_matrix',eye(n-m)];G=G_fixed*Py';end

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/44104.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/44104.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/44104.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

視語坤川大模型智能體平臺亮相2024世界人工智能大會

7月4日-7月7日,以“以共商促共享以善治促善智”為主題的2024世界人工智能大會(WAIC 2024)在上海舉辦,世界頂級專家學者、知名企業代表、政界人士、高校組織等齊聚上海,共商發展、共話未來。 作為大會的重磅環節——昇…

Python面試題:編寫一個 Python 腳本來讀取 Excel 文件

要在 Python 中讀取 Excel 文件,可以使用 pandas 庫,這個庫提供了強大的數據處理和分析功能,并且支持讀取 Excel 文件。你還需要 openpyxl 庫來支持讀取 .xlsx 格式的 Excel 文件。以下是如何編寫一個腳本來讀取 Excel 文件的示例&#xff1a…

git 的cherry-pick選擇性提交

git cherry-pick 是 Git 中的一個非常有用的命令,它允許你將一個或多個特定的提交(commit)從一個分支應用到另一個分支上,而不是合并整個分支。 單個提交的 cherry-pick 假設你有一個 feature 分支,其中有一個提交&a…

【筆記】Android V 應用SDK升級適配和問題

說明 隨著Google釋放的Android版本,系統升級SDK到35,應用也需要升級上去,不然會報錯。 Android Studio Jellyfish | 2023.3.1 | Android Developers Android Studio 預覽版中的新功能 | Android Developers 當前版本的Android Studio

Elasticsearch:深度學習與機器學習:了解差異

作者:來自 Elastic Elastic Platform Team 近年來,兩項突破性技術一直站在創新的最前沿 —— 機器學習 (machine learning - ML) 和深度學習 (deep learning - DL)。人工智能 (AI) 的這些子集遠不止是流行語。它們是推動醫療保健、金融等各行業進步的關鍵…

Java面試八股之MySQL索引B+樹、全文索引、哈希索引

MySQL索引B樹、全文索引、哈希索引 注意:B樹中B不是代表二叉樹(binary),而是代表平衡(balance),因為B樹是從最早的平衡二叉樹演化而來,但是B樹不是一個二叉樹。 B樹的高度一般在2~…

es是如何處理索引數據的變動的?

1 概述 es是如何處理索引數據的變動的? 或者說索引數據變動時,es會執行哪些操作? refresh、fsync、merge 和 flush 操作有何作用? es是如何確保即使es發生宕機數據也不丟失的? 在回答上述問題前,可以先…

文件操作和IO流

前言👀~ 上一章我們介紹了多線程進階的相關內容,今天來介紹使用java代碼對文件的一些操作 文件(file) 文件路徑(Path) 文件類型 文件操作 文件系統操作(File類) 文件內容的讀…

leetcode--恢復二叉搜索樹

leetcode地址:恢復二叉搜索樹 給你二叉搜索樹的根節點 root ,該樹中的 恰好 兩個節點的值被錯誤地交換。請在不改變其結構的情況下,恢復這棵樹 。 示例 1: 輸入:root [1,3,null,null,2] 輸出:[3,1,null…

AirPods Pro新功能前瞻:iOS 18的五大創新亮點

隨著科技的不斷進步,蘋果公司一直在探索如何通過創新提升用戶體驗。iOS 18的推出,不僅僅是iPhone的一次系統更新,更是蘋果生態鏈中重要一環——AirPods Pro的一次重大升級。 據悉,iOS 18將為AirPods Pro帶來五項新功能&#xff0…

設計模式探索:觀察者模式

1. 觀察者模式 1.1 什么是觀察者模式 觀察者模式用于建立一種對象與對象之間的依賴關系,當一個對象發生改變時將自動通知其他對象,其他對象會相應地作出反應。 在觀察者模式中有如下角色: Subject(抽象主題/被觀察者&#xf…

【大模型】大規模部署LLM:挑戰與對策

大規模部署LLM:挑戰與對策 引言一、計算資源的挑戰1.1 計算成本1.2 能源消耗與碳足跡 二、維護與更新的挑戰2.1 模型更新與版本控制2.2 知識時效性 三、數據隱私與倫理考量3.1 數據隱私保護3.2 倫理與偏見 四、可擴展性與靈活性4.1 系統架構設計4.2 多語言與地域適應…

詳細分析@FunctionalInterface的基本知識(附Demo)

目錄 前言1. 基本知識2. Demo 前言 Java的基本知識推薦閱讀: java框架 零基礎從入門到精通的學習路線 附開源項目面經等(超全)Spring框架從入門到學精(全) 1. 基本知識 FunctionalInterface 是 Java 8 引入的一個注…

外賣商城平臺小程序的設計

管理員賬戶功能包括:系統首頁,個人中心,用戶管理,商家管理,騎手管理,商品類型管理,商品信息管理,訂單信息管理 微信端賬號功能包括:系統首頁,商品信息&#…

【AI資訊早報】AI科技前沿資訊概覽:2024年7月10日早報

AI科技前沿資訊概覽,涵蓋了行業大會、技術創新、應用場景、行業動態等多個方面,全面展現了AI領域的最新發展動態和未來趨勢。 一、人工智能大模型引領新業態 在2024年(第二十三屆)中國互聯網大會上,中國工程院院士鄔賀…

模板初階詳解

目錄 泛型編程函數模板函數模板概念函數模板格式函數模板的原理函數模板的實例化隱式實例化強制類型轉換的疑惑 顯式實例化 模板參數的匹配原則 類模板類模板的定義格式類模板的實例化 感謝各位大佬對我的支持,如果我的文章對你有用,歡迎點擊以下鏈接 🐒&#x1f41…

微信小程序接口wx.getLocation違規導致封禁解決辦法

1、找到站內信的這個封禁的通知(功能封禁的通知,而不是處理警告的通知) 2、點擊通知會有申訴鏈接,點開申訴鏈接 申訴原因可參考下面的內容: 1.小程序哪些板塊已除去收集地理位置、2.哪些板塊需要收集地理位置、3.詳細…

寶塔內 計劃任務更新遠程主機的時間

很多情況下一些主機無法上網,長此以往有可能讓系統內的時間混亂 ,這是一個很愁人的事情 這里我們找了一個可以通過寶塔的計劃任務或 cron 不斷將本地時間通過ssh登錄,并在登錄狀態下設置時間的方法.找了很多方案都不行 .最終采用了私鑰登錄的方案 1 使用寶塔的計劃任務(可選): …

WindowsMac共享文件夾設置

共享文件夾設置 共享文件夾設置Windows系統設置步驟一:設置共享文件夾步驟二: 訪問共享文件夾 Mac系統中設置共享文件夾步驟一:設置共享文件夾步驟二:訪問共享文件夾 小貼士結論 共享文件夾設置 有時需要在多臺電腦之間共享文件夾&#xff0…

4.MkDocs樣式

學習 Admonitions(警告) - Material for MkDocs (wdk-docs.github.io) 提示 - Material for MkDocs 中文文檔 (llango.com) Buttons(按鈕) - Material for MkDocs (wdk-docs.github.io) 建議去看這些網站,更為詳細。 常用功能 便利貼 ?? 開啟 markdown_ex…