LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 606|回复: 0

一个有意思的awk脚本

[复制链接]
发表于 2006-10-30 22:47:29 | 显示全部楼层 |阅读模式
抄自 The Practice of Programming

# markov.awk: markov chain algorithm for 2-word prefixes

BEGIN{ MAXGEN=1000; NONWORD="\n"; w1=w2=NONWORD}

{
    for(i=1;i<=NF;i++){
        statetab[w1,w2,++nsuffix[w1,w2]]= $i
        w1=w2; w2=$i;
    }
}
END{
    statetab[w1, w2,++nsuffix[w1,w2]]=NONWORD
    w1=w2=NONWORD
    for(i=0;i<MAXGEN;i++){
        r=int(rand()*nsuffix[w1,w2])+1
        p=statetab[w1,w2,r]
        if(p==NONWORD) exit
        print p
        w1=w2
        w2=p     
    }
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表