• <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)  編輯 收藏 引用
            久久综合给久久狠狠97色| 国产精品久久久久久搜索| 亚洲人成网站999久久久综合 | 久久久久久A亚洲欧洲AV冫| 午夜精品久久久久久影视777| 伊人久久大香线蕉亚洲| 2021久久国自产拍精品| 久久久久亚洲AV无码专区桃色| 国内精品人妻无码久久久影院导航 | 亚洲精品第一综合99久久| 久久精品人人做人人爽97| 韩国三级中文字幕hd久久精品| 久久亚洲国产精品成人AV秋霞| 青青青伊人色综合久久| 2021国产精品久久精品| 国内精品免费久久影院| 丰满少妇人妻久久久久久| 久久久久久久女国产乱让韩| 国产精品成人无码久久久久久| 亚洲AV日韩精品久久久久久| 青青久久精品国产免费看| 久久久久久免费一区二区三区| 久久婷婷五月综合97色直播| 人妻少妇精品久久| 国产精品无码久久综合网| 精品无码久久久久国产| 久久影院综合精品| 日产精品久久久久久久| 久久婷婷色香五月综合激情 | 久久无码精品一区二区三区| 日本免费久久久久久久网站| 国产午夜精品久久久久免费视 | 国产巨作麻豆欧美亚洲综合久久 | 国产亚洲美女精品久久久| 国产精品久久久久久搜索| 久久99精品久久久久久hb无码| 久久精品免费一区二区| 狠狠精品久久久无码中文字幕| 亚洲日本久久久午夜精品| 国产精品久久久久蜜芽| 欧美日韩精品久久久免费观看|