分治法之求解格雷碼

2021-07-28 09:16:17 字數 1034 閱讀 1700

分治法

簡介:將乙個大的問題分解成為一些較小的子問題,分別求解各個子問題,然後將各個子問題合併

就可以得到問題的解。

分治法和遞迴的思想非常類似,分治法一般是劃分為

若干個相等

的子問題,而遞迴則一般是

逐層減一

得到最簡單的子問題,接著再一層一層返回。

格雷碼(grey)

grey碼是乙個長度為2

n的序列,序列中無相同元素,且每個元素都是長度為n的二進位制位串,相鄰元素恰好只有1位不同。例如長度為2

3的格雷碼為(000,001,011,010,110,111,101,100)。設計分治演算法對任意的n值構造相應的grey碼。 輸入

每個元素的長度值n。

輸出將所有相應的grey碼分行輸出,即每一行輸出乙個二進位制位串。

例如:3

輸出:

3位格雷碼 0

0000

1011

0101

1011

1101

100 基本思想:

應用分治法進行求解;

演算法中心實現:

int gery(int n,int t)
注意:int gery(int

n ,int

t )中n代表

第幾次劃分

,t代**雷碼的位數

,其中從

n變為n-1

表示將求解2^n個格雷碼變為2^(n-1)個格雷碼

生成格雷碼

程式設計題 生成格雷碼 在一組數的編碼中,若任意兩個相鄰的 只有一位二進位制數不同,則稱這種編碼為格雷碼 gray code 請編寫乙個函式,使用遞迴的方法生成n位的格雷碼。給定乙個整數n,請返回n位的格雷碼,順序為從0開始。測試樣例 1返回 0 1 思想 用遞迴法實現,把求n位格雷碼分解為求n 1...

生成格雷碼

題目描述 在一組數的編碼中,若任意兩個相鄰的 只有一位二進位制數不同,則稱這種編碼為格雷碼 gray code 請編寫乙個函式,使用遞迴的方法生成n位的格雷碼。給定乙個整數n,請返回n位的格雷碼,順序為從0開始。測試樣例 1返回 0 1 1 n 1時,返回0,1 2 n 2時,返回00,01,10,...

關於格雷碼

典型二進位制格雷碼 binary gray code 簡稱格雷碼,因1953年公開的弗蘭克 格雷 frank gray,18870913 19690523 專利 pulse code communication 而得名。在一組數的編碼中,若任意兩個相鄰的 只有一位二進位制數不同,則稱這種編碼為格雷碼...