• <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>
            隨筆 - 15  文章 - 5  trackbacks - 0
            <2011年9月>
            28293031123
            45678910
            11121314151617
            18192021222324
            2526272829301
            2345678

            常用鏈接

            留言簿

            隨筆分類

            隨筆檔案

            文章分類

            文章檔案

            搜索

            •  

            最新評論

            • 1.?re: 2011年9月26日[未登錄]
            • 我不是吹噓,為什么1,2,3,4,5,7,9,10,11,12我都知道一點????
              看來我估計可以過電面啊~_~
            • --ZJ
            • 2.?re: 2011年9月26日
            • 有計劃的人生會很精彩。。
            • --Cheap glueless lace front wigs
            • 3.?re: 2011年9月26日
            • (14)舉個例子說明你學習能力比較強,
              牛!

              那個騰訊就是做QQ的吧,QQ里面還內嵌個木馬,有事沒事的掃描下用戶磁盤,唉,公司技術就這鳥水平,還對應聘者提那么多要求。
            • --Chipset
            • 4.?re: 2011年9月26日
            • 問這么多問題,要求不低啊,呵呵,要回答好需要很扎實的基礎
            • --LoveBeyond
            • 5.?re: 2011年9月26日
            • 這些問題我十有八九答不上來...慚愧啊
            • --pezy

            閱讀排行榜

            評論排行榜

             窮舉(枚舉)算法,又稱是暴力破解法,也是我接觸最多的理解比較全面深刻的一個算法。 
            窮舉算法就是一一列出所有可能的元素,用題目已知的條件驗證每個結果,看是否滿足。
            枚舉法的本質就是從所有候選答案中去搜索正確的解,使用該算法需要滿足兩個條件:
            1)可預先確定候選答案的數量;
            2)候選答案的范圍在求解之前必須有一個確定的集合。
            一般應用在規模比較小的問題上,因為窮舉算法一般都是循環和條件判斷來實現的,當循環比較多的時候可能,時間復雜性和空間復雜性都很大。
            舉幾個例子來看看:
            委派任務
             某偵察隊接到一項緊急任務,要求在A、B、C、D、E、F六個隊員中盡可能多地挑若干人,但有以下限制條件:
             1)A和B兩人中至少去一人;
             2)A和D不能一起去;
             3)A、E和F三人中要派兩人去;
             4)B和C都去或都不去;
             5)C和D兩人中去一個;
             6)若D不去,則E也不去。
             問應當讓哪幾個人去?
            我們可以根據已知信息得到一些限制性的條件,假設能去執行任務的代表是1,而不能去執行任務的是0,
            A+B >1 :表示A,B至少一人要去
            A+D != 2:表示AD不能同時去
            A+E+F == 2:表示三者中派兩人去
            B+C == 0 & B+C == 2:表示BC要么都去,要么都不去
            C+D == 1:表示CD只能有一人去,
            D+E == 0 & D==1表示:D不去的話,則E也不去,D去的話,E隨便,
            核心算法
            nt a,b,c,d,e,f;
             for(a=1;a>=0;a--) /*窮舉每個人是否去的所有情況*/
             for(b=1;b>=0;b--) /*1:去 0:不去*/
             for(c=1;c>=0;c--)
             for(d=1;d>=0;d--)
             for(e=1;e>=0;e--)
             for(f=1;f>=0;f--)
             if(a+b>=1&&a+d!=2&&a+e+f==2
             &&(b+c==0||b+c==2)&&c+d==1
             &&(d+e==0||d==1))
             {
             printf("A will%s be assigned. \n",a?"":"not");
             printf("B will%s be assigned. \n",b?"":"not");
             printf("C will%s be assigned. \n",c?"":"not");
             printf("D will%s be assigned. \n",d?"":"not");
             printf("E will%s be assigned. \n",e?"":"not");
             printf("F will%s be assigned. \n",f?"":"not");
             }
            一個比較有代表性的問題就是填寫運算符的游戲
            5 5 5 5 5 =5 
            由于算術表達式的特殊性,在編程求解這個算式時,需要注意以下幾點:
            (1)當填入除號時,要求右側的數不能為0
            (2)乘除的運算級別比加減高。       
            代碼如下:
                int j,i[5]; //循環變量 ,數組i用來表示4個運算符
                int sign;//累加運算時的符號  
                int result; //保存運算式的結果值
                int count=0; //計數器,統計符合條件的方案
                int num[6];  //保存操作數
                float left,right; //保存中間結果
                char oper[5]={' ','+','-','*','/'}; //運算符
                printf("請輸入5個數:");
                for(j=1;j<=5;j++)
                    scanf("%d",&num[j]);
                printf("請輸入結果:");
                scanf("%d",&result);
                for(i[1]=1;i[1]<=4;i[1]++)//循環4種運算符,1表示+,2表示-,3表示*,4表示/
                {
                    if((i[1]<4) || (num[2]!=0))//運算符若是/,則第二個運算數不能為0
                    {
                        for(i[2]=1;i[2]<=4;i[2]++)
                        {
                            if((i[2]<4) || (num[3]!=0))
                            {
                                for(i[3]=1;i[3]<=4;i[3]++)
                                {
                                    if((i[3]<4) || num[4]!=0)
                                    {
                                        for(i[4]=1;i[4]<=4;i[4]++)
                                        {
                                            if((i[4]<4) || (num[5]!=0))
                                            {
                                                left=0;
                                                right=num[1];
                                                sign=1;
                                                for(j=1;j<=4;j++)
                                                {
                                                    switch(oper[i[j]])
                                                    {
                                                        case '+':
                                                             left=left+sign*right;
                                                             sign=1;
                                                             right=num[j+1];
                                                             break;
                                                        case '-':
                                                             left=left+sign*right;
                                                             sign=-1;
                                                             right=num[j+1];
                                                             break;//通過f=-1實現減法
                                                        case '*':
                                                             right=right*num[j+1];
                                                             break;//實現乘法
                                                        case '/':
                                                             right=right/num[j+1];//實現除法
                                                             break;
                                                    }
                                                }
                                                if(left+sign*right==result)
                                                {
                                                    count++;
                                                    printf("%3d:",count);
                                                    for(j=1;j<=4;j++)
                                                        printf("%d%c",num[j],oper[i[j]]);
                                                    printf("%d=%d\n",num[5],result);
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                if(count==0)
                    printf("沒有符合要求的方法!\n");    

            posted on 2011-09-25 10:22 mengkai 閱讀(958) 評論(0)  編輯 收藏 引用
            久久久久久久波多野结衣高潮| 日日狠狠久久偷偷色综合免费 | 久久久国产精华液| 久久99久久99精品免视看动漫| 久久久亚洲欧洲日产国码二区| 久久99国产精品二区不卡| 国产综合成人久久大片91| 97精品伊人久久大香线蕉| 99久久成人国产精品免费| 免费一级欧美大片久久网| 久久久精品2019免费观看| 青青草国产97免久久费观看| 亚洲av成人无码久久精品| 国产亚洲精久久久久久无码AV| 国产69精品久久久久久人妻精品| 久久99精品国产99久久6男男| 亚洲国产精品综合久久一线| 国产精品久久久久9999高清| 亚洲精品乱码久久久久久蜜桃| 久久久久四虎国产精品| 久久精品欧美日韩精品| 中文字幕日本人妻久久久免费| 国产精品丝袜久久久久久不卡| 久久精品无码一区二区无码| 久久精品视频一| 久久综合视频网| 午夜精品久久影院蜜桃| 久久成人18免费网站| 久久综合狠狠综合久久激情 | 精品久久久久久中文字幕| 久久亚洲私人国产精品vA| 亚洲国产欧洲综合997久久| 国产精品久久婷婷六月丁香| 久久久久亚洲AV成人网| 久久精品成人免费网站| 精品精品国产自在久久高清| 国产精品久久成人影院| 国产成人精品久久二区二区| 久久精品国产精品青草| 久久久久国产精品| 久久精品无码专区免费|