当前位置:  开发笔记 > 人工智能 > 正文

在Scheme中生成项链的简单算法很好?

如何解决《在Scheme中生成项链的简单算法很好?》经验,为你挑选了0个好方法。

长度为n的k-ary项链是长度为n的有序列表,其项目是从长度为k的字母表中绘制的,这是按字典顺序排列的第一个列表,在所有列表中共享旋转下的排序.

示例:(1 2 3)和(1 3 2)是字母{1 2 3}中长度为3的项链.

更多信息:http: //en.wikipedia.org/wiki/Necklace_(bizbinicsics)

我想在Scheme(或你选择的Lisp)中生成这些.我找到了一些论文......
野人 - 一种生成项目的新算法
Sawada - 在恒定摊销时间生成手镯
Sawada - 生成带有禁止的子串的项链
......但是它们中的代码对我来说是不透明的.主要是因为他们似乎没有传递字母或所需的长度(n).我正在寻找的方案程序是形式(项链n'(ab c ...)).

通过首先生成k ^ n个列表然后过滤掉旋转,我可以很容易地生成这些.但它的内存效率非常低......

谢谢!

推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有