日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

算法--组合数学:杨辉三角数学分析以及Java实现

發(fā)布時(shí)間:2025/3/20 java 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 算法--组合数学:杨辉三角数学分析以及Java实现 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.定義

楊輝三角,是二項(xiàng)式系數(shù)在三角形中的一種幾何排列。

下圖為楊輝三角部分?jǐn)?shù)據(jù)

2.楊輝三角規(guī)律

前提:每行端點(diǎn)與結(jié)尾的數(shù)為1

最重要的規(guī)律:

每個(gè)數(shù)字等于上一行的左右兩個(gè)數(shù)字之和。可用此性質(zhì)寫(xiě)出整個(gè)楊輝三角。即第n+1行的第i個(gè)數(shù)等于第n行的第i-1個(gè)數(shù)和第i個(gè)數(shù)之和,這也是組合數(shù)的性質(zhì)之一。

C(n+1,i)=C(n,i)+C(n,i?1)


2.1 楊輝三角與11的冪的關(guān)系

假設(shè)y=11^n

當(dāng)n=0時(shí): y=1; 當(dāng)n=1時(shí): y=11; 當(dāng)n=2時(shí): y=121; 當(dāng)n=3時(shí): y=1331; 當(dāng)n=4時(shí): y=14641; ……


2.2 楊輝三角與2的冪的關(guān)系

假設(shè)每一行的和為sum
則sum=2^(行數(shù)-1),如下:

第一行:1 1=2^0 第二行:1 1 1+1=2^1 第三行:1 2 1 1+2+1=2^2 第四行:1 3 3 1 1+3+3+1=2^3 第五行:1 4 6 4 1 1+4+6+4+1=2^4 第六行:1 5 10 10 5 1 1+5+10+10+5+1=2^5 ……


2.3 楊輝三角與二項(xiàng)式定理展開(kāi)式關(guān)系

二項(xiàng)式定理公式

二項(xiàng)式與楊輝三角的對(duì)應(yīng)關(guān)系:

二項(xiàng)式定理與楊輝三角形是一對(duì)天然的數(shù)形趣遇,它把數(shù)形結(jié)合帶進(jìn)了計(jì)算數(shù)學(xué)。求二項(xiàng)式展開(kāi)式系數(shù)的問(wèn)題,實(shí)際上是一種組合數(shù)的計(jì)算問(wèn)題。

  • 用系數(shù)通項(xiàng)公式來(lái)計(jì)算,稱(chēng)為“式算”
  • 用楊輝三角形來(lái)計(jì)算,稱(chēng)作“圖算”

3. 楊輝三角的應(yīng)用

最經(jīng)典的應(yīng)用是小時(shí)候玩的彈球游戲,這種題目類(lèi)再高中學(xué)習(xí)概率時(shí),大家肯定都遇到過(guò)。

彈球游戲

小球向容器內(nèi)跌落,碰到第一層擋物后向兩側(cè)跌落碰到第二層阻擋物,再向兩側(cè)跌落第三層阻擋物,如此一直下跌最終小球落入底層。根據(jù)具體地區(qū)獲的相應(yīng)的獎(jiǎng)品(AG區(qū)獎(jiǎng)品最好,BF區(qū)獎(jiǎng)品次之,CE區(qū)獎(jiǎng)品第三,D 區(qū)獎(jiǎng)品差)。


4. Java代碼實(shí)現(xiàn)楊輝三角

4.1 邏輯分析(用數(shù)組):

  • 1)既然知道楊輝三角的規(guī)律:從第三行開(kāi)始中間數(shù)是上一行斜對(duì)角的兩數(shù)之和
  • 2)那么我只需要想辦法存錯(cuò)上一行的數(shù)據(jù)即可,用于計(jì)算下一行中間的數(shù)值
  • 3)因?yàn)閺牡谌胁砰_(kāi)始出現(xiàn)上述規(guī)律,所以我們需要首先要存儲(chǔ)第二行的數(shù)據(jù),即k=2 - - k為存儲(chǔ)上一行數(shù)據(jù)的數(shù)組(若為集合就不需要考慮長(zhǎng)度變化的問(wèn)題了)
  • 4)每一行的長(zhǎng)度都在變化,所以k也需要變化,即k++

  • 備注:這里使用的是數(shù)組,使用集合會(huì)更簡(jiǎn)單


4.2 打印結(jié)果為直角三角形時(shí)

4.3 實(shí)現(xiàn)代碼

package 楊輝三角;/** 目的:Java代碼實(shí)現(xiàn)楊輝三角* * 邏輯分析(用數(shù)組):* 1)既然知道楊輝三角的規(guī)律:從第三行開(kāi)始中間數(shù)是上一行斜對(duì)角的兩數(shù)之和* 2)那么我只需要想辦法存錯(cuò)上一行的數(shù)據(jù)即可,用于計(jì)算下一行中間的數(shù)值* 3)因?yàn)閺牡谌胁砰_(kāi)始出現(xiàn)上述規(guī)律,所以我們需要首先要存儲(chǔ)第二行的數(shù)據(jù),即k=2----k為存儲(chǔ)上一行數(shù)據(jù)的數(shù)組(若為集合就不需要考慮長(zhǎng)度變化的問(wèn)題了)* 4)每一行的長(zhǎng)度都在變化,所以k也需要變化,即k++* * 備注:這里使用的是數(shù)組,使用集合會(huì)更簡(jiǎn)單*/ public class Test1 {public static void main(String[] args) {//1.創(chuàng)建存儲(chǔ)上一行數(shù)據(jù)的數(shù)組tempint k = 2;int[] temp = new int[k];//1.1 因?yàn)閮啥藬?shù)均為1,所以給第一個(gè)數(shù)temp[0]和最后一個(gè)數(shù)temp[k-1]賦值為1temp[0] = temp[k - 1] = 1;//2.打印楊輝三角//打印的行數(shù)--即楊輝三角行數(shù)rowCountint rowCount = 12;for (int i = 1; i <= rowCount; i++) {// 建立數(shù)組,存取當(dāng)前行數(shù)據(jù)int[] arr = new int[i];// 給當(dāng)前行數(shù)組賦值for (int j = 0; j < i; j++) {// 先給第一個(gè)和最后一個(gè)數(shù)賦值if (j == 0 || j == i - 1) {arr[j] = 1;} else {// 中間數(shù)為上一行斜對(duì)角的兩數(shù)之和arr[j] = temp[j - 1] + temp[j];}}// 給當(dāng)前行賦值完畢后讓k+1,增加數(shù)組長(zhǎng)度,用于存取當(dāng)前行的數(shù)據(jù)k++;temp = new int[k];// 打印當(dāng)前行數(shù)組,并給新temp賦值,便于下一行使用當(dāng)前行數(shù)據(jù)for (int y = 0; y < arr.length; y++) {temp[y] = arr[y];System.out.print(arr[y] + " ");}System.out.println();}} }

4.4 以下內(nèi)容僅供參考,可以不看

若想打印為等腰三角形,添加一個(gè)打印空格效果即可

for(int z=0;z<rowCount-i;z++){System.out.print(" ");}

完整代碼

package 楊輝三角;public class Test1 {public static void main(String[] args) {//1.創(chuàng)建存儲(chǔ)上一行數(shù)據(jù)的數(shù)組tempint k = 2;int[] temp = new int[k];//1.1 因?yàn)閮啥藬?shù)均為1,所以給第一個(gè)數(shù)temp[0]和最后一個(gè)數(shù)temp[k-1]賦值為1temp[0] = temp[k - 1] = 1;//2.打印楊輝三角//打印的行數(shù)--即楊輝三角行數(shù)rowCountint rowCount = 8;for (int i = 1; i <= rowCount; i++) {// 建立數(shù)組,存取當(dāng)前行數(shù)據(jù)int[] arr = new int[i];// 給當(dāng)前行數(shù)組賦值for (int j = 0; j < i; j++) {// 先給第一個(gè)和最后一個(gè)數(shù)賦值if (j == 0 || j == i - 1) {arr[j] = 1;} else {// 中間數(shù)為上一行斜對(duì)角的兩數(shù)之和arr[j] = temp[j - 1] + temp[j];}}// 給當(dāng)前行賦值完畢后讓k+1,增加數(shù)組長(zhǎng)度,用于存取當(dāng)前行的數(shù)據(jù)k++;temp = new int[k];//打印空格來(lái)實(shí)現(xiàn)等腰三角形 for(int z=0;z<rowCount-i;z++){System.out.print(" ");}// 打印當(dāng)前行數(shù)組,并給新temp賦值,便于下一行使用當(dāng)前行數(shù)據(jù)for (int y = 0; y < arr.length; y++) {temp[y] = arr[y];System.out.print(arr[y] + " ");}System.out.println();}} }

結(jié)果:

總結(jié)

以上是生活随笔為你收集整理的算法--组合数学:杨辉三角数学分析以及Java实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 四虎国产在线 | 在线观看免费视频一区 | 亚欧精品视频一区二区三区 | 美女被c出水 | 加勒比视频在线观看 | 直接看的av网站 | 日本黄色免费网站 | 免费看黄色一级大片 | 国产精品人| 色天天综合网 | 欧美一区二区三区系列电影 | 亚洲精品久久久乳夜夜欧美 | 国产不卡精品视频 | 久久国产传媒 | 婷婷综合另类小说色区 | 国产精品精品国产 | 日韩av在线免费 | 亚洲成人一区在线 | 男女午夜啪啪 | 久久久欧美精品sm网站 | 丁香激情六月 | 久久久视频在线观看 | 羞羞色院91蜜桃 | 久久av免费看 | 爱逼av| 国产精品老熟女视频一区二区 | 欧美日韩麻豆 | 美日韩精品视频 | 男女男网站 | 亚洲av成人片色在线观看高潮 | 日韩亚洲影院 | 亚洲精品一区 | 天天操网址 | 国产成人精品亚洲 | 国产又黄又猛又粗又爽 | 午夜国产在线 | 国模人体私拍xvideos | 欧美一级性 | 欧美性猛交xxxx偷拍洗澡 | 中文字幕23页 | 亚洲激情成人网 | 少妇荡乳情欲办公室456视频 | www.天天色 | 欧美91精品久久久久国产性生爱 | 人人澡人人看 | 桃色视频网站 | 97人妻精品一区二区三区视频 | 国产视频一区二区在线 | 日韩精品一区二区三区丰满 | 久久亚洲精品国产精品黑人v | 精品视频免费播放 | 亚洲欧美国产一区二区 | 午夜免费一区 | 亚洲中文字幕97久久精品少妇 | 日韩在线中文字幕视频 | 欧美日韩国产一区二区在线观看 | 97麻豆视频 | 娇妻av| 日韩欧美亚洲视频 | 欧美性色黄大片手机版 | 亚洲第一视频在线 | 国产综合在线观看视频 | 九九热视频在线免费观看 | 欧美高清精品一区二区 | wwwxxxx在线观看 | 国产一区二区三区 | 欧美午夜小视频 | 中文字幕av免费 | 成人免费片 | 国产精品久久一区 | 毛片的网址 | 国内精品久久久久久久 | 国产精品久免费的黄网站 | 久久撸视频| 女同久久另类69精品国产 | 欧美三级一区二区 | 中国精品一区二区 | 9i在线看片成人免费 | 爱爱小视频免费看 | 色97| 日本福利一区 | 成人做爰黄 | 木下凛凛子av一区二区三区 | 国产女主播喷水高潮网红在线 | 欧美性受xxxx黑人猛交88 | 日本激情一区二区 | 日韩av不卡一区 | 偷拍亚洲欧美 | 亚洲精品乱| 久草91 | 丝袜老师让我了一夜网站 | 欧美人与动性xxxxx杂性 | 精品中出 | 一级做a爰片久久毛片潮喷 天天透天天干 | 久久中文字幕精品 | 国产伦乱视频 | 国产高清视频免费观看 | 伊人久久一区 | 国产精品乱码一区二区 |