## Perl马尔科夫算法的小小改进

#markov.pl: markov chain algorithm for 2-word prefixes
\$MAXGEN = 10000;
\$NONWORD = "\t";
\$LINEFEED = "\n";
\$w1 = \$w2 = \$NONWORD;               # initial state
while (<>) {                        # read each line of input

foreach (split) {

push(@{\$statetab{\$w1}{\$w2}}, \$_);

(\$w1, \$w2) = (\$w2, \$_);     # mutiple assignment

}

push (@{\$statetab{\$w1}{\$w2}}, \$LINEFEED);

(\$w1, \$w2) = (\$w2, \$LINEFEED)# mutiple assignment
}
push (@{\$statetab{\$w1}{\$w2}}, \$NONWORD);    # add tail

\$w1 = \$w2 = \$NONWORD;
for (\$i = 0; \$i < \$MAXGEN; \$i++) {

\$suf = \$statetab{\$w1}{\$w2};     # array reference

\$r = int(rand @\$suf);           # @\$suf is number of elems

exit if ((\$t = \$suf->[\$r]) eq \$NONWORD);

print "\$t ";

(\$w1, \$w2) = (\$w2, \$t);         #advance chain
}

The young lady was very fair; and she is to the king. <---（兔毛猫评论：这句比较搞笑：） And Zadok the priest, and Nathan the prophet also came in. While you are still speaking with the king, Nathan the prophet;' and he also of a very goodly man; and he shall reign after me, and he aros e, and went, and caught hold of the kingdom. And the king into the chamber: and the Pel'ethites; and they have caused him to be king after him; And Zadok the priest, and Nathan the prophet;' and he shall sit upon my throne; for he shall sit on my seat in my stead: and I have appoint ed him to Gihon. So they sought for my lord king David, saying, God make the name of Solomon better than thy name, and his servants said unto them, Take wit h you the trumpet, he said, "What do you behave as you do?" He was also a very comely man; and bore him after Absalom. and he shall die. And it was told Solomon saying, Behold, Adonijah feareth because of Solomon, and arose and went away, every man his way. And Jonathan, answering, said to him, Go to thy handmaid saying, Solomon thy son shall reign after me, and he invited all the king's mule;