なんかの過程で出来ました。 例によってRubyです。 ソース class String def lnc(n) self.scan(/.{0,#{n}}$/)[0] end def scanf(regexp) self.scan(regexp).flatten end end class Array def sample self[rand(self.size)] end end def makeword(dict, level=1) word = "<" until word[-1, 1] == ">" lnc = word.lnc(level) word += dict.scanf(/(?=#{lnc}(.))/).sample end return makeword(dict, level) if dict.include? word word[1..-2] end def maked