有许多产生随机单词的方法。您可以从集合中提取随机音节,可以使用n元组,可能使用神经网络(它们不能做什么?),在辅音和元音之间交替等等。到目前为止,此挑战所基于的方法是最差的。它使用马尔可夫链生成随机词。如果您熟悉马尔可夫链,您可能会知道为什么这种方法如此糟糕。
如果您想阅读有关马尔可夫链的信息,请单击此处。
您的程序将采用加权马尔可夫链的方法,输入一个或多个单词并生成一个随机单词。既然这可能对我来说都没有道理,那么以下是使用马尔可夫链的图片并输入以下内容的一种解释abba
:
(所有图片的所有边缘权重都相同)您的程序将基于输入文本通过马尔可夫链输出路径。如您所见,它将有1/2的机会输出a
,1/8的机会,1/ aba
16的机会abba
,1/32的机会ababa
,等等。
以下是一些其他示例马尔可夫链:
yabba dabba doo
wolfram
supercalifragilisticexpialidocious
如果您需要更多示例,请使用this。(我太努力了)
挑战详情:
- 输入可以作为字符串列表,也可以作为空格,逗号或换行符分隔的字符串
- 您可能会假设所有单词都将全部为小写且没有标点符号(ASCII 97-122)
- 您可以编写程序或函数
- 为了进行测试,您可能可以输入示例并查看所有输入是否与马尔可夫链对齐
这是 代码高尔夫球,因此您的程序以字节计。
让我知道是否有任何不清楚的地方,我将尝试使其更有意义。
b
因此您无法产生双精度b
。此外,一旦到达a b
,就似乎不可能返回以start
产生其他字词)。我相信您必须阐明要求是什么...
yabba dabba doo
是一个意外。我会尽快修复。至于无法重新开始,您只能从给定的一组单词中生成一个单词。这样可以澄清吗?