亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

C趣味編程百例(10)

2019-11-17 05:40:33
字體:
來源:轉載
供稿:網友


35.素數幻方
    求四階的素數幻方。即在一個4X4 的矩陣中,每一個格填 入一個數字,使每一行、每一列和兩條對角線上的4 個數字所組成的四位數,均為可逆素數。
*問題分析與算法設計
    有了前面的基礎,本題應當說是不困難的。
    最簡單的算法是:采用窮舉法,設定4X4矩陣中每一個元素的值后,判定每一行、每一列和兩條對角線上的4個數字組成的四位數是否都是可逆素數,若是則求出了滿足題意的一個解。
    這種算法在原理是對的,也一定可以求出滿足題意的全部解。但是,按照這一思路編出的程序效率很低,在微機上幾個小時也不會運行結束。這一算法致命的缺陷是:要窮舉和判定的情況過多。
    充分利用題目中的“每一個四位數都是可逆素數”這一條件,可以放棄對矩陣中每個元素進行的窮舉的算法,先求出全部的四位可逆素數(204個),以矩陣的行為單位,在四位可逆素數的范圍內進行窮舉,然后將窮舉的四位整數分解為數字后,再進行列和對角線方向的條件判定,改進的算法與最初的算法相比,大大地減少了窮舉的次數。
    考慮矩陣的第一行和最后一行數字,它們分別是列方向四位數的第一個數字和最后一個數字,由于這些四位數也必須是可逆素數,所以矩陣的每一行和最后一行中的各個數字都不能為偶數或5。這樣窮舉矩陣的第一行和最后一行時,它們的取值范圍是:所有位的數字均不是偶數或5的四位可逆數。由于符合這一條件的四位可逆素數很少,所以這一范圍限制又一次減少了窮舉的次數。
    對算法的進一步研究會發現:當設定了第一和第二行的值后,就已經可以判定出當前的這種組合是否一定是錯誤的(尚不能肯定該組合一定是正確的)。若按列方向上的四個兩位數與四位可逆數的前兩位矛盾(不是其中的一種組合),則第一、二行的取值一定是錯誤的。同理在設定了前三行數據后,可以馬上判定出當前的這種組合是否一定是錯誤的,若判定出矛盾情況,則可以馬上設置新的一組數據。這樣就可以避免將四個數據全部設定好以后再進行判定所造成的低效。
    根據以上分析,可以用偽語言描述以上改進的算法:
        開始
            找出全部四位的可逆素數;
            確定全部出現在第一和最后一行的四位可逆素數;
            在指定范圍 內窮舉第一行
                在指定范圍內窮舉第二行
                    若第一、第二、三行已出現矛盾,則繼續窮舉下一個數;
                    在指定范圍內窮舉第四行
                        判定列和對角方向是否符合題意
                            若符合題意,則輸出矩陣;
                        否則繼續窮舉下一個數;
        結束
    在實際編程中,采用了很多程序設計技巧,假如設置若干輔助數組,其目的就是要最大限度的提高程序的執行效率,縮短運行時間。下面的程序運行效率是比較高的。
*程序與程序注釋
#include<stdio.h>
#include<math.h>
int number[210][5];     /*存放可逆素數及素數分解后的各位數字*/
int select[110];        /*可以放在矩陣第一行和最后一行的素數的下標*/     
int array[4][5];        /*4X4的矩陣,每行0號元素存可逆素數對應的數組下標*/
int count;              /*可逆素數的數目*/
int selecount;          /*可以放在矩陣第一行和最后一行的可逆素數的數目*/
int larray[2][200];     /*存放素數前二、三位數的臨時數組所對應的數量計數器*/
int lcount[2];
int num(int number);
int ok(int number);
void PRocess(int i);
void copy_num(int i);
int comp_num(int n);
int find1(int i);
int find2(void);
int find0(int num);
void p_array(void);

void main()
{
    int i,k,flag,cc=0,i1,i4;
    printf("there are magic squares with invertable primes as follw:/n");
    for(i=1001;i<9999;i+=2)                 /*求滿足條件的可逆素數*/
    {
        k=i/1000;
        if(k%2!=0&&k!=5&&num(i))     /*若可逆素數的第一位不是偶數或5*/
        {
            number[count][0]=i;      /*存入數組*/
            process(count++);        /*分解素數的各位數字*/
            if(number[count-1][2]%2!=0&&   /*若可逆素數滿足放在矩陣第一行*/
               number[count-1][3]%2!=0&&   /*和最后一行的條件,記錄可逆素數的*/
               number[count-1][2]!=5&&     /*下標,計數器加1*/
               number[count-1][3]!=5)
                select[selecount++]=count-1;
        }
    }
    larray[0][lcount[0]++]=number[0][0]/100;     /*臨時數組的第一行存前二位*/
    larray[1][lcount[1]++]=number[0][0]/10;      /*臨時數組的第二行存前三位*/
    for(i=1;i<count;i++)                /*將素數不重復的前二、三位存入臨時數組中*/
    {
        if(larray[0][lcount[0]-1]!=number[i][0]/100)
            larray[0][lcount[0]++]=number[i][0]/100;
        if(larray[1][lcount[1]-1]!=number[i][0]/10)
            larray[1][lcount[1]++]=number[i][0]/10;
    }
    for(i1=0;i1<selecount;i1++)                    /*在第一行答應的匯聚圍內窮舉*/
    {
        array[0][0]=select[i1];                    /*取對應的素數下標*/
        copy_num(0);                               /*復制分解的素數*/
        for(array[1][0]=0;array[1][0]<count;array[1][0]++)    /*窮舉第二行*/
        {
            copy_num(1);                /*復制分


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品网站入口| 欧美成人午夜激情视频| 欧美电影免费观看电视剧大全| 久久久91精品国产| 亚洲欧美一区二区精品久久久| 欧美成人亚洲成人日韩成人| 久久人人爽国产| 亚洲欧美日本另类| 精品自在线视频| 国产精品久久久久影院日本| 亚洲欧美在线免费观看| 亚洲黄色免费三级| 亚洲免费高清视频| 亚洲美女av黄| 国产精品扒开腿做爽爽爽男男| 国产亚洲人成网站在线观看| 欧美极品第一页| 欧美日韩国产综合新一区| 日韩精品在线免费观看| 91av成人在线| 91精品久久久久久久久久久久久久| 久久99国产综合精品女同| 在线观看国产欧美| 欧美性生交xxxxx久久久| 色综合久综合久久综合久鬼88| 日韩专区在线观看| 国产精品免费久久久久影院| 日韩欧美一区二区三区久久| 欧美日韩国产精品一区二区三区四区| 亚洲日韩中文字幕在线播放| 久久久久日韩精品久久久男男| 精品久久久久久中文字幕| 亚洲欧美国产一本综合首页| 久久久久亚洲精品| 欧美激情国产精品| 欧美精品videosex性欧美| 亚洲国产成人精品电影| 欧美老肥婆性猛交视频| 欧美在线视频网站| 九九热精品视频| 欧美综合在线第二页| 欧美在线视频免费观看| 日韩中文视频免费在线观看| 97人洗澡人人免费公开视频碰碰碰| www.日韩欧美| 国语自产精品视频在线看抢先版图片| www.久久草.com| 日本高清不卡的在线| 亚洲人午夜精品| 欧美激情图片区| 久久久精品久久| 国产日韩欧美视频| 国产丝袜一区视频在线观看| 午夜精品美女自拍福到在线| 国产美女91呻吟求| 国产99久久精品一区二区 夜夜躁日日躁| 欧美人交a欧美精品| 国产成人综合精品在线| 日韩av成人在线观看| 亚洲影院污污.| 欧美男插女视频| 欧美激情乱人伦一区| 亚洲天堂成人在线视频| 亚洲欧美国产制服动漫| 亚洲精品自拍视频| 久久夜色精品国产亚洲aⅴ| 日韩av观看网址| 欧美日韩国产精品一区二区三区四区| 欧美激情精品久久久久久| 国产欧美一区二区三区四区| 亚洲国产精品va在看黑人| 日韩国产高清视频在线| 精品久久香蕉国产线看观看gif| 亚洲精品国产综合久久| 第一福利永久视频精品| 国产精品亚洲自拍| 亚洲欧美另类在线观看| 欧美限制级电影在线观看| 亚洲欧美精品suv| 欧美性xxxxxxxxx| 国产亚洲综合久久| 久久久久久久久中文字幕| 亚洲永久免费观看| 日韩av日韩在线观看| 亚洲自拍另类欧美丝袜| 亚洲欧洲日韩国产| 日韩av第一页| 亚洲成人精品视频| 国产精品男人爽免费视频1| 成人性生交大片免费观看嘿嘿视频| 91九色单男在线观看| 国产成人精品网站| 国产欧美精品在线| 亚洲а∨天堂久久精品喷水| 亚洲欧美精品伊人久久| 欧美高清videos高潮hd| 伊人久久综合97精品| 国产精品aaa| 色www亚洲国产张柏芝| 欧美高跟鞋交xxxxxhd| 久久天天躁夜夜躁狠狠躁2022| 日av在线播放中文不卡| 午夜美女久久久久爽久久| 国产成+人+综合+亚洲欧美丁香花| 国产精品专区第二| 免费91在线视频| 国产日韩精品入口| 国产欧美日韩免费看aⅴ视频| 亚洲国产精品999| 中文字幕最新精品| 亚洲精品在线看| 欧洲亚洲妇女av| 国产精品成久久久久三级| 黑人巨大精品欧美一区二区一视频| 中文字幕日韩综合av| 欧美日韩国产精品一区二区不卡中文| 97国产精品免费视频| 91美女片黄在线观看游戏| 中文字幕亚洲欧美在线| 91大神在线播放精品| 欧美中文字幕第一页| 97色在线视频观看| 国产一区二区三区欧美| 欧美电影免费观看大全| 国产精品久久av| 久久久久久久一区二区| 国产一区二区日韩精品欧美精品| 国产在线视频91| 成人av在线网址| 欧美成人网在线| 琪琪亚洲精品午夜在线| 久久精品91久久香蕉加勒比| 久久久国产精品亚洲一区| 欧美成人性生活| 欧美一区深夜视频| 少妇激情综合网| 欧美精品在线网站| 草民午夜欧美限制a级福利片| 亚洲综合日韩中文字幕v在线| 亚洲精品久久久久久久久久久久久| 欧美成人性生活| 亚洲丁香久久久| 精品欧美国产一区二区三区| 国产精品一区二区久久久久| 国产成人精品国内自产拍免费看| 亚洲日本成人网| 亚洲欧美日韩在线一区| 狠狠躁夜夜躁人人爽天天天天97| 国外成人在线播放| 亚洲欧美精品一区二区| 黑人巨大精品欧美一区二区| 久久中文字幕在线| 国产97在线亚洲| 色婷婷av一区二区三区在线观看| 国产91精品视频在线观看| 亚洲第一视频网站| 国产精品久久久久久久av大片| 欧美性感美女h网站在线观看免费| 黑人狂躁日本妞一区二区三区| 久久久久久久久亚洲| 亚洲精品久久久久国产| 亚洲第一男人天堂| 亚洲社区在线观看| 亚洲精品久久久久久久久|