• <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 閱讀(390) 評論(0)  編輯 收藏 引用
            精品无码久久久久久国产| 久久99精品久久久久久噜噜| 久久久久国产日韩精品网站| 亚洲七七久久精品中文国产| 久久人人爽人人爽人人片av麻烦 | 国产精品视频久久久| 欧美综合天天夜夜久久| 三级韩国一区久久二区综合| 久久久www免费人成精品| 97久久香蕉国产线看观看| 亚洲一区精品伊人久久伊人| www性久久久com| 久久香综合精品久久伊人| 2020久久精品国产免费| 亚洲国产成人久久精品99 | 性做久久久久久久久久久| 欧洲人妻丰满av无码久久不卡| 婷婷久久综合九色综合98| 国产精品久久婷婷六月丁香| 国产午夜精品理论片久久| 日韩AV无码久久一区二区| 日韩十八禁一区二区久久| 一级做a爰片久久毛片人呢| 欧美一区二区三区久久综| 色8激情欧美成人久久综合电| 亚洲国产天堂久久综合网站| 日本强好片久久久久久AAA| 国产精品乱码久久久久久软件| 久久精品不卡| 伊人色综合久久| 国产叼嘿久久精品久久| 精品久久久久久亚洲精品| 精品久久人人爽天天玩人人妻| 久久久久亚洲AV成人网人人软件| 99久久成人国产精品免费| 久久久噜噜噜www成人网| AV无码久久久久不卡蜜桃| 久久伊人五月丁香狠狠色| 久久久国产99久久国产一| 久久亚洲日韩看片无码| 久久精品国产男包|