主题: Prime Ring
查看单个帖子
  #1 (permalink)  
旧 2008-01-22
Meta 的头像
Meta Meta 当前离线
版主
 
注册日期: 2004-12-02
帖子: 226
文章: 5
Meta 正向着好的方向发展
默认 Prime Ring

问题如下:
给定一个正整数n(1<=n<=20), 找出所有满足下列条件的环(按照从小到大顺序输出):
1. 由1...n个元素构成.
2. 任意相邻的两个元素,其相加的和必须是一个素数.

为了使问题简单化,我们不妨设环中的第一个元素总是从1开始.下面给出两个示例:

n = 6
1 4 3 2 5 6
1 6 5 2 3 4

n = 8
1 2 3 8 5 6 7 4
1 2 5 8 3 4 7 6
1 4 7 6 5 8 3 2
1 6 7 4 3 8 5 2

BTW,顺时针和逆时针算两个不同的结果.

我的方法比较简单:在(n-1)!的搜索空间, 直接搜索,去除一些不可能的分支. 但速度依然不是很快. 不知道有没有更好的方法?

此帖于 2008-01-22 07:57 PM 被 Meta 编辑.
回复时引用此帖