人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

生成魔方陣(周記05-03)

生成魔方陣(周記05-03)

更新時(shí)間:2022-07-08 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

最近加緊學(xué)C#,同時(shí)又想再看看算法。誰要咱們在科研口,就是一個(gè)自己的時(shí)間多,當(dāng)然money也就少些了。

書買了不少,什么《21天學(xué)通C#》、《C#Primer》還有《Microsoft .Net框架程序設(shè)計(jì)(修訂版)》。當(dāng)然這些書的選擇是本人看了不少書評后才買的,看了看都是不錯(cuò)的選擇,好書!

書雖好但也要人用心來看啊,本人利用業(yè)余時(shí)間基本已瀏覽一遍,更細(xì)的知識(shí)點(diǎn)就要在以后的學(xué)習(xí)中好好掌握了。

說到這里,說出來你死都不會(huì)相信我在單位還是個(gè)小頭,平日里受盡老老少少、上上下下的“氣”,只有下班后在書中找到一刻安寧。讀書的目的至于此可見已是一種悲哀了。

我下定決心,不論單位的事和家里的事有多忙,每周寫一篇學(xué)習(xí)周記,而非日記,日記是肯定沒有時(shí)間來寫的了。

先易后難,看了一下很久前買的一本《程序員高級程序員級 程序設(shè)計(jì)(第二版)》這本書上有不少好的算法例子,它們原來都是用C寫的,我用C#重寫一遍,在做一個(gè)小工具展示一下,這樣比較直觀。

第一個(gè)我們來看看P96上的生成魔方陣問題。

魔方陣是指元素為自然數(shù)1,2,…,N2 的N×N方陣,每個(gè)元素值均不相等,每行、列及主、副對角線上各N個(gè)元素之和都相等。

對奇階魔方陣,可用Dole Rob算法生成,其過程為:從1開始,以此插入各自然數(shù),直到N2為止。選擇插入位置原則為:

a. 第一個(gè)位置在第一行的正中;

b. 新位置應(yīng)當(dāng)處于最近一個(gè)插入位置右上方,但如右上方位置已超出方陣上邊界,則新位置取應(yīng)選列的最下一個(gè)位置;如超出右邊界則新邊界取應(yīng)選行的最左一個(gè)位置;

c. 若最近一個(gè)插入元素為N的整數(shù)倍,則選下面一行同列的位置為新位置。

本算法的實(shí)現(xiàn)就需要用到二維整數(shù)數(shù)組實(shí)現(xiàn)方陣。

核心算法如下:

private void button1_Click(object sender, System.EventArgs e)

{ //這部分為生成魔方陣的Dole Rob算法。

int count,curi,curj;

int i,j;

int[,] magic=new int[3,3];

string a;





curi=0;

curj=1;

for(count=1;count<=9;count++)

{

magic[curi,curj]=count;

if((count%3)==0)//最近一個(gè)插入元素為階數(shù)的整數(shù)倍,則選下面一行同列上的位置為新位置。

{

curi+=1;

continue;

}

curi=curi-1;

curj=curj+1;

if(curi<0)

curi+=3;

else if(curj==3)

curj-=3;

}

textBox1.AppendText("\n");//下面在textBox1中顯示生成的魔方陣

for (i=0;i<3;i++)

{ textBox1.AppendText("\n");



for(j=0;j<3;j++)

{ a = Convert.ToString(magic[i,j]);

textBox1.AppendText(a);

textBox1.AppendText(" ");



}

textBox1.AppendText("\n");

}

label1.Text="本例中的魔方陣的階數(shù)這里取3,當(dāng)然也可以增加控制階數(shù)的控件,為了簡單這里不再給出。";



}





圖1 點(diǎn)擊“生成魔方塊”按鈕前







圖2 點(diǎn)擊“生成魔方塊”按鈕后



在重寫改算法時(shí),有幾個(gè)問題給我印象很深:

a. magic[curi,curj]是這樣寫,而不是寫成magic[curi],[curj],后者是c的寫法。

b. a = Convert.ToString(magic[i,j])這一句很關(guān)鍵,否則結(jié)果無法在textBox1中顯示,convert類是在system命名空間中的,它的一些方法轉(zhuǎn)換數(shù)據(jù)類型起來很有用。為什么要轉(zhuǎn)換,因?yàn)閠extBox1.AppendText(a)中a一定要為string類型。

c. C#語言里是嚴(yán)格區(qū)分大小寫的。

好了,就寫到這里吧,你別說做你喜歡的事情即使累心里也甜甜的。

明天又要………,當(dāng)老百姓最快活但老百姓的獎(jiǎng)金畢竟少些,矛盾啊,嘿嘿,J。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 呼伦贝尔市| 天水市| 柳河县| 青阳县| 崇信县| 太原市| 会昌县| 襄樊市| 瑞金市| 永清县| 策勒县| 南召县| 普宁市| 大丰市| 新疆| 普兰店市| 平安县| 寻乌县| 南澳县| 井陉县| 苍梧县| 门头沟区| 大悟县| 沙田区| 灌云县| 广饶县| 竹溪县| 桂林市| 开阳县| 沙田区| 柯坪县| 城口县| 义乌市| 芜湖市| 婺源县| 吴江市| 越西县| 防城港市| 正镶白旗| 武邑县| 高唐县|