• <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>
            posts - 183,  comments - 10,  trackbacks - 0

            來自于《編碼》

            布萊葉盲文用六個點組成,位置分別為 1 2 3 4 5 6
            根據六個點是否突起來代表不同的字母,總共有 2 ^ 6 = 64 個情況。

            用一個字節表示一個編碼,0-5 位分別對應 1-6 個位置。
            例如
            e:
            @.
            .@
            ..
            對應的一個字節為
            00010001
            即為 17

            編碼表如下,brailleCode.txt:

             1 a    1
             2 b    3
             3 c    9
             4 d    25
             5 e    17
             6 f    11
             7 g    27
             8 h    19
             9 i    10
            10 j    26
            11 k    5
            12 l    7
            13 m    13
            14 n    29
            15 o    21
            16 p    15
            17 q    31
            18 r    23
            19 s    14
            20 t    30
            21 u    37
            22 v    39
            23 w    58
            24 x    45
            25 y    61
            26 z    53
            27 ,    2
            28 ;    6
            29 :    18
            30 .    50
            31 !    22
            32 (    54
            33 )    54
            34 "    38
            35 /    12
            36 #    60
            37 '    4
            38 -    36


            對一句話進行編碼:
            Rizana Nafeek's story is typical of thousands of young women from Sri Lanka and other poor Asian countries who leave their homes in search of employment and better lives for their families in Saudi Arabia and the glittering Gulf states.
            編碼后的結果為:
            @. .@ @. @. @@ @.       @@ @. @@
            @@ @. .@ .. .@ ..       .@ .. @.
            @. .. @@ .. @. ..       @. .. ..

            @. @. @. .. .@  .@ .@ @. @.
            .@ .@ .. .. @.  @. @@ .@ @@
            .. .. @. @. @.  @. @. @. @.

            @@      .@ .@   .@ @@ @@ .@ @@
            .@      @. @.   @@ .@ @. @. ..
            @@      .. @.   @. @@ @. .. ..

            @. @.   @. @@   .@ @. @. @.
            .. @.   .@ @.   @@ @@ .@ ..
            .. @.   @. ..   @. .. @. @@

            .@ @. @@ @@ .@  @. @@   @@
            @. .. .@ .@ @.  .@ @.   .@
            @. .. @. .. @.  @. ..   @@

            @. @. @@ @@     .@ @. @@ @. @@
            .@ .. .@ @@     @@ .@ .. .@ .@
            @. @@ @. ..     .@ @. @. .. @.

                    @@ @. @. @@     .@ @. .@
                    @. @@ .@ ..     @. @@ @.
                    .. @. @. @.     @. @. ..

            @. @. @@ @. @.  @. @@ @@
            @. .. .@ .. ..  .. .@ .@
            @. .. @. @. ..  .. @. ..

            @. .@ @. @. @.  @@ @. @. @.
            .@ @@ @@ .@ @@  @. .@ .@ @@
            @. @. .. .. @.  @. @. @. @.

                    @. .@ .@ @. @@  @@ @. @.
                    .. @. @. .. .@  .. .@ ..
                    .. @. .. .. @.  .. @. @@

            @@ .@ @. .@ @. .@       .@ @. @.
            .@ @@ @@ @. .@ @.       @@ @@ .@
            @. @. @. .. .. @.       .@ .. @.

                    @. @. @. @. @.  .@ @. @.
                    @. .@ .. @. .@  @@ @@ .@
                    @. .. .. @@ ..  @. .. ..

            .@ @.   @. @. @@ @. .@  .@
            @. @@   @@ .@ .. .@ @.  @.
            .. @.   .. @. @. .. @.  ..

            @@      .@ @. @. @. @@ @.       @.
            .@      @. .@ .. @@ .. @@       .@
            @.      @. .. .. @. .. ..       @.

            @@      @. @@ @@ @. @. @@ @@ @.
            @.      .@ .. @. @. .@ .@ .. .@
            ..      .. @. @. @. @. @@ @. ..

            @@ .@   @. @@ @@        @. @. .@
            .@ @@   .. .@ .@        @. .@ @@
            @. @.   .. @. ..        .. .. @.

            .@ @. @.        @. .@ @. @. .@
            @@ .@ @@        @. @. @. .@ @.
            @. .. @.        @. .. @@ .. @.

            @@ @. @.        .@ @. @. .@ @.
            @. .@ @@        @@ @@ .@ @. @@
            .. @. @.        @. .. .. .. @.

            @@ @. @@ .@ @. .@ @. .@         .@
            @. .. .. @. @. @. .@ @.         @.
            .. .. @. .. @. .. .. @.         ..

            @@      .@ @. @. @@ .@  @. @.
            .@      @. .. .. .@ @.  .. @@
            @.      @. .. @@ .. ..  .. @.

            @. @. .@ @.     @. @@ @@        .@
            .. @. @. ..     .. .@ .@        @@
            .. .. .. ..     .. @. ..        @.

            @. @.   @@ @. .@ .@ .@ @. @.
            @@ .@   @@ @. @. @@ @@ .@ @@
            .. ..   .. @. .. @. @. .. @.

            .@ @@ @@        @@ @. @. @@     .@
            @. .@ @@        @@ .. @. @.     @.
            .. @. ..        .. @@ @. ..     @.

            .@ @. .@ @. .@ ..
            @@ .. @@ .@ @. @@
            @. .. @. .. @. .@

            布萊葉盲文是用于盲人讀取的,所謂的解碼即是利用觸覺獲取所蘊含的信息。這種通過觸覺的解碼不宜用計算機來實現。

              1 #include <iostream>
              2 #include <fstream>
              3 #include <string>
              4 #include <map>
              5 #include <cctype>
              6 using namespace std;
              7 
              8 bool test(char c, int i)
              9 {
             10     return (c & (1 << i)) != 0;
             11 }
             12 
             13 void display(const string& bc)
             14 {
             15     for (int i = 0; i < bc.size() / 10 + 1++i)
             16     {
             17         for (string::size_type j = i * 10; j < (i * 10 + 10 < bc.size() ? i * 10 + 10 : bc.size()); ++j)
             18         {
             19             if (bc[j] == ' ')
             20             {
             21                 cout << '\t';
             22             }
             23             else
             24             {
             25                 if (test(bc[j], 0))
             26                 {
             27                     cout << '@';
             28                 }
             29                 else
             30                 {
             31                     cout << '.';
             32                 }
             33                 if (test(bc[j], 3))
             34                 {
             35                     cout << '@';
             36                 }
             37                 else
             38                 {
             39                     cout << '.';
             40                 }
             41                 cout << ' ';
             42             }
             43         }
             44         cout << endl;
             45         for (string::size_type j = i * 10; j < (i * 10 + 10 < bc.size() ? i * 10 + 10 : bc.size()); ++j)
             46         {
             47             if (bc[j] == ' ')
             48             {
             49                 cout << '\t';
             50             }
             51             else
             52             {
             53                 if (test(bc[j], 1))
             54                 {
             55                     cout << '@';
             56                 }
             57                 else
             58                 {
             59                     cout << '.';
             60                 }
             61                 if (test(bc[j], 4))
             62                 {
             63                     cout << '@';
             64                 }
             65                 else
             66                 {
             67                     cout << '.';
             68                 }
             69                 cout << ' ';
             70             }
             71         }
             72         cout << endl;
             73         for (string::size_type j = i * 10; j < (i * 10 + 10 < bc.size() ? i * 10 + 10 : bc.size()); ++j)
             74         {
             75             if (bc[j] == ' ')
             76             {
             77                 cout << '\t';
             78             }
             79             else
             80             {
             81                 if (test(bc[j], 2))
             82                 {
             83                     cout << '@';
             84                 }
             85                 else
             86                 {
             87                     cout << '.';
             88                 }
             89                 if (test(bc[j], 5))
             90                 {
             91                     cout << '@';
             92                 }
             93                 else
             94                 {
             95                     cout << '.';
             96                 }
             97                 cout << ' ';
             98             }
             99         }
            100         cout << endl;
            101         cout << endl;
            102     }
            103 }
            104 
            105 string encode(const string& sentence, const map<charint> encoding)
            106 {
            107     string tmp;
            108     for (string::size_type i = 0; i != sentence.size(); ++i)
            109     {
            110         map<charint>::const_iterator cit = encoding.find(tolower(sentence[i]));
            111         if (cit != encoding.end())
            112         {
            113             tmp += static_cast<char>(cit->second);
            114         }
            115         else
            116         {
            117             tmp += ' ';
            118         }
            119     }
            120     return tmp;
            121 }
            122 
            123 int main()
            124 {
            125     ifstream fin("brailleCode.txt");
            126     if (!fin)
            127     {
            128         cerr << "File error!" << endl;
            129         return 1;
            130     }
            131     map<charint> encoding;
            132     char a;
            133     int b;
            134     while (fin >> a >> b)
            135     {
            136         encoding[a] = b;
            137     }
            138     string sentence, bc;
            139     while (getline(cin, sentence))
            140     {
            141         bc = encode(sentence, encoding);
            142         //cout << bc << endl;
            143         display(bc);
            144     }
            145     return 0;
            146 }

             

             


            posted on 2011-11-15 18:20 unixfy 閱讀(406) 評論(0)  編輯 收藏 引用
            亚洲&#228;v永久无码精品天堂久久| 国产亚洲婷婷香蕉久久精品| 久久免费美女视频| 久久久久免费视频| 亚洲国产精品无码久久久秋霞2 | 久久精品国产一区| 久久久久婷婷| 91麻精品国产91久久久久| 久久久午夜精品福利内容| 精品欧美一区二区三区久久久| 欧洲成人午夜精品无码区久久| 国产精久久一区二区三区| 久久久久久毛片免费播放| 久久人人爽人人爽人人片AV东京热| 久久精品视频网| 久久夜色精品国产网站| 国产成人无码精品久久久性色 | 精品久久久久久久中文字幕| 久久精品国产亚洲AV高清热 | 日韩美女18网站久久精品| 成人妇女免费播放久久久| 国产国产成人精品久久| 2020久久精品国产免费| 国产午夜免费高清久久影院 | 久久99精品国产麻豆婷婷| 99热成人精品免费久久| 亚洲欧美精品伊人久久| 久久国产影院| 精品熟女少妇av免费久久| 国产成人久久久精品二区三区 | 亚洲午夜无码久久久久| 国产精品久久久天天影视| 精品蜜臀久久久久99网站| 久久久久久无码国产精品中文字幕 | 久久精品亚洲一区二区三区浴池| 久久久久高潮毛片免费全部播放| 一本大道加勒比久久综合| 久久久久国产| 久久本道伊人久久| 无码人妻久久一区二区三区免费| 久久本道久久综合伊人|