免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1471 | 回复: 5
打印 上一主题 下一主题

[算法] 一个算法问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-01-15 15:23 |只看该作者 |倒序浏览
看到这样一道题     有这样一张表   
                                                         
                          21   22 23  24   25   26                        
                          20   7    8   9    10    27                                   
                          19   6    1   2    11                                      
                          18   5    4   3    12                                                
                          17  16  15 14  13   

是这样:  以1所在为原点(0,0),向右为X正方向,向下为Y正方向(跟我们习惯的不一样,不过无所谓)。
数字的规则一般能看明白吧。
求给定坐标(X,Y) 处的数字。


我自己想出了一个方法,不过我自己感觉是个“人脑算法”很烂,就不写了。
请大家说说你们的想法。

另外,要是给出一个数字,怎么求其坐标?

论坛徽章:
0
2 [报告]
发表于 2007-01-15 16:42 |只看该作者
这个问题不是极其、极其低级吧!
怎么没人说说想法呢?

论坛徽章:
0
3 [报告]
发表于 2007-01-15 17:24 |只看该作者
原帖由 i_torrent 于 2007-1-15 15:23 发表
看到这样一道题     有这样一张表   
                                                         
                          21   22 23  24   25   26                        
                         ...

其实这个类似于坐标平移
对于这题来说,假设1的坐标为(x0,y0),求取任一坐标(X,Y)的值其实就是求原数组a[X+x0,Y+y0]的值而已

论坛徽章:
0
4 [报告]
发表于 2007-01-15 17:27 |只看该作者
真亲切啊,当年学BASIC的时候,特别有成就感的一个程序。记得这道题是当年“谭浩强老师给全国BASIC语言爱好者提出的一个编程课题”...

基本思想是按对角线把方阵分成四个三角形区域,分别找出四个三角形区域的被一列数据的通项......

具体早忘了,可以到图书馆查查旧资料,我记得1988年清华大学的吴文虎(奥林匹克信息竞赛的领队)曾经写过一本全国BASIC语言竞赛题解的书,里面有详细的分析过程。

论坛徽章:
0
5 [报告]
发表于 2007-01-15 18:50 |只看该作者
数列,或说 “整标函数”。就是像 JohnBull 版主所说,求通项。然后查表。

论坛徽章:
0
6 [报告]
发表于 2007-01-15 19:04 |只看该作者
比较简单的问题
印象中
已经被讨论过多次了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP