R語言,累計求和號連續幾個 這樣的怎麼編碼?

時間 2021-06-01 04:41:20

1樓:四維漢堡包

為啥不用R語言的矩陣呢?

網上搜了一下,沒有幾個講到矩陣乘法的。其實,R語言用 %運算子% 的形式,允許定義和原來運算子不一樣的運算。

然後,R語言定義了乙個%*%,專門來做矩陣乘法。中文資料我暫時找不到,不過你可以看看R自帶的幫助,還蠻細緻的說。

2樓:伊荻厄忒

如果我對你的notation理解正確的話,只要對1步轉移概率矩陣進行矩陣運算t次方得到t步概率轉移矩陣,然後取state 0的那一列column sum不就好了嗎。當然是column sum還是row sum取決於你的概率轉移矩陣的定義。還有,infinite states嗎朋友?

3樓:王介

與其說這是個演算法問題,還不如說這是個記憶體結構問題。一切取決於你如何儲存高維矩陣,最簡單的方法是建立個一維向量,然後按照某種方式將高維資料全部儲存在向量裡面。複雜點的話可以用array直接建立高維矩陣。

回來再更新細節

4樓:三川啦啦啦

獻醜了。期待看到更好的方案。

如果是問高維資料如何儲存,我建議用列表:A=list(1

:3,4

:6,7

:9)B

=list(11

:13,14

:16,16

:19)C

=list(21

:23,24

:26,27

:29)T

=list(A

,B,C

)>T[[

1]][[1

]][[1]]

[1]1

23[[1

]][[2]]

[1]4

56[[1

]][[3]]

[1]7

89[[2

]][[

2]][[1]]

[1]11

1213[[2

]][[2]]

[1]14

1516[[2

]][[3]]

[1]17

1819[[3

]][[

3]][[1]]

[1]21

2223[[3

]][[2]]

[1]24

2526[[3

]][[3]]

[1]27

2829

這樣我們就得到乙個 的立方陣,至於求和那就很簡單了:

>sum(as.

vector

(unlist(T

)))[1]

405可以驗證

S = 0

for(i in 1:3)for(j in 1:3)for(k in 1:3) S = S + T[[i]][[j]][[k]]

> S[1] 405

如何將多重求和轉化為如下的形式,

這需要將求和指標 按某種順序不重不漏地排列。

#可重複元素的樹形圖,以矩陣形式列出

CC<-

function(n

,m)B

=rep(B

,M/(n

*copy))C

[,i]=

t(B)

}C}#例:

3表示每層求和次數,

2表示求和重數

>CC(

3,2)

[,1][,

2][1

,]11[

2,]12

[3,]1

3[4,]

21[5

,]22[

6,]23

[7,]3

1[8,]

32[9

,]33這樣一來,求和指標就完美地排列下來,然後在構造計算 的函式時,定義自變數為指標向量 的函式:

P<-function(I

)expr

於是,無論是求幾重的求和,都可以用 重迴圈就搞定了(儘管是形式上的):#n

表示每層求和次數,

m表示求和重數S=

0;L=

n^m;

C=CC(

n,m)

for(iin

L)S我以前寫過不可重複元素的樹形圖的函式:

#樹形圖,n為

size,m

為初始數

#樹形圖採用矩陣形式表示

#這裡本來直接定義階乘函式就行了,但不知道當時抽了什麼筋,非要定義成gamma

函式gamma

<-function(n

)g}#在

Tree的基礎上轉化為矩陣形式

TT<-

function(n

,m)T

[[i]]=

T[[i]][-1]

L=length(T

[[i]])TT[,i

]=as.

vector(t

(matrix

(rep(T

[[i]],M/L

),L)))}TT}

#例:TT(4

,4)表示以

4為起始,1、

2、3作為分叉的樹形圖

>TT(

4,4)

[,1][,

2][,3

][,4]

[1,]4

123[

2,]41

32[3

,]421

3[4,]

4231

[5,]4

312[

6,]43

21如果去掉第一列,

>TT(

4,4)[,-1]

[,1][,

2][,3

][1,]

123[

2,]13

2[3,]

213[

4,]23

1[5,]

312[

6,]32

1就可以得到 的全排列。

5樓:

好問題,我一直也在尋找個更加簡潔的方法,但是現階段我一般都是套三個for loop:

for (i in 1:length(I)) {

for (j in 1:length(Jfor (k in 1:length(k

R語言大佬救救我!!!怎麼利用R函式rnorm編寫p維正態分佈的隨機數生成的R通用程式

首先,這是個錯題,非對角元應該是 否則,當 接近1,且 時,不能保證協方差矩陣的正定性。如問題三 set.seed 1 1 rMVnorm function n p,mu sigma2 rho else for k in1 p else return X 2n 100000 p 8mu 1 1 p ...

如何選擇python還是R語言?

生化環材 我不負責任地推薦Python。其他答主從易用性等方面分析了Python VS R的優缺點。他們說的都很有道理。那我推薦Python的原因是什麼呢?學Python容易跳槽轉行啊!據我所知,R語言目前僅僅是資料統計與生物資訊學用得比較多,如果不能確定以後僅使用R能不能夠用,乾脆直接上Pytho...

R語言批量處理csv檔案

莫小遠 as.list list.files map function x read.csv x reduce rbind 梅立霄 R語言是函式式程式語言。在函式式程式語言中,大部分情況可以不用for迴圈。files list.files directory read.csv paste0 dire...