国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > R > 正文

在R語言中實現排列與組合

2023-04-28 12:24:14
字體:
來源:轉載
供稿:網友

所謂排列,就是指從給定個數的元素中取出指定個數的元素進行排序。組合則是指從給定個數的元素中僅僅取出指定個數的元素,不考慮排序。(摘自百度百科)

一、定義與公式

1、排列的定義及公式

從n個不同元素中,任取r(m≤r,r與n均為自然數,下同)個元素按照一定的順序排成一列,叫做從n個不同元素中取出r個元素的一個排列;從n個不同元素中取出r(r≤n)個元素的所有排列的個數,叫做從n個不同元素中取出r個元素的排列數,用符號 p(n,r)表示。

其公式為:

排列的公式

2、組合的定義及公式

從n個不同元素中,任取r(r≤n)個元素并成一組,叫做從n個不同元素中取出r個元素的一個組合;從n個不同元素中取出r(r≤n)個元素的所有組合的個數,叫做從n個不同元素中取出r個元素的組合數。用符號 C(n,r) 表示。

計算公式為:

組合的計算公式

同時,Crn = Cn-rn

二、R中的相關函數

在R中可以使用prod函數計算排列問題,使用choose函數計算組合問題。

1、prod函數

prod函數計算數字的連乘積。其格式如下:

prod(..., na.rm = FALSE)

其中,...是參與計算的數字(復數、邏輯)向量;na.rm表示是否忽略缺失值(NA),默認為FALSE。

注意:當na.rm為FALSE時,參與計算的向量中若有NA值,則返回NA,否則會忽略向量中的NA值。

下面舉個例子說明該函數的使用:

> prod(1:8)
 [1] 40320

上面這個例子相當于計算8的階乘:8! = 40320

> prod(3:5)
 [1] 60

上面這個例子相當于計算:3 × 4 × 5 = 60

2、choose函數

choose函數的形式如下:

choose(n, k)

用于計算下列情形的問題:

n(n-1)…(n-k+1) / k! = n! / [(n-k)! k!] = C(n,k)

三、R中排列組合計算例子

1、從1~5五個數字中,任意抽取2個不同的數字,一共有多少種數字組合方法。

這是組合問題,沒有順序問題,則C(5, 2) = 5!/(3!×2!) = 10,即有10中組合情況。

在R中計算如下:

> choose(5, 2)
 [1]  10

在R中可以使用combn函數列出所有的組合情況,如本例中,可以使用下面的代碼,查看組合情況:

> combn(5, 2)
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]    1   1  1   1  2  2   2   3  3   4
[2,]    2   3  4   5  3  4   5   4  5   5

 

2、從1~5五個數字中,任意抽取2個不同的數字,如果考慮兩個數字抽取的先后順序,則有多少種情況。

因為這里考慮了抽取數字的先后順序,是排列問題,則A(5,2) = 5! / (5-2)! = 20,即有20種組合順序。

可能的組合為:

(1,2),(1,3),(1,4),(1,5),
(2,1),(2,3),(2,4),(2,5),
(3,1),(3,2),(3,4),(3,5),
(4,1),(4,2),(4,3),(4,5),
(5,1),(5,2),(5,3),(5,4)

在R中計算如下:

> prod(1:5) / prod(1:3)
  [1] 20

或者使用下面的R語句:

> choose(5,2) * prod(1:2)
  [1] 20

也可以使用下面的R語句:

> choose(5,2) * factorial(2)
 [1] 20

后面兩種情況,利用了排列和組合公式之間的關系進行推導而來的。

在第3個R代碼中使用了factorial()函數,該函數的作用計算某個數值的階乘,其原型如下:

factorial(x),這里當x的值為0時,則返回1.其余返回x(x-1)....1的連乘積,相當于prod(1:x)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 成都市| 观塘区| 邯郸县| 鹿邑县| 焦作市| 拉萨市| 新宾| 新巴尔虎右旗| 神池县| 延长县| 南宫市| 普陀区| 樟树市| 泰安市| 当阳市| 平武县| 铜梁县| 蚌埠市| 霍山县| 当涂县| 兴隆县| 德格县| 化德县| 海丰县| 淮北市| 富顺县| 罗甸县| 南召县| 衡阳市| 金昌市| 连南| 五峰| 清新县| 阿图什市| 扎兰屯市| 望谟县| 酉阳| 大洼县| 长汀县| 辉县市| 荣昌县|