青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

熱轉印www.yxheatpress.com

公司網站模板http://qiyemoban.software8.co/

常用鏈接

統計

友情鏈接

最新評論

Gray Code實現按序產生集合的所有子集

簡介

Gray Code,是幾十年前貝爾實驗室的科學家Frank Gray提出的一種編碼方案,當時主要用于傳輸信號以防止出錯。Gray Code 除了在通信,硬件設計領域中應用以外,在計算機相關科學的其他方面也有廣泛的應用,例如按序產生集合的所有子集。


Gray Code實現按序產生集合的所有子集

子集的按序產生,這個概念很簡單,舉個例子,假設我們的集合為{a,b,c},那么按序產生的子集應該是:

空集 (000)   ——   0(編號 從0開始按順序排序)

a (100)        ——   1

ab  (110)     ——   2

abc   (111)  ——   3

ac

b

bc

c


那么Gray Code是如何產生這樣的序列的呢? 

Gray Code的思想非常的巧妙,我們可以將所產生的子集編號(范圍為0~2^n-1),第一個子集為空集(編號為0,是偶數)。在其后的每個子集由前一個子集來決定,如果前一個子集編號為偶數,那么則改變前一個子集的第一位(從左邊數)的二進制值(0變成1或者1變成0)作為新的子集。如果前一個子集的編號為奇數,那么就將前一個子集二進制左邊數第一個1后面的那位改變其值(0變成1或者1變成0)作為新的子集。

根據上面的Gray Code的思想,還是以集合{a,b,c}為例,第一個子集(000)的編號為0(偶數),推算出第二個子集是第一個子集改變左邊數的第一位的數值所產生,為100,也就是a(只取為1的字符,a為最左邊的字符對應100中的1)。那么根據第二個子集的編號1(奇數),推算出第三個子集是由第二個子集改變從左數第一個1后面那一位的值所產生(100->110),那么110對應的是ab。后面的子集都以此類推即可全部按順序產生。


Gray Code非遞歸的C語言實現

以下代碼在VS2008下調試通過


  1. int sum(int n)  
  2. {  
  3.     if(1<=n) return n+sum(n-1);  
  4.     else return 0;  
  5. }  
  6.   
  7. void gray(char *ptr)  
  8. {  
  9.     int len=strlen(ptr);  
  10.     int num=(1<<len);  
  11. //    printf("num=%d  \n",num);  
  12.     int i,j,k;  
  13.     int mod,tmp,mask,tmp1,tmp2;  
  14.     mask=1<<len-1;  
  15.  //   printf("mask=%d  \n",mask);  
  16.     mod=0;//(1<<len)-1;  
  17.     for(i=0;i<num-1;i++)  
  18.     {  
  19.         if(i%2==0)  
  20.         {  
  21.             tmp=mod&mask;  
  22.  //           printf("tmp=%d  ",tmp);  
  23.             if(0!=tmp) {mod=mod&(~mask);}  
  24.             else {mod=mod|(mask);}  
  25.         }  
  26.         else  
  27.         {  
  28.             tmp1=1<<(len-1);  
  29.             for(j=0;j<len;j++)  
  30.             {  
  31. //                printf(" in else");  
  32.                 if(mod&tmp1) break;  
  33.                 tmp1=tmp1>>1;  
  34.  //               printf("tmp1=%d  ",tmp1);  
  35.             }  
  36.             tmp1=tmp1>>1;  
  37.  //           printf(">>1  tmp1=%d  ",tmp1);  
  38.             if(tmp1!=0)   
  39.             {  
  40.                 tmp=mod&tmp1;  
  41.                 if(0!=tmp) {mod=mod&(~tmp1);}  
  42.                 else {mod=mod|(tmp1);}  
  43.             }  
  44.         }  
  45.         tmp2=1<<len-1;  
  46.         for(k=0;k<len;k++)  
  47.         {  
  48.             if(mod&tmp2) printf("%c",ptr[k]);  
  49.             tmp2=tmp2>>1;  
  50.         }  
  51.         printf("\n");  
  52.     }  
  53. }  
  54.   
  55. int main()  
  56. {  
  57. //    printf("  result=%d ",sum(4));  
  58.     char *p="abcd";  
  59.     gray(p);  
  60.     system("pause");  
  61. }  

posted on 2012-10-29 17:08 不聽話的 閱讀(1099) 評論(0)  編輯 收藏 引用

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久一区二区三区国产精品| 亚洲精品乱码久久久久久日本蜜臀| 亚洲影院免费| 在线视频一区观看| 亚洲激情成人| 亚洲国内自拍| 一区二区三区四区国产精品| 亚洲欧美国产精品专区久久| 久久国产精品久久久| 久久综合久久88| 欧美成人激情视频| 91久久在线| 日韩一区二区精品葵司在线| 亚洲手机成人高清视频| 西西人体一区二区| 女女同性精品视频| 国产精品久久久久久一区二区三区| 国产一区二区黄| 99视频一区二区三区| 亚洲欧美韩国| 欧美激情中文不卡| 亚洲午夜激情| 欧美成人午夜视频| 国产日韩精品一区二区浪潮av| 亚洲国产精品一区在线观看不卡| 亚洲网在线观看| 免费看精品久久片| 亚洲综合久久久久| 欧美aa在线视频| 国产亚洲福利| 亚洲尤物在线| 亚洲日本电影| 久久免费高清视频| 国产人妖伪娘一区91| 一区二区三区视频在线| 免费在线成人| 久久精品国产一区二区三区| 国产精品hd| 99精品视频免费观看视频| 久久综合色8888| 午夜在线精品| 国产精品嫩草影院一区二区| 日韩视频精品| 欧美成人中文字幕在线| 午夜久久福利| 国产精品久久久久久模特| 99re6这里只有精品| 欧美好骚综合网| 久久亚洲综合网| 激情成人av| 久久裸体艺术| 久久精品夜色噜噜亚洲aⅴ| 国产精品一区久久| 午夜精彩国产免费不卡不顿大片| 亚洲精品日产精品乱码不卡| 免费高清在线视频一区·| 国内偷自视频区视频综合| 欧美一区二区视频免费观看| 亚洲天堂网在线观看| 欧美午夜一区二区福利视频| 亚洲网友自拍| 亚洲一级在线| 国产精品亚洲综合| 国产亚洲一级| 久久久爽爽爽美女图片| 欧美与黑人午夜性猛交久久久| 国产麻豆91精品| 久久久www| 老司机午夜精品视频在线观看| 一色屋精品视频免费看| 免费影视亚洲| 欧美精品成人一区二区在线观看 | 国产精品高清网站| 亚洲免费一区二区| 亚洲影视中文字幕| 国产一区自拍视频| 欧美激情二区三区| 欧美日韩精品伦理作品在线免费观看 | 亚洲小视频在线观看| 国产精品美女久久久久aⅴ国产馆| 性久久久久久| 久久久久久久性| 亚洲毛片av在线| 亚洲欧美精品在线| 伊人精品视频| 日韩一级成人av| 黄色一区二区在线| 91久久久久久久久| 国产伦理一区| 欧美韩日精品| 国产精品影视天天线| 欧美国产日韩在线| 国产精品麻豆成人av电影艾秋| 久久在线视频| 欧美午夜视频| 亚洲国产精品综合| 国产亚洲欧美日韩美女| 亚洲经典一区| 韩日精品在线| 在线一区二区三区四区五区| 在线观看不卡av| 亚洲一区二区成人| 亚洲精品乱码久久久久| 欧美一级久久| 亚洲永久免费av| 欧美精品在线观看播放| 久久久久久999| 国产精品成人免费精品自在线观看| 欧美aⅴ一区二区三区视频| 国产精品女主播| 亚洲乱码国产乱码精品精天堂 | 国产一区成人| 亚洲天堂偷拍| 99精品热6080yy久久| 久久久久一区二区| 久久精品人人做人人综合| 国产精品99一区二区| 欧美国产日韩一区| 激情五月综合色婷婷一区二区| 中文亚洲欧美| 亚洲午夜在线| 欧美午夜片在线观看| 亚洲电影免费| 亚洲国产日韩一级| 久久青草久久| 国产亚洲毛片在线| 午夜精品影院| 久久精品三级| 国产午夜精品久久久久久久| 亚洲在线观看免费视频| 亚洲一二三级电影| 欧美日韩视频免费播放| 亚洲欧洲精品成人久久奇米网| 亚洲国产精品高清久久久| 久久精品国产第一区二区三区| 久久精品国产亚洲a| 国产日韩欧美一区在线| 亚洲一区欧美一区| 欧美在线观看天堂一区二区三区| 国产精品露脸自拍| 亚洲欧美在线一区| 久久全球大尺度高清视频| 好看不卡的中文字幕| 久久婷婷av| 亚洲日本成人网| 亚洲一区国产一区| 国产精品自在在线| 欧美一区二区三区成人| 美女免费视频一区| 亚洲精品社区| 国产精品高潮呻吟视频| 亚洲欧美欧美一区二区三区| 久久久久成人精品| 亚洲国产福利在线| 欧美精品在线观看播放| 亚洲手机成人高清视频| 久久蜜桃精品| av成人天堂| 国产一区久久久| 欧美成人免费在线观看| 一本色道88久久加勒比精品| 久久精品盗摄| 99精品国产在热久久婷婷| 国产精品久久久久久久久果冻传媒| 欧美一区二区三区在线观看视频 | 国产精品日本欧美一区二区三区| 午夜在线视频一区二区区别| 欧美国产专区| 午夜国产精品视频| 亚洲国内欧美| 国产欧美精品日韩| 欧美极品在线观看| 欧美亚洲在线观看| 亚洲欧洲在线一区| 欧美在线视频二区| 亚洲国产欧美在线人成| 国产精品久久久久影院亚瑟 | 亚洲欧美视频在线| 欧美丰满高潮xxxx喷水动漫| 亚洲夜间福利| 亚洲黄色在线观看| 国产人妖伪娘一区91| 欧美精品在线看| 久久久久久久国产| 午夜国产精品影院在线观看| 91久久国产综合久久蜜月精品| 欧美影院成人| 中文一区二区| 亚洲精品久久久一区二区三区| 国产老肥熟一区二区三区| 欧美精品在线播放| 91久久视频| 久久视频在线看| 亚洲欧美久久久| 99精品视频免费全部在线| 在线欧美电影| 韩日欧美一区二区| 国产一区深夜福利| 国产精品一区久久久久| 国产精品美女一区二区在线观看 |