作者redmist (....N )
看板Perl
标题Re: [问题]新手请教一下~
时间Mon Dec 17 12:44:34 2007
※ 引述《sunbelt (...)》之铭言:
: 假如有一个字串 abcadeceaacbb
: 要找aa、ab、ac、...、ba、bb、bc...等 ,出现之机率,
: 找一个1阶markov chain (例: a 後面接b、c、d...等之机率)
: 因为这几天才刚接触perl,只学会用些较简单之语法0rz
: 我的想法是:
: 1. 先将字串切成一个阵列: @A=(ab、bc、ca ...)
: 2. 设一个Hash阵列存各元素出现次数: 例: aa => 次数
: 3. 设一个Hash阵列存a、b、c...开头之元素出现次数:
: 例: a=>次数 (a开头元素出现之次数)
: 4. 用上面两个Hash阵列计算机率,设一个Hash阵列:
: 例 aa=>机率(a後面接a之机率)
: 想问一下有没有其它建议的方法。谢谢罗~
太长了 只好用回的
aa的机率 = scalar(@m1=$str=~m/(?=(aa))/g)/scalar(@m2=$str=~m/(?=(a.))/g)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.241.208
※ 编辑: redmist 来自: 140.113.241.208 (12/17 12:45)