6
列举押韵方案
“押韵方案”是ato 的字母字符串,以z使字符的首次出现按从()开始的升序排列(无间隔)a。例如(标记为首次出现): abccdbebdcfa ^^^ ^ ^ ^ 长度的押韵方案的数目N由贝尔数 给出B(N)。(OEIS A000110) 挑战 您的任务是实现这些押韵方案的枚举,即从整数到押韵方案的双射映射。您会得到一个正整数N <= 26,以及一个非负整数0 <= i < B(N)。或者,您可以使用range 1 <= i <= B(N)。您应该输出一个length的押韵方案N,以使每一个i产生不同的字符串。 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行参数或函数自变量获取输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数输出结果。 您可以使用大小写字母(一致)。 您的代码必须能够处理在合理的时间的任何有效输入(例如不超过几个小时了N = 26,最坏的情况下i)。N即使在慢速语言中,这也应允许解决方案以小比例扩展(对于小底数),但禁止解决方案以i(即B(N))线性扩展。特别是,这意味着您不能仅遍历所有有效长度的韵律方案,N直到放弃该i方案为止。 适用标准代码高尔夫球规则。 例子 方案的确切分配i(即给定方案的顺序N)由您决定。但是,如果您选择了字典顺序,则您的解决方案应对应于下表(-表示无效输入): N\i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 a - …