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

熱轉印www.yxheatpress.com

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

常用鏈接

統(tǒng)計

友情鏈接

最新評論

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>
            欧美人与禽猛交乱配视频| 亚洲免费成人av| 先锋资源久久| 欧美.com| 久久xxxx| 欧美影院久久久| 亚洲欧美国产精品桃花| 亚洲免费观看高清在线观看| 亚洲电影免费在线观看| 国产欧美日韩另类视频免费观看 | 在线观看国产日韩| 国产婷婷精品| 国内一区二区三区在线视频| 校园春色国产精品| 久久精品国产2020观看福利| 午夜天堂精品久久久久| 欧美中文在线观看| 久久久91精品国产一区二区三区 | 国产精品v欧美精品v日韩| 欧美日韩另类在线| 国产精品成人播放| 国产欧美精品一区aⅴ影院| 国产免费观看久久| 亚洲国产精品久久久久久女王| 狠狠色丁香婷婷综合| 亚洲人体一区| 午夜精品999| 免费一级欧美片在线观看| 亚洲欧洲日韩在线| 亚洲国产精品一区二区久| 一本色道精品久久一区二区三区| 久久gogo国模裸体人体| 欧美日韩成人一区| 亚洲高清激情| 亚洲欧美日本视频在线观看| 久久亚洲精选| 亚洲欧美日本伦理| 国产精品九九久久久久久久| 亚洲丰满少妇videoshd| 久久精视频免费在线久久完整在线看| 欧美激情在线观看| 久久国产精品一区二区三区四区 | 亚洲三级视频在线观看| 午夜在线一区二区| 国产日韩欧美综合在线| 国产欧美日韩精品在线| 欧美一级片一区| 99v久久综合狠狠综合久久| 免费观看一级特黄欧美大片| 久久疯狂做爰流白浆xx| 国产一区二区三区在线播放免费观看| 一区二区三区波多野结衣在线观看| 免费久久精品视频| 麻豆精品视频在线| 在线看不卡av| 亚洲欧洲日韩女同| 欧美日韩亚洲综合在线| 午夜精彩国产免费不卡不顿大片| 一区二区三区日韩精品视频| 国产精品久久久久久久久免费桃花 | 亚洲电影免费观看高清完整版在线 | 99国产精品视频免费观看一公开| 欧美**字幕| 欧美日韩在线免费观看| 亚洲欧美日韩一区二区三区在线观看 | 久久久久高清| 在线免费观看日韩欧美| 999亚洲国产精| 精品福利免费观看| 亚洲午夜一区二区| 亚洲欧洲一区| 欧美一级久久| 亚洲综合大片69999| 亚洲自啪免费| 亚洲一级在线观看| 亚洲欧美在线一区二区| 久久国产精品72免费观看| 99视频日韩| 欧美日韩精品一区| 亚洲成色777777在线观看影院| 欧美深夜影院| 日韩视频在线一区| 亚洲人成小说网站色在线| 久久成人资源| 久久久夜色精品亚洲| 国产精品社区| 性欧美video另类hd性玩具| 亚洲天堂av图片| 国产精品国产成人国产三级| 夜夜夜久久久| 先锋影音久久久| 国产伦精品一区二区三区高清版| 亚洲天堂成人在线视频| 欧美一区二区| 精品福利av| 欧美日韩一区二区在线播放| 一区二区三区日韩在线观看| 午夜国产欧美理论在线播放| 国产小视频国产精品| 久久久999精品| 亚洲国产日韩在线| 免费看的黄色欧美网站| 欧美第一黄色网| 亚洲一区在线观看视频| 国产综合久久久久久鬼色| 欧美激情视频一区二区三区不卡| 亚洲三级免费观看| 久久精品国产清高在天天线 | 亚洲婷婷在线| 老司机aⅴ在线精品导航| 亚洲日本一区二区三区| 欧美日韩另类综合| 国产精品99久久久久久www| 久久综合久久综合久久| 夜久久久久久| 亚洲人成艺术| 国内精品久久久久影院色| 欧美日本一区二区三区| 久久免费视频在线观看| av不卡免费看| 在线精品亚洲| 国产一区99| 国产欧美综合一区二区三区| 欧美激情性爽国产精品17p| 午夜日韩电影| 午夜精品久久久久久久白皮肤| 欧美二区在线看| 美女诱惑一区| 欧美激情欧美狂野欧美精品 | 黄色成人免费观看| 国产精品丝袜久久久久久app| 欧美精品xxxxbbbb| 亚洲茄子视频| 亚洲人成网在线播放| 亚洲国产精品成人久久综合一区| 麻豆9191精品国产| 久久婷婷蜜乳一本欲蜜臀| 欧美性做爰毛片| 欧美激情一区二区三区蜜桃视频 | 老鸭窝91久久精品色噜噜导演| 一区二区三区久久久| 亚洲午夜久久久久久久久电影网| 久久尤物视频| 亚洲国产精品成人一区二区| 亚洲天堂av高清| 久久国产免费| 国产精品自在欧美一区| 亚洲欧洲在线免费| 亚洲男人第一av网站| 亚洲国产91| 久久精品视频在线| 欧美日韩情趣电影| 伊人久久综合| 欧美一区国产一区| 国产精品视频午夜| 亚洲日本久久| 欧美福利一区二区三区| 男男成人高潮片免费网站| 欧美色精品天天在线观看视频 | 欧美一区视频在线| 欧美成人网在线| 久久另类ts人妖一区二区| 国产视频久久久久| 亚洲午夜女主播在线直播| 亚洲第一精品福利| 六月婷婷久久| 亚洲欧洲在线一区| 亚洲日本成人网| 欧美午夜久久久| 亚洲欧美在线看| 亚洲影视九九影院在线观看| 欧美一区二区在线视频| 亚洲品质自拍| 国产精品一区久久久| 免费av成人在线| 欧美激情一区二区| 欧美激情一区在线| 一本色道久久88综合日韩精品| 亚洲人久久久| 国产精品一区二区三区久久久| 午夜精品影院| 欧美成人一区二区三区在线观看| 99视频+国产日韩欧美| 夜夜嗨av色综合久久久综合网| 欧美精品免费播放| 久久久精品午夜少妇| 免费成人黄色| 久久精品亚洲一区| 欧美日韩综合视频网址| 久久亚洲高清| 欧美私人网站| 91久久国产综合久久蜜月精品| 国产一区二区三区在线观看视频 | 久久国产综合精品| 欧美一级理论片| 国产一区在线观看视频| 亚洲午夜久久久久久久久电影网| 亚洲精品孕妇| 国产精品福利网| 亚洲欧美另类综合偷拍|