我的作业是写介于729到810个单词之间的火星文章(见下文)。您的任务是编写一个程序,以生成论文。
历史
据称,在20世纪初,唯物主义者凯瑟琳·艾丽斯·穆勒(Catherine-EliseMüller)与火星人进行了交流。在沉迷的梦ance中,她会写出火星剧本。心理学家ThéodoreFlourney发现她的火星著作与她的母语法国人非常相似,并且在他的《从印度到火星星球》一书中,他记录了凯瑟琳的火星字母。
以下是松散的基础上扩展的神话是字母。
问题描述
火星语言有21个字母,每个拉丁字母旁边显示在这里:
不幸的是,火星没有Unicode(尽管火星是宇宙的一部分),所以我们只能使用拉丁字符。
在英语中,我们的音素分为两种主要类型(辅音/元音),我们大致将其映射为字母,而火星语则有三种字母类型:
- 元音:aeimnou
- 硬辅音:bcdgkpt
- 软辅音:fhlrsvz
除此之外,火星语言还包含一个标点符号-句点。
一个火星字是一组3至9个字母。所有火星词都有至少一个元音,一个硬辅音和一个软辅音(任意排列)。例如fng
,cdaz
,vpi
,和pascal
是火星人的话。
甲火星句子是一组3〜9由空格分隔和后跟一个句点火星字。
甲火星段是一组3〜9火星句子由空格分隔并跟着一个新行的。
一个火星文章是火星段的集合不包含连续的字重复。
甲连续字重复是任何构建体SS其中,S是一组连续的字。请注意,此定义将忽略句子和段落的边界。
例子
请注意:每个示例后都有一个结尾的换行符(因为所有火星段落均以换行符结尾)
不是火星文
lorem ipsum dolor坐在amet。quis nostrud锻炼ullamco labris。
...出于很多原因。本示例说明了一些其他规则:
- lorem不是火星词,因为它没有硬辅音。
- amet不是火星词,因为它没有柔和的辅音。(
m
是火星元音)。 - quis不是火星词,因为它没有硬辅音
- quis不是火星字,因为q不是火星字母
- 练习不是火星单词,因为它有9个以上的字母
- 练习不是火星词,因为x不是火星字母
火星文
fng cdaz vpi。帕斯卡打破了基础。波普尔味道很棒。
...因为这是火星段落。火星段落包含三个火星句子。
不是火星文
fng cdaz vpi。帕斯卡打破了基础。免费的帕斯卡规则。
...因为free pascal rules.
不是火星句子,因为火星词free
也不rules
是,因为它们没有任何硬辅音。
火星文
fng cdaz vpi。帕斯卡打破了基础。波普尔味道很棒。 cdaz vpi fng。基本休息帕斯卡。波普尔猛击。fng cdaz vpi。
...包含两个火星段落。该句子fng cdaz vpi.
出现了两次,但这很好。
不是火星文
波普尔人尝fng。cdaz vpi帕斯卡。打破了fng cdaz vpi。 帕斯卡打破了微米级行星。基本吓坏山羊。vpi piv vpi。
...因为该构造fng. cdaz vpi pascal. broke fng cdaz vpi. [nl] pascal broke
是一个连续的单词重复。
挑战
您的挑战是编写一个不接受任何输入的函数或程序,该函数或程序将我的作业作为输出。也就是说,您的程序应生成介于729和810个单词(含)之间的火星文章。请记住,您程序的输出必须是有效的火星论文,但您不必每次都随机或不同地生成它。 您为生成有效的火星文章计数所做的任何事情。
我已经编写了一个C ++程序来检查允许您使用的论文。
这是代码高尔夫。以字节为单位的最短代码获胜。不允许出现标准漏洞。