結對程式設計 馬爾科夫鏈

2022-03-29 01:54:53 字數 1865 閱讀 6996

結合參考文章的思路:利用連續兩個詞構成的字首來選擇作為字尾的乙個詞

設定w1和w2為文字的前兩個詞

輸出w1和w2

迴圈:隨機地選出w3,它是文字中w1w2的字尾中的乙個

列印w3

把w1和w2分別換成w2和w3

重複迴圈

"this is" -> ["a"]

"is a" -> ["good", "dog"]

"a dog" -> ["and", "where"]

"dog and" -> ["it", "this"]

//字首用乙個類來表示:

public class front

//首先得有儲存字首的基本屬性:

public listpref; //字首儲存的兩個詞,w1,w2按順序存入

add(word);

private void add(string word)

front.pref.remove(0);

front.pref.add(word);

}

filewriter fw = new filewriter(*.txt);  

for(int i=0; isuf = statetable.get(prefix);

int r = math.abs(random.nextint() % suf.size());

string word = suf.get(r);

system.out.print(word+" ");

if(word.equals("."))

else

fw.write(word+" ");

prefix.pref.remove(0);

prefix.pref.add(word);

} fw.close;

fileinputstream fis = new fileinputstream(new file("c:/*/*.txt"));

scanner scanner = new scanner(inputstream in);

while(scanner.hasnext())

public class chain   

add(noword);

}

//add方法是為了建立字首的庫,以及生成前字尾之間的對映

private void add(string word)

suf.add(word);

prefix.pref.remove(0); //實現字首 w1w2 轉變為 w2w3;先呼叫list的remove方法刪除w2,然後加入w3與w2組成新的字尾

prefix.pref.add(word);

} //根據篇幅數進行迴圈

馬爾科夫鏈

馬爾科夫鏈,是數學中具有馬爾科夫性質的離散事件隨機過程。該過程中,在給定當前知識和資訊的情況下,過去 即當前以前的歷史狀態 對於 將來 即當前以後的未來狀態 是無關的 一 馬爾科夫性質 原理簡潔 x1,x2,x3 馬爾科夫鏈 描述了乙個狀態序列,其每個狀態值取決於前面有限個狀態。馬爾科夫鏈是具有馬爾...

馬爾科夫鏈

x 0,x 1,x n n 表示時間,如果 x 0,x n 都是獨立的,那麼這個假設限制性太大,不能對現實世界建模。而如果 x 0,x n 彼此可以任意互動影響,那麼模型太難計算。馬爾科夫鏈是單步影響 one step dependence 的序列,乙個折中的假設。馬爾科夫鏈存在時間和空間中,x n...

結對程式設計 馬爾科夫鏈作業成績

作業部落格 本次作業僅有三位同學按時提交,兩位同學延遲提交,出人意料,多數同學都放棄,有一種 湊齊人數闖紅燈 的味道。據王老師反映是期末考試臨近,但是並沒有同學跟老師溝通過具體困難,是真的很困難,還是誇大困難程度,比如 難度上,本次作業低於前兩次,並且先前已經有部落格講解過如何實現。馬平川 張師瑜和...