| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 502 人关注过本帖
标题:编码问题(给思想也好,一起看看)
只看楼主 加入收藏
大嘴先生2
Rank: 1
等 级:新手上路
威 望:2
帖 子:815
专家分:0
注 册:2006-4-17
收藏
 问题点数:0 回复次数:3 
编码问题(给思想也好,一起看看)
编程解决编码问题:设有一个数组A[N],数组中存放的元素为0—N-1之间的整数,且各不相同,。例如:N=6时,A=(4,3,0,5,1,2),编码定义如下:
A[0]的编码为0;
A[i]的编码为:在 A[0],A[1],…A[i-1]中比A[i]的值小的个数(i =1,2,…… N-1)
因此得到A的编码为:B=(0,0,0,3,1,2)
要求程序实现:
(1) 译码:给出数组A后,求出其编码;
(2) 破译:给出数组A的编码后,求出A中的原数据。
搜索更多相关主题的帖子: 思想 编码 
2007-07-10 15:50
geqmoon
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2004-10-16
收藏
得分:0 

(1) 译码 是简单的.
用个for循环就搞定了.

(2) 有些难,想了一下,发现有个规律.
我是从0找到N
首先找0
让我们来看个例子, 原码 4 3 0 5 1 2 1 4 3 0 5 2 5 4 3 2 1 0
编码 0 0 0 3 1 2 0 1 1 0 4 2 0 0 0 0 0 0
后一个0就是我们要找的0的位置啊.对不对,因为原码0在前面的话后面的数的译码不可能是0 这样就找到0了.
然后找1
看译码以0为分界,如果在0的后面可以找到1那么说明白,1最右边的一个1 是1的位置.原因同上.如果又说在0的后面没有1的话说明1在0的左边.这样的话在0的左边的译码中最后一个0译码就是1了.这样就找到1了.这里要说有时候0的左右边都有1那么只要确定在0的后面有1的话原码1就一定在0后面.
我这样说你能懂吗?
我也是刚才研究的,有什么我们商量一下..


2007-07-10 16:45
大嘴先生2
Rank: 1
等 级:新手上路
威 望:2
帖 子:815
专家分:0
注 册:2006-4-17
收藏
得分:0 
以下是引用geqmoon在2007-7-10 16:45:22的发言:

(1) 译码 是简单的.
用个for循环就搞定了.

(2) 有些难,想了一下,发现有个规律.
我是从0找到N
首先找0
让我们来看个例子, 原码 4 3 0 5 1 2 1 4 3 0 5 2 5 4 3 2 1 0
编码 0 0 0 3 1 2 0 1 1 0 4 2 0 0 0 0 0 0
后一个0就是我们要找的0的位置啊.对不对,因为原码0在前面的话后面的数的译码不可能是0 这样就找到0了.
然后找1
看译码以0为分界,如果在0的后面可以找到1那么说明白,1最右边的一个1 是1的位置.原因同上.如果又说在0的后面没有1的话说明1在0的左边.这样的话在0的左边的译码中最后一个0译码就是1了.这样就找到1了.这里要说有时候0的左右边都有1那么只要确定在0的后面有1的话原码1就一定在0后面.
我这样说你能懂吗?
我也是刚才研究的,有什么我们商量一下..

很好,我回去研究下,谢谢楼上的兄弟!


骑白马的未必是王子,也可能是唐僧;有翅膀的未必是天使,也可能是鸟人。
2007-07-10 16:53
幽兰子zjw
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-7-10
收藏
得分:0 
  讨厌!2楼的家伙,你这些话怎么不在我那说?
  害我还要绕道过来
  不过,你这想法还是值得一看的
2007-07-11 14:19
快速回复:编码问题(给思想也好,一起看看)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011805 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved