高手请进,解决超难逻辑问题!!!

G10 2004-12-14 09:13:24
有一问题,想用程序实现,但連思路也没有。问题描述如下:
有一个初始列序A0: a1,a2,a3,…,an
另有一个序列(待改变序列)A1: a1,a2,a3,…,an
1. 将A0中第K个元素在A1中找到,然后将其从A1中去掉得到序列A2。
2. 然后将A0中第K个元素插入到A2中的n个可能位置中去――得到了n个可能序列,从中任选一个作为A1。
3. 继续处理A0中的第K+1个元素。
Eg:
A0=1,2,3,4  A1=1,2,3,4
1. k=1 , 得A2=2,3,4
2. 将A0中k=1位置的元素(1)插入A2得:
  1,2,3,4   2,1,3,4   2,3,1,4   2,3,4,1
3. 任选一个,假定为A1=2,1,3,4
4. k=2时, A1=2,1,3,4  ,A2=1,3,4
5. 将A0第k个位置的元素(2)插入A2得:
2,1,3,4   1,2,3,4   1,3,2,4   1,3,4,2
6. 任选一个,假定为A1=2,1,3,4
7. k=3时,A1=2,1,3,4  ,A2=2,1,4
8. 将A0第k个位置的元素(3)插入A2得
3,2,1,4   2,3,1,4   2,1,3,4   2,1,4,3
9. 任选一个,假定为A1=2,1,4,3
10. k=4时,A1=2,1,4,3   ,A2=2,1,3
11. 将A0第k个位置的元素(4)插入A2得
4,2,1,3   2,4,1,3   2,1,4,3   2,1,3,4
12. 任选一个,假定得为A1=2,1,3,4
k=4==n结束,此时A1为所求。但是大家在2,5,8,11四步中大家可以看到产生了大量的重复方案。编程序实现前想知到大概有多少重复方案,以及怎样去全丢弃它们,以便减少程序的运算量。
我知道这个问题不是100分就能体现的,解决后我会在开帖加分(不少于100)以示感谢。谢谢各位高手。
...全文
209 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mars.CN 2005-04-01
  • 打赏
  • 举报
回复
太乱
Down下来研究

等着我的回信
G10 2005-04-01
  • 打赏
  • 举报
回复
大家帮忙啊
KiteGirl 2005-03-24
  • 打赏
  • 举报
回复
我立刻能给你做出来!少等!
G10 2004-12-17
  • 打赏
  • 举报
回复
jack_zhan(大熊) a1<>a2<>...<>an 当然是的
我这个问题重要的如何2,5,8 步中所得的序列不和从前产生的重复。而你的方案则避开了这个问题
feilong215 2004-12-16
  • 打赏
  • 举报
回复
關注
Jockey 2004-12-16
  • 打赏
  • 举报
回复
问数学家吧!!

那来这样的逻辑?
jack_zhan 2004-12-16
  • 打赏
  • 举报
回复
不知道题目中插入是不是像例子中那样按顺序插入。

如果是按顺序插入的,可以考虑不生成新的元素。
因为必须知道3,6,9,12步,任选的是第几组,所以只要在1,4,7,10步之后,直接就能得到结果。

那么例子可以这样改一下
Eg:
A0=1,2,3,4  A1=1,2,3,4
1. k=1 , 得A2=2,3,4
2。不要
3. 任选一个(例子是第2组),那么,在A2中把k=1放在第2个位置,就是A1=2,1,3,4
4. k=2时, A1=2,1,3,4  ,A2=1,3,4
5。不要
6. 任选一个(例子是第1组),那么,在A2中把k=2放在第1个位置,就是A1=2,1,3,4
7. k=3时,A1=2,1,3,4  ,A2=2,1,4
8。不要
9. 任选一个(例子是第4组),那么,在A2中把k=3放在第4个位置,就是A1=2,1,4,3
10. k=4时,A1=2,1,4,3   ,A2=2,1,3
11。不要
12. 任选一个(例子是第4组),那么,在A2中把k=4放在第4个位置,就是A1=2,1,3,4

这样的话,程序就会简单化,一个递归就可以了。
不知道这样是不是符合题目的原意。
jack_zhan 2004-12-16
  • 打赏
  • 举报
回复
a1<>a2<>...<>an吧?
zyp2kyear 2004-12-14
  • 打赏
  • 举报
回复
顺便提醒一下,这两个序列A0,A1一样,假如序列不一样。出现重复的概率会小很多
zyp2kyear 2004-12-14
  • 打赏
  • 举报
回复
观察了一下,以第一次为基准,四个序列分别出现了2,2,4,1次,总共9次。增加实现判断序列的重复,比丢弃它们废时废力。继续研究中.....
lyymax 2004-12-14
  • 打赏
  • 举报
回复
使用递归函数也许会解决吧
guoxu_009 2004-12-14
  • 打赏
  • 举报
回复
你把那文章贴出来,大家一起来研究一下看看。
guoxu_009 2004-12-14
  • 打赏
  • 举报
回复
这里面应该还有些条件的吧。要么就是要有一个结果。你这里没条件也没结果。
不懂你的意思了。
G10 2004-12-14
  • 打赏
  • 举报
回复
该问题是我在看一个印度人写的文章中--抽取出来的。
cindytsai 2004-12-14
  • 打赏
  • 举报
回复
先顶,再看吧
G10 2004-12-14
  • 打赏
  • 举报
回复
TO: guoxu_009(迟来) >全是英文的而且要8页,恐怕有碍大家观看。
G10 2004-12-14
  • 打赏
  • 举报
回复
我这里A0被称为种子序列!
G10 2004-12-14
  • 打赏
  • 举报
回复
我的意思看来还没有表达的很明白;
我是想说在进行A0中第K+1个元素的插入时,对于第A0中1....K个元素插入中出现过的序列就可以不加判断了,这样对按上面方法产生的新序列加以判断,就可以结省大量的时间,不然的话当A0超过200时你用计算机可能算上一天啊!!,所以想去掉以前得到过的序列。方法很重要的!

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧