日韩性视频-久久久蜜桃-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ò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: www.成人在线视频 | 欧美一级黄色片在线观看 | 少妇29p | 色视频线观看在线播放 | 东京热毛片 | 日韩制服诱惑 | 国产亚洲视频一区 | 美女主播福利视频 | 91视频这里只有精品 | 国产精品成人99一区无码 | 午夜不卡久久精品无码免费 | 日本成人三级电影 | 懂色av蜜臀av粉嫩av分 | 欧美性猛交7777777 | 免费一级片网址 | 我要看免费黄色片 | 日韩小视频| 国产精品久久久久久免费免熟 | 男女操操 | 91黑丝美女 | 亚洲一区二区视频在线播放 | 伊人网在线视频观看 | 淫五月| 日韩精品久久一区二区 | 人成在线观看 | 精品欧美久久久 | 国产v亚洲v天堂无码久久久 | 操欧美美女 | 伊人伊色 | 少妇太爽了 | 91丨国产丨捆绑调教 | 久久嫩草精品久久久久 | 天天看天天色 | 亚洲黄色三级视频 | 午夜激情欧美 | 色无极在线 | 日韩av影片 | 日本www在线播放 | 综合色久| 欧洲美一区二区三区亚洲 | 日本黄色播放器 | 小镇姑娘国语版在线观看免费 | 青娱乐最新地址 | 亚洲欧美偷拍一区 | 成人3d动漫在线观看 | 岛国精品一区 | 国产乱强伦一区二区三区 | 国产sm主人调教女m视频 | 久久久欧洲 | 亚州黄色 | 成人在线免费视频 | 亚洲是色| 欧美一区在线观看视频 | 久久6视频 | 国产裸体视频 | 免费手机av| 一二级毛片 | 你懂的91 | 欧美xxxx网站 | 欧美做爰爽爽爽爽爽爽 | 婷婷啪啪 | 国产一区二区激情 | 亚洲一级特黄毛片 | 九九热精彩视频 | 本庄优花番号 | 亚洲色图视频在线观看 | 国产精品无码99re | 日本中文字幕在线免费观看 | 蜜桃视频成人在线观看 | 婷婷久久久久久 | 337p粉嫩大胆噜噜噜亚瑟影院 | 人妖一级片 | 在线久久| 二区三区| 久久成人福利 | 放几个免费的毛片出来看 | 爱福利视频一区 | 久久久a级片 | 午夜在线一区二区三区 | 欧洲久久久久久 | 黄色网入口 | 亚洲精品aa | 婷婷婷色 | 少妇一级免费 | av天天看| 人人看人人爽 | 天堂综合 | 欧美大肥婆大肥bbbbb | 亚洲成人av在线 | 亲子乱子伦xxxx | 精品日韩| 日本xxxx裸体xxxx出水 | 国产乡下妇女做爰毛片 | 国产又粗又猛又爽又黄91 | 香蕉视频色版 | 成人一区二区免费视频 | 日本免费不卡一区二区 | 欧美日韩18| 黄色录像二级片 |